Donnez vie à vos documents numériques !
 

Message annuler ou continuer lors d’un clic sur une action

abracadabraPDF Forums PDF – Général Message annuler ou continuer lors d’un clic sur une action

  • Ce sujet est vide.
  • Créateur
    Sujet
  • #46485
    Fun27
    Membre

    Bonjour,

    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?

25 réponses de 1 à 25 (sur un total de 42)
  • Auteur
    Réponses
  • #68498
    bebarth
    Maître des clés

    bonjour 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:

    #68499
    Fun27
    Membre

    Merci 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.

    #68500
    bebarth
    Maître des clés

    Tu 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:

    #68501
    Fun27
    Membre

    Ok 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.

    #68502
    bebarth
    Maître des clés

    bonjour,
    Il faut effectivement que toutes les actions suivantes soient indiquées en JavaScript.
    Si tu peux, partage un fichier !
    @+
    :bonjour:

    #68503
    Fun27
    Membre

    Voici 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. »

    #68504
    bebarth
    Maître des clés

    bonjour,
    Ç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:

    #68505
    Merlin
    Maître des clés

    Tu 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.

    #68506
    Fun27
    Membre

    Bonjour,

    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.

    #68507
    Fun27
    Membre

    Au 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!

    #68508
    bebarth
    Maître des clés

    Merlin 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:

    #68509
    Fun27
    Membre

    Toutes mes actions 1, 2, 3 et 4 fonctionnes parfaitement, j’aimerais juste leurs ajouter un message de confirmation avant leur exécution… :Euuuh:

    #68510
    Merlin
    Maître des clés

    Il 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.

    #68511
    Fun27
    Membre

    Voici 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. 

    #68512
    Merlin
    Maître des clés

    Si 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, … ?)

    #68513
    Fun27
    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

    #68514
    Merlin
    Maître des clés

    Essaie 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) {};

    }

    #68515
    bebarth
    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:

    #68516
    Fun27
    Membre

    Merci 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.

    #68517
    bebarth
    Maître des clés

    A partir d’où il ne fonctionne pas ? Dès la première partie ?
    @+
    :bonjour:

    #68518
    Fun27
    Membre

    Apparemment dès la partie 1

    Le message d’alerte marche et ensuite quelques message sécurité et pas d’actions!

    #68519
    bebarth
    Maître des clés
    #68520
    Merlin
    Maître des clés

    Remplace tous les :
    catch (e) {};

    Par :
    catch (e) {console.show()};

    Ainsi Acrobat Reader (ou Foxit) affichera automatiquement la Console avec le message d’erreur.

    #68521
    Fun27
    Membre

    Ok, je vais essayer tout ça jeudi car je ne suis plus au bureau d’ici là! Merci d’avance pour votre aide.

    #68522
    Fun27
    Membre

    Finalement 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()};

    }

25 réponses de 1 à 25 (sur un total de 42)
  • Vous devez être connecté pour répondre à ce sujet.