Donnez vie à vos documents numériques !
 

Mouss

Toutes mes réponses sur les forums

Affichage de 25 réponses de 1 à 25 (sur un total de 32)
  • Auteur
    Réponses
  • en réponse à : Script de validation qui disparaît #62358
    Mouss
    Membre

    J’ai eu un problème similaire avec un script de calcul.

    Il se trouve que j’ai deux versions d’Acrobat et que ce problème se produisait seulement sur l’une. Du coup j’ai pu le résoudre en passant sur l’autre version, je ne sais pas si tu as cette possibilité également…

    En tout cas le mystère est resté sans explication…

    en réponse à : Créer une boite de dialogue #62340
    Mouss
    Membre

    Salut tout le monde,

    Je relance le sujet parce que j’aimerais modifier le code suivant mais je ne sais pas trop comment…  :Ooops:

    Code:
    //Acrobat JavaScript Dialog
    //Created by DialogDesigner from WindJack Solutions
    var DocPrefs =
    {

        result:”cancel”,
        DoDialog: function(){return app.execDialog(this);},
        strGRP1:””,
        bChk1:false,
        GetRadioSel:function(oRslts,aCtrls){
          for(var strRtn=aCtrls[0];aCtrls.length>0;strRtn=aCtrls.pop()){
            if(oRslts[strRtn] == true)
              return strRtn;
          }
          return “”;
        },
        initialize: function(dialog)
        {
            var dlgInit =
            {
                    “Chk1”: this.bChk1,
            };
            dlgInit[this.strGRP1] = true;
            dialog.load(dlgInit);
        },
        commit: function(dialog)
        {
            var oRslt = dialog.store();
            this.strGRP1 = this.GetRadioSel(oRslt,[“Rad1″,”Rad2″,”Rad3″,”Rad4”]);
            this.bChk1 = oRslt[“Chk1”];
        },
        description:
        {
            name: “Document Preferences”,
            elements:
            [
                {
                    type: “view”,
                    elements:
                    [
                        {
                            type: “view”,
                            char_height: 10,
                            elements:
                            [
                                {
                                    type: “static_text”,
                                    item_id: “stat”,
                                    name: “Please Select Configuration”,
                                    char_width: 15,
                                    alignment: “align_fill”,
                                    font: “dialog”,
                                },
                                {
                                    type: “cluster”,
                                    item_id: “cls1”,
                                    name: “Form Target”,
                                    char_width: 8,
                                    char_height: 8,
                                    elements:
                                    [
                                        {
                                            type: “radio”,
                                            item_id: “Rad1”,
                                            group_id: “GRP1”,
                                            name: “Departmental”,
                                        },
                                        {
                                            type: “radio”,
                                            item_id: “Rad2”,
                                            group_id: “GRP1”,
                                            name: “Corporate”,
                                        },
                                    ]
                                },
                                {
                                    type: “check_box”,
                                    item_id: “Chk1”,
                                    name: “Include Section For Staff Info”,
                                    width: 102,
                                    height: 23,
                                },
                                {
                                    type: “cluster”,
                                    item_id: “cls2”,
                                    name: “Submission”,
                                    char_width: 8,
                                    char_height: 8,
                                    elements:
                                    [
                                        {
                                            type: “radio”,
                                            item_id: “Rad3”,
                                            group_id: “GRP1”,
                                            name: “Company Server”,
                                        },
                                        {
                                            type: “radio”,
                                            item_id: “Rad4”,
                                            group_id: “GRP1”,
                                            name: “Email to Accounting”,
                                        },
                                    ]
                                },
                            ]
                        },
                        {
                            type: “ok_cancel”,
                        },
                    ]
                },
            ]
        }
    };

    // Example Code
    DocPrefs.strGRP1 = “”;
    DocPrefs.bChk1 = false;
    if(“ok” == DocPrefs.DoDialog())
    {

        console.println(“GRP1:” + DocPrefs.strGRP1);
        console.println(“Chk1:” + DocPrefs.bChk1);
    }

    Ce code affiche une boîte de dialogue avec boutons radio (cf. capture en pj), moi j’aimerais à la place afficher une liste déroulante mais je ne sais pas comment la déclarer et l’appeler…

    Quelqu’un aurait une idée ?

    EDIT : Je viens de trouver un guide de Thom P. spécial Boîtes de dialogues!!! Si ça vous intéresse : http://www.windjack.com/DownLoads/AcroDialogsHelp.pdf
    Je vais me lancer dans sa lecture voir si ça m’aide.

    en réponse à : Créer une boite de dialogue #62338
    Mouss
    Membre

    Bien le bonjour,

    Je réponds sur ce topic car j’ai une question similaire. J’étais déjà tombé sur le tuto ci-dessous et j’ai compris que ce que j’essaie de faire sur mon formulaire doit être fait avec un execDialog  :Smiley07:, procédé qui est encore un peu flou pour moi…

    Difficile de trouver un tuto clair et simple sur cette fonctionnalité… (peut-être justement parce que ce n’est pas si simple  :jerisjaune:).
    Je vais essayer de bidouiller en manipulant des scripts que j’ai pu trouver sur différents PDF faisant appel à un execDialog, mais s’il y a un grand mage ès execDialog qui pourrait vulgariser un peu, ce ne serait pas de refus!

    Pour info je cherche à ouvrir une boîte de dialogue au clic sur un bouton qui permettrait, en choisissant dans une liste déroulante (avec 9 éléments) et en entrant le montant d’une dépense, d’ajouter la valeur saisie vers une case dépendant de l’élément choisi dans la liste déroulante  :siffle:

    EDIT : lien vers le PDF que j’ai chopé et dont je vais essayer de m’inspirer pour créer ma boîte de dialogue : http://www.windjack.com/resources/Examples/DialogUses.pdf

    en réponse à : Problème abracadabrantesque : bug en boucle infinie #62258
    Mouss
    Membre

    Merci bebarth,

    Là je crée un nouveau formulaire, je vais voir si le problème revient.

    J’espère que ce ne sera pas le cas, comme pour celui que j’avais fait exprès pour poster ici.

    en réponse à : Problème abracadabrantesque : bug en boucle infinie #62254
    Mouss
    Membre

    Pour des fichiers html j’utilisais TextWrangler, je suis passé sur Brackets.

    Pour les PDF j’avais pas pensé à utiliser un éditeur externe, mais c’est vrai que l’éditeur d’Acrobat est pas super pour l’indentation… je vais tester avec un externe  :Smiley03:

    en réponse à : Problème abracadabrantesque : bug en boucle infinie #62252
    Mouss
    Membre

    Merci Merlin,

    Je vais attribuer ce problème à une malédiction.
    En attendant je me refais un tableau excel que j’enregistrerai en PDF pour recréer mon formulaire de zéro.

    J’espère que la malédiction ne se propagera pas :p

    Mouss
    Membre

    Oh mon dieu ! Merci Merlin!  :bonjour:

    Qu’est-ce qu’on se sent bête quand on galère à essayer de nouveaux codes pour résoudre son problème alors que la solution est un “=” supplémentaire…
    Cela dit j’aurais pas imaginer que dans un if ça pouvait quand même attribuer une valeur et non simplement vérifier la valeur…

    Merci encore Merlin  :bravo:

    Mouss
    Membre

    Salut Merlin,

    En fait les champs nature.3 et suivants existent dans mon formulaire, là je l’ai juste allégé. J’envisage de faire éventuellement de cette page un modèle duplicable (si ça ne fout pas en l’air le reste de mon formulaire comme ça avait été le cas), c’est pour ça que j’essaie de faire un script sans avoir de “dernier indice”, et que j’ai ajouté la ligne avec le break.

    J’ai d’ailleurs un peu modifié mon script, j’ai passé la ligne break en première instruction de ma boucle for, et j’ai aussi changé la ligne pour le cas où le champ est vide :

    Code:
    for (var i=0;iif (this.getField(“nature.”+i)==null) break;
    else if (this.getField(“nature.”+i).value=”Loyers”) this.getField(“totalentreeloyers”).value=this.getField(“totalentreeloyers”).value+this.getField(“prix.”+i).value;
    else if (this.getField(“nature.”+i).value=”Subventions”) this.getField(“totalsubventions”).value=this.getField(“totalsubventions”).value+this.getField(“prix.”+i).value;
    i++;
    }

    Je n’ai plus de message d’erreur qui apparaît sur la console mais j’ai toujours le problème suivant : en cliquant sur le bouton de calcul des totaux, tous mes champs nature.i prennent la valeur “Loyers”, même si je ne fais aucun choix ou un choix différent, et toutes mes valeurs s’additionnent dans le champs total loyers. Je ne comprends pas du tout comment mon script fait changer la valeur des champs nature.i…

    Je vais peut-être essayer autre chose que le app.popUpMenu.

    Mouss
    Membre

    Bonjour Poudlard,

    Je déterre mon sujet pour à nouveau solliciter votre aide précieuse.

    Je confectionne actuellement le complément de mon formulaire de base.
    Le principe est le suivant (exemple en pièce jointe) :
    – Sur chaque ligne, l’utilisateur choisit un type de recette ou dépense puis indique le montant (j’utilise ici le script de Thom Parker app.popupmenu)
    – J’ai placé des champs de totaux par type de recette/dépense

    J’avais au départ pensé à mettre un script de validation sur les champs prix qui, en fonction du type choisi, ajoutait le montant au total correspondant. Ça ne fonctionnait pas, mais en le plaçant en action champ désactivé ça marchait. Le problème est qu’avec ça, on peut entrer un montant, et s’amuser à activer/désactiver le champ en question et le total augmentait en conséquence.

    J’ai donc opté pour un bouton qui calculerait les totaux, avec le script suivant :

    Code:
    for (var i=0;i      if (this.getField(“nature.”+i).value=”Loyers”)
                this.getField(“totalentreeloyers”).value=this.getField(“totalentreeloyers”).value+this.getField(“prix.”+i).value;
          else if (this.getField(“nature.”+i).value=”Subventions”)
                this.getField(“totalsubventions”).value=this.getField(“totalsubventions”).value+this.getField(“prix.”+i).value;
          else if (this.getField(“nature.”+i).value=”Autres recettes”)
                this.getField(“totalautresrecettesf”).value=this.getField(“totalautresrecettesf”).value+this.getField(“prix.”+i).value;

          if (this.getField(“nature.”+i).value=””) break;
    }

    Je rencontre cependant les problèmes suivants :
    – au départ déjà je n’avais pas mis la dernière ligne avec le break et tous mes champs nature.i prenaient la valeur “Loyers”
    – avec ou sans cette ligne, les montants s’additionnent seulement dans le total loyers
    – depuis que j’ai ajouté cette ligne break, l’addition se fait toujours uniquement dans le total loyer, et en plus, mes champs nature.i voient leur valeur s’effacer

    Avez-vous une idée du problème ?  :priere:
    Voyez-vous un moyen plus efficace de faire ce que je souhaite faire ?

    EDIT : J’oubliais, j’ai également ce message d’erreur qui s’affiche sur la console :
    TypeError: this.getField(“nature.” + i) is null
    2:AcroForm:calcultotaux:Annot1:MouseUp:Action1

    Mouss
    Membre

    Bon, je crois avoir trouvé, je rédigeais tout simplement mal mon script…

    en écrivant nom.substring(x,y) au lieu de substring(nom,x,y), ça marche  :jerisjaune:

    Mouss
    Membre

    Bonjour les marabouts du javascript,

    Je ne sais pas si je dois ouvrir un autre sujet pour ça mais j’ai une question à laquelle je n’arrive pas à trouver de réponse malgré plusieurs heures de recherche…

    J’essaie de définir une variable, type string, qui aurait pour valeur le nom d’un champ. L’objectif est d’en extraire un bout, substring.

    Pour être plus précis, je souhaite récupérer l’indice d’un champ enfant pour agir avec un autre champ enfant qui aurait le même indice, je m’explique :

    Sur une ligne, j’ai créé un champ “nature” et un champ “prix”, je les ai dupliqués verticalement jusqu’à remplir la page, j’ai donc 2 colonnes de champs, nature.i et prix.i.
    Je souhaite dans un script de validation sur tous mes champs prix faire une action en fonction de la valeur du champ nature de la même ligne.

    Je sais récupérer le nom de mon champ avec event.target.name.
    J’ai testé les fonctions substring et substr qui m’ont bien retourné une partie du texte que j’ai entré dans un champ.

    J’ai fait plusieurs essais du type :

    Code:
    var nom=event.target.name;
    console.println(substring(nom,2,4));

    ou

    Code:
    var nom=event.target.name;
    nom=nom.valueAsString;
    console.println(substring(nom,2,4));

    Le problème c’est qu’avec ça, j’ai un message dans la console qui me dit substring (ou substr) is not defined.
    Vu que ça marche lorsque je veux récupérer une partie d’un texte entré dans un champ, je me dis que la non définition de la fonction vient du fait que ma variable n’est pas considérée comme une chaine de caractères  :doute:

    Pour peut-être vous aider à y voir plus clair, voici l’idée du script mis en validation :
    Idée de l’action de validation sur prix.i : var i=extraction de l’indice du champ; if (this.getField(“nature.”+i).value==…) …;

    Des idées/explications pour aider l’apprenti sorcier que je suis ?

    Mouss
    Membre

    C’est ce que j’imaginais, mais pourtant dans l’exemple d’Alex, sur les listes déroulantes mères, le script qui remplit les listes filles c’est :

    Code:
    //Remplissage du second menu déroulant
    if(!event.willCommit)
    {
    RemplissageFille();
    }

    Or le remplissage de la liste fille se fait bien lorsqu’un choix a été fait sur la liste mère…  :Euuuh:

    Mouss
    Membre

    Super, moi aussi j’y vois beaucoup plus clair. Merci pour vos réponses  :bonjour:

    D’ailleurs Alex, avant de trouver ce PDF de Thom Parker, je suis tombé sur ton exemple de liste mère-fille (merci de partager ça!  :bravo:) et je me demandais pourquoi un “!” était utilisé dans le !event.willCommit ?

    Je connais l’utilisation “normale” du ! mais là je ne comprends pas trop…
    J’ai feuilleté le doc reference acrobat JS et là je viens de tomber sur ça https://acrobatusers.com/tutorials/print/formatting_text_fields (instructif également), mais je vois pas ce qui différencie event.willCommit de !event.willCommit … :Ooops:

    Mouss
    Membre

    Salut,

    Malheureusement Merlin, le problème était toujours là sur d’autres ordis.

    Par contre, semi-bonne nouvelle, j’ai trouvé l’origine du problème ! C’est l’utilisation d’un modèle de page, caché/visible selon le choix fait sur un bouton radio.

    J’étais reparti sur ma vieille version et j’ai commencé à refaire des modif en testant au fur et à mesure, et j’ai vu que c’est après l’ajout d’un modèle de page que ça commençait à merder.

    Du coup je suis revenu sur mon tableau final, j’ai supprimé le modèle de page, et les actions qui ne fonctionnaient plus sous Reader ont fonctionné !

    Je vais donc oublier pour le moment l’utilisation de modèles de pages… dommage…

    Mouss
    Membre

    La console s’ouvre quand il y a une erreur de script et ça me permet de voir où apporter des corrections, et encore…. comme je le disais plus bas, à un moment, après avoir déplacé des champs, la console s’était mise à me trouver des erreurs alors que les scripts n’avaient pas changé, et en passant sur Acrobat 8 puis en sauvegardant le fichier le problème semblait avoir été réglé.

    Là ce qui est étrange c’est que sur Acrobat Pro (XI et 8), tout fonctionne, donc pas d’erreurs de scripts, mais sur Reader mes champs texte ne prennent plus la valeur qu’ils sont censés prendre… Et sur ma version plus ancienne, qui a les mêmes scripts pour les actions concernées, ça fonctionne bien sur Reader.

    Mouss
    Membre

    Re-bonjour les amateurs de phénomènes paranormaux.

    J’ai du nouveau sur mon formulaire hanté.

    Certains boutons radio sont censés attribuer une valeur à des champs texte. Aucun problème sur Acrobat, mais sur Reader… rien n’apparaît au niveau des champs texte….

    Problème de logiciels ou versions pourriez-vous penser ?
    Détrompez-vous !
    J’ai une version plus ancienne de mon formulaire, qui a depuis subi simplement plusieurs changements “esthétiques”, sans modification au niveau des scripts concernés, et qui fonctionne correctement sur Reader…

    L’ajout de templates ou les changements de positions/couleur de fond etc. y sont-ils pour quelque chose ?

    Ce qui est très étrange c’est que l’un des boutons radio (2 choix) fait bien apparaître une valeur spécifique à chaque choix sur un champ texte… Évidemment il s’agit du champ texte le moins important…
    De même mon script de visibilité d’un template ne fonctionne plus…

    Très étrange également, sans avoir fait de manipulation particulière, le message d’erreur sur la police (absente de mon PDF) Cochin contenant un encodage incorrect, a cessé d’apparaitre à l’ouverture de mon document depuis 1 heure…

    Bon, j’ai ma version précédente que je peux utiliser mais je vais devoir refaire toutes les modifications esthétiques…  :mur: :mur: :mur: :mur: :mur:

    Mouss
    Membre

    Ok, on va éviter de s’embêter à essayer de simplifier à l’excès l’utilisation de ce formulaire destiné à des adultes autonomes  :jerisjaune:

    Je viens de subir un nouveau phénomène paranormal quant à l’utilisation de Acrobat XI et Acrobat 8. Je partage avec vous cette histoire étrange.

    Pour rappel : Je bosse habituellement sur Acrobat XI, car quand j’utilise la 8, ça rame beaucoup et quand je veux travailler sur les champs de formulaires ils apparaissent et disparaissent…
    J’avais quand même dû passer sur la version 8 pour mettre en place des calculs qui n’étaient pas pris en compte lorsque je définissais les formules sur Acrobat XI….

    Aujourd’hui, travaillant sur Acrobat XI, je décide de déplacer des champs au-dessus d’autres. La console javascript s’affole alors, me trouvant des erreurs “DeadObjectError objet introuvable” et des “Field.Value:4:….” en veux-tu en voilà, des erreurs en cliquant sur des boutons radio etc. (pourtant à part la position des champs, rien n’avait été modifié…).

    Je perds alors de précieuses minutes à chercher dans mes scripts (qui fonctionnaient sans problème), sur google et ici d’où peut provenir l’erreur, sans succès.

    Me vient alors l’idée d’essayer sous Acrobat 8. Là, miracle, tout fonctionne, aucun message d’erreur. Je sauvegarde le fichier. Je l’ouvre à nouveau avec Acrobat XI. Tout fonctionne à nouveau sans problème, la console reste tranquillement endormie et invisible.

    Mulder et Scully sont-ils inscrits ici ?

    Mouss
    Membre

    celui qu’il clique 50 fois avant de comprendre ce qu’il se passe…

    Hahahaha, imaginer la scène me fait bien rire  :jerisjaune:

    Pas trop de risque sur mon formulaire car le choix qui fait apparaître la page supplémentaire est fait avant de passer à une étape suivante où là, l’utilisateur verra que pour sa situation il y 2 pages  :Smiley03:

    EDIT : Petite question, j’envisage de peut-être ajouter à mon formulaire un modèle de page duplicable par l’utilisateur autant qu’il le souhaite. Est-il possible d’ajouter un script sur un bouton qui permet d’imprimer toutes les pages correspondant au template en question ? J’ai vu sur le forum qu’on pouvait imprimer des plages de pages, mais ça je ne sais pas…

    Mouss
    Membre

    Bon, finalement j’ai ajouté au bouton radio, après le …hidden=false, this.pageNum= numéro de la page sur laquelle se trouve le bouton.

    Ça peut faire un peu bouger la page si on est pas bien centré dessus mais au moins on reste sur la même page  :jerisjaune:

    Mouss
    Membre

    Merlin,

    Lorsqu’un événement appelle le script this.getTemplate(“…”).hidden=false, on est automatiquement envoyé vers cette page. Y a-t-il un moyen d’empêcher cela ?

    J’ai par exemple une page avec un bouton radio, et j’aimerais que l’un des choix fasse apparaître le modèle caché, sans aller directement sur la page…

    Mouss
    Membre

    J’avais effectivement vu qu’on pouvait faire ça après que tu aies parlé des modèles de pages  :Smiley03:
    Je vais explorer tout ça en profondeur  :extra:

    Mouss
    Membre

    Super Merlin!

    Je vais m’amuser avec ce nouvel outil (les modèles), que j’ai effectivement mis du temps à trouver  :jerisjaune: .

    Et merci pour les exemples!

    De la bombasse ce forum!  :bravo:

    Mouss
    Membre

    Bonjour Merlin,

    J’avais l’intention de préciser dans le mailing contenant le formulaire qu’il serait conseillé d’ouvrir le formulaire avec Reader, je peux ajouter qu’il faut une version à jour  :Smiley08: .
    J’accueille donc ta proposition à bras ouverts ! Tu as un lien vers un tuto sur comment procéder ?

    Pour être plus précis, mon formulaire envisage plusieurs situations (chaque situation a ses taux de déduction spécifiques). J’imaginais une PJ par situation, un clic sur le bouton décrit dans mon précédent post ouvrant la PJ correspondante.Est-ce que ta proposition permettrait de faire “la même” chose? à savoir, différentes pages masquées, une par situation, et le bouton afficherait la bonne ?

    Est-ce que le fait que les pages puissent apparaître ou rester masquées changerait quelque chose au script this.pageNum ?

    en réponse à : Formule de calcul non prise en compte dans l’onglet Calcul #60386
    Mouss
    Membre

    Bon à savoir, je n’utilisais smallpdf que pour réduire la taille de mes fichiers  :jerisjaune:

    Pour info j’ai réussi à entrer tous mes produits et sommes via la version 8.

    Merci beaucoup à vous deux de vous être penchés sur mon problème. Vraiment super ce fofo et ce site !!  :bravo:

    en réponse à : Formule de calcul non prise en compte dans l’onglet Calcul #60383
    Mouss
    Membre

    Bon, je crois bien qu’il s’agit d’un problème logiciel.

    J’ai la chance d’avoir sur ma machine à la fois Acrobat 8 et Acrobat 11.

    Jusque là je bossais sur la version 11, sur laquelle j’avais mon problème. Je viens d’essayer sur la version 8 et ça semble fonctionner avec les simples formules du logiciel (correspond au produit des champs…).

    J’espère que ça va durer…  :priere:

Affichage de 25 réponses de 1 à 25 (sur un total de 32)