abracadabraPDF › Forums › PDF – Général › Message annuler ou continuer lors d’un clic sur une action
- Ce sujet est vide.
-
CréateurSujet
-
2 janvier 2021 à 17:45 #46485
Fun27
MembreBonjour,
J’ai un bouton qui exécute plusieurs actions (afficher des champs, exécuter un JavaScript…) mais j’aimerais placer en début d’action un JavaScript qui démarre un message: « Confirmer vous la validation ? » avec comme possibilité de réponse « annuler » ou « confirmer »
si l’on sélectionne annuler j’aimerais qu’il abandonne les actions suivantes, cela est il possible? -
CréateurSujet
-
AuteurRéponses
-
2 janvier 2021 à 18:59 #68498
bebarth
Maître des clésbonjour et Bonne Année,
Voici un script avec boite de dialogue et boutons OUI et NON :Code:var reponse=app.alert({
cMsg: « Confirmez-vous la validation ? »,
cTitle: « Message »,
nIcon: 2,
nType: 2
});
if (reponse==4) {
// Script ici
}@+
:bonjour:2 janvier 2021 à 21:06 #68499Fun27
MembreMerci et bonne année également.
J’ai insérer ce code dans une action JavaScript comme première action et le message fonctionne mais si je clic sur « non » les actions suivantes continu tout de même à s’exécuter !
Est il possible d’annuler ces actions qui suivent le message?Encore Merci.
2 janvier 2021 à 22:20 #68500bebarth
Maître des clésTu dois mal positionner ton script. Il faut le mettre à la place de « // Script ici ».
if (reponse==4) signifie si la réponse est OUI !
@+
:bonjour:3 janvier 2021 à 09:21 #68501Fun27
MembreOk je comprends, mais le problème c’est que j’ai plusieurs autres actions qui sont exécutés avant et qui n’ont pas de script.
Selon l’image ci-joint pour compréhension.Voici ma composition actuel:
1. Soumettre un formulaire (récupère un champ et le transmet dans un fichier XFDF dans un répertoire local)
2. Ouvrir exécuter un fichier
3. Afficher des champs
4. Cacher des champs
5. et enfin le JavaScript ci dessous:var fTo = this.getField(« To5_S »).value;
var fSubject = this.getField(« Subject3_S »).value;
var fBody = this.getField(« BodyAPP_S »).value+ »nn »
+ »//CRPCWA2/Data/O/Fiches_orange/Fiches/ »+this.documentFileName+ »n »;
this.mailDoc({cTo: fTo, cSubject: fSubject, cMsg: fBody});
app.execMenuItem(« Save »);Est ce que je dois modifier tout les points de 1 à 4 en Javascript ?
Si c’est le cas je ne maîtrise pas assez JavaScript pour transformer cela en codage :mur:Merci.
3 janvier 2021 à 10:22 #68502bebarth
Maître des clésbonjour,
Il faut effectivement que toutes les actions suivantes soient indiquées en JavaScript.
Si tu peux, partage un fichier !
@+
:bonjour:3 janvier 2021 à 17:56 #68503Fun27
MembreVoici mon fichier que j’ai simplifié, le bouton sur lequel j’aimerais avoir la confirmation « oui » ou « non » avant exécution est en page 2 : « Plan approuvé, transmettre pour mise en fab. »
4 janvier 2021 à 08:43 #68504bebarth
Maître des clésbonjour,
Ça ne commence pas très bien, je ne comprends pas ton action !!!- Tu envoies un formulaire au format .fdf (je ne connais pas ce format, Merlin certainement…)
- Tu ouvres un fichier format .vbs (c’est possible ???)
- Tu masques des champs (lesquels, ils ne sont pas indiqués)
- Et enfin tu envoies ce fichier (Modèle) par e-mail
[/list]Est-ce bien cela ???
@+
:bonjour:4 janvier 2021 à 10:08 #68505Merlin
Maître des clésTu envoies un formulaire au format .fdf (je ne connais pas ce format, Merlin certainement…)
FDF : Form Data Format / Format de données de formulaire
On l’utilise pour n’envoyer que les données contenues dans le formulaire, sans le formulaire lui-même.
(Sachant que les images importées dans les boutons/champs-images ne sont pas inclues)Dans le même esprit on peut aussi utiliser le format XFDF, c’est la même chose mais les données utilisent la présentation et la syntaxe XML, beaucoup plus facile à intégrer dans une base de données que le format FDF.
4 janvier 2021 à 10:16 #68506Fun27
MembreBonjour,
Oui j’utilise bien un format XFDF et non FDF, en détail:
1. j’envoi dans un fichier .xfdf les données texte d’un champs texte du PDF.
2. j’ouvre un fichier .vbs, cette action va ouvrir un fichier excel défini et démarrer une macro VBA dans ce fichier excel, cette macro va récupérer le texte qui est contenu dans le fichier .xfdf
3. Je masque le champs AppT et affiche le champs AppOK
4. J’envoi ce pdf par email avec un texte prédéfini.4 janvier 2021 à 16:10 #68507Fun27
MembreAu final est il possible de mettre un bouton de confirmation oui ou non en gardant mon flux d’action décrit ci-dessus ou faut il tout mettre en codage Javascript?
Et est il tout simplement possible de remplacer les actions ci-dessus 1, 2, 3 par un code JavaScript?Merci pour votre aide car je n’ai pas les connaissances pour avancer!
4 janvier 2021 à 18:59 #68508bebarth
Maître des clésMerlin me démentira peut-être, mais pour moi on ne peut pas envoyer par mail ni ouvrir un fichier via JavaScript à moins qu’il ne soit en pièce jointe du formulaire !
@+
:bonjour:4 janvier 2021 à 20:01 #68509Fun27
MembreToutes mes actions 1, 2, 3 et 4 fonctionnes parfaitement, j’aimerais juste leurs ajouter un message de confirmation avant leur exécution… :Euuuh:
4 janvier 2021 à 23:20 #68510Merlin
Maître des clésIl faudrait que tu partages ton fichier, ou au moins un exemple avec le bouton en question, parce-que ce n’est pas clair, je ne comprend pas bien le processus et les fonctions employées.
5 janvier 2021 à 07:20 #68511Fun27
MembreVoici mon fichier. Je l’ai simplifié, normalement j’ai plusieurs boutons.
Mais là ce qui m’intéresse c’est l’ajout d’un message de confirmation avant exécution du bouton (Plan approuvé, transmettre pour mise en fab.) qui est en page 2.Merci.
5 janvier 2021 à 10:02 #68512Merlin
Maître des clésSi je comprend bien c’est un formulaire destiné à une utilisation interne sur un seul poste de travail ? (Par opposition à un formulaire envoyé/diffusé)
Si oui c’est un point important pour la suite.Toutes mes actions 1, 2, 3 et 4 fonctionnent parfaitement
Chez moi c’est l’inverse, aucune ne fonctionne.
C’est une succession de messages d’alertes et d’erreurs (ci-dessous).As-tu modifié certains paramètres par défaut d’Acrobat ? (Sécurité, gestionnaire d’approbation, … ?)
5 janvier 2021 à 11:16 #68513Fun27
Membre
C’est un formulaire destiné à une utilisation interne sur plusieurs postes.Cela est normal que les actions 1 et 2 ne fonctionnes pas sur un poste qui n’est pas connecté à mon réseau interne et qui n’as donc pas accès aux répertoire de destination des action 1 et 2.
De plus pour que cela fonctionne chez vous il faudrait avoir le fichier .xfdf, le fichier .vbs existant ainsi que le fichier excel (qui lui est démarré par le fichier .vbs)
1. j’envoi dans un fichier .xfdf les données d’un champs texte du PDF. Ce champs dans le fichier .xfdf sera utilisé lors du lancement de la macro excel qui elle est actionner par le .vbs
2. j’ouvre un fichier .vbs, cette action va ouvrir le fichier excel défini et démarrer une macro VBA dans ce fichier excel, cette macro va récupérer le texte qui est contenu dans le fichier .xfdf
3. Je masque le champs AppT et affiche le champs AppOK
4. J’envoi ce pdf par email avec un texte prédéfini.Pour information j’utilise le logiciel Foxit PhantomPDF Version 9.7.2.29539
Voila j’espère que ces infos vont vous aider dans mon problème de message de confirmation avant ces 4 actions.Encore merci
5 janvier 2021 à 14:12 #68514Merlin
Maître des clésEssaie ce script dans le bouton, après avoir supprimé toutes les actions existantes.
J’ai mis des try/catch pour que tu saches plus facilement d’où viennent les éventuelles erreurs.Vérifie bien l’URL et le chemin d’accès avant d’essayer, il y a un « MACHIN » à remplacer.
Il est plus que possible que la deuxième instruction (ouverture du fichier) ne fonctionne pas depuis un document, auquel cas il faudra utiliser une fonction sécurisée (trustedFunction), qui devra être placée dans le sous-dossier « JavaScripts » de chaque Acrobat sur chaque poste.
if (app.alert({cMsg: « Confirmez-vous la validation ?« , cTitle: « COMMANDE PROTOTYPE« , nIcon: 2, nType: 2}) == 4) {
// 1
try {
this.submitForm({cURL: « file:///O:Fiches orangeDonnéescode numero.xfdf« , cSubmitAs: « XFDF »});
}
catch (e) {};// 2
try {
app.openDoc(« file:///C:UsersMACHINAppDataLocalFichesCode macro f.vbs« );
}
catch (e) {};// 3
try {
this.getField(« AppT »).display = display.hidden;
this.getField(« AppOK »).display = display.visible;
}
catch (e) {};// 4 (non modifié)
try {
var fTo = this.getField(« To6 »).value;
var fSubject = this.getField(« Subject3 »).value;
var fBody = this.getField(« BodyAPPok »).value + « nn » + « //CHPDWS1/Data/O/Fiches_orange/Fiches/ » + this.documentFileName + « n » + (« Ouvrir le fichier uniquement avec le raccourci ci-dessus et non avec le fichier joint en Objet. »);
this.mailDoc({cTo: fTo, cSubject: fSubject, cMsg: fBody});
app.execMenuItem(« Save »);
}
catch (e) {};}
5 janvier 2021 à 15:33 #68515bebarth
Maître des clés:bravo:
Essaie peut-être d’écrire :
« file:///O:\Fiches orange\Données\code numero.xfdf«
et
« file:///C:\Users\MACHIN\AppData\Local\Fiches\Code macro f.vbs«@+
:bonjour:5 janvier 2021 à 16:03 #68516Fun27
MembreMerci pour votre aide, le code de Merlin est top et fonctionne parfaitement sur mon Poste :bravo: , par contre il ne fonctionne pas chez un autre utilisateur!
Je vais fouiller un peu.5 janvier 2021 à 16:17 #68517bebarth
Maître des clésA partir d’où il ne fonctionne pas ? Dès la première partie ?
@+
:bonjour:5 janvier 2021 à 16:28 #68518Fun27
MembreApparemment dès la partie 1
Le message d’alerte marche et ensuite quelques message sécurité et pas d’actions!
5 janvier 2021 à 16:59 #68519bebarth
Maître des clésY a-t-il un message dans la console ?
https://www.abracadabrapdf.net/ressources-et-tutos/js-et-formulaires-ressources/console-javascript-d-acrobat/
@+
:bonjour:5 janvier 2021 à 18:20 #68520Merlin
Maître des clésRemplace tous les :
catch (e) {};Par :
catch (e) {console.show()};Ainsi Acrobat Reader (ou Foxit) affichera automatiquement la Console avec le message d’erreur.
5 janvier 2021 à 19:25 #68521Fun27
MembreOk, je vais essayer tout ça jeudi car je ne suis plus au bureau d’ici là! Merci d’avance pour votre aide.
6 janvier 2021 à 08:04 #68522Fun27
MembreFinalement j’ai pu tester:
…et la console sur l’écran de mon collaborateur est vide!!! et il ne se passe donc rien lors qu’il clic exécuter.
En fichier joint l’image de la console et ci-dessous le code utilisé:
Code:if (app.alert({cMsg: « Confirmez-vous la validation ? », cTitle: « COMMANDE PROTOTYPE », nIcon: 2, nType: 2}) == 4) {// 1
try {
this.submitForm({cURL: « file:///O:Fiche orangecode numero.xfdf », cSubmitAs: « XFDF »});
}
catch (e) {console.show()};// 2
try {
app.openDoc(« file:///O:Fiche orangeCode macro e.vbs »);
}
catch (e) {console.show()};// 3
try {
this.getField(« Cache_Proto »).display = display.hidden;
this.getField(« cadre_PR »).display = display.visible;
this.getField(« Cache_serie »).display = display.visible;
}
catch (e) {console.show()};// 4 (non modifié)
try {
var fTo = this.getField(« To0 »).value;
var fSubject = this.getField(« Subject0 »).value;
var fBody = this.getField(« Body0 »).value + « nn » + « //CHPDWS1/Data/O/Fiche_orange/Fiches/ » + this.documentFileName + « n » + (« Ouvrir le fichier uniquement avec le raccourci ci-dessus et non avec le fichier joint en Objet. »);
this.mailDoc({cTo: fTo, cSubject: fSubject, cMsg: fBody});
app.execMenuItem(« Save »);
}
catch (e) {console.show()};}
-
AuteurRéponses
- Vous devez être connecté pour répondre à ce sujet.