Donnez vie à vos documents numériques !
 

Merlin

Toutes mes réponses sur les forums

Affichage de 99 réponses de 1 à 99 (sur un total de 10,236)
  • Auteur
    Réponses
  • en réponse à : Coller du texte dans des champs RTF #75162
    Merlin
    Maître des clés

    L’astuce c’est de coller le texte d’abord dans un éditeur de texte ou dans un traitement de texte en mode “texte seul” (TextEdit, Bloc-Notes…) et ensuite de re copier-coller vers Acrobat, mais c’est un peu laborieux.

    en réponse à : Coller du texte dans des champs RTF #75160
    Merlin
    Maître des clés

    Bonjour.

    Hélas non, la commande qui permet de coller du texte brut, sans formatage, (CTRL/CMD + Shift + V) fonctionne dans quasiment tous les logiciels mais pas dans Acrobat !

     

    en réponse à : Incrémenter numéro de page à partir d’un modèle #75159
    Merlin
    Maître des clés

    J’obtiens un NaN quand j’utilise ton code

    C’est normal, ce script ne fonctionne que sur une page générée depuis une page modèle, il ne fonctionne pas sur la page modèle elle même ni sur une page normale (statique).

    D’ailleurs pour que ça fonctionne vraiment bien il faut lui ajouter :

    this.calculateNow();

    pour s’assurer de la mise à jour immédiate du calcul du numéro de la page générée.

     

    Je ne me souviens plus de la raison profonde pour laquelle les pages générées requièrent ce script particulier mais je me souviens que j’avais bien galéré pour le mettre au point. Je remercie une fois de plus notre grand gourou Thom Parker qui m’avait expliqué pourquoi et comment.

    en réponse à : Incrémenter numéro de page à partir d’un modèle #75156
    Merlin
    Maître des clés

    PS : il faut le placer en script de calcul dans les champs concernés.

    en réponse à : Incrémenter numéro de page à partir d’un modèle #75155
    Merlin
    Maître des clés

    Bonjour

     

    Il faut utiliser ce script, sachant qu’il renvoie une erreur quand on le place sur la page modèle et que c’est normal : il ne fonctionne que sur une page générée.

    event.value = (event.target.page[1] + 1) + " / " + this.numPages ;

    La partie en orange est facultative, ça sert à obtenir une numérotation du type : 2/10 (s’il y a 10 pages).

    en réponse à : ACROBAT : Pages affichées ou non #75153
    Merlin
    Maître des clés

    🙂

    en réponse à : ACROBAT : Pages affichées ou non #75149
    Merlin
    Maître des clés

    Bonjour

     

    Quelle que soit l’interface que tu utilises (nouvelle expérience ou ancien Acrobat) il faut que tu trouves l’outil “Modèles de pages”.

    Dans l’exemple ci-joint le script est dans les cases à cocher (c’est le même partout).

    Il faudra adapter les cases à cocher et le script si tu veux n’afficher qu’un seul jeu de page à la fois (même nom et valeur d’exportation différente).

     

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Modification de script #75146
    Merlin
    Maître des clés

    Par ailleurs on devrait pouvoir le simplifier ainsi (non testé) :

    if (nomChamp.indexOf("Menu.")==0) {
    this.getField("Menu.3").fillColor=color.green;
    this.getField("Menu.4").fillColor=color.green;
    if (this.getField(nomChamp).type=="text" || this.getField(nomChamp).type=="combobox") {this.getField(nomChamp).defaultValue=this.getField(nomChamp).value;}
    else if ((this.getField(nomChamp).type=="checkbox" || this.getField(nomChamp).type=="radiobutton") && this.getField(nomChamp).name != "Menu.6") {this.getField(nomChamp).value="Off";}
    }

    en réponse à : Modification de script #75145
    Merlin
    Maître des clés

    Bonjour

    Non testé :

    if (nomChamp.indexOf("Menu.")==0) {
    this.getField("Menu.3").fillColor=color.green;
    this.getField("Menu.4").fillColor=color.green;
    if (this.getField(nomChamp).type=="text") {this.getField(nomChamp).defaultValue=this.getField(nomChamp).value;}
    else if ((this.getField(nomChamp).type=="checkbox" || this.getField(nomChamp).type=="radiobutton") && this.getField(nomChamp).name != "Menu.6") {this.getField(nomChamp).value="Off";}
    else if (this.getField(nomChamp).type=="combobox") {sText = this.getField(nomChamp).value; this.getField(nomChamp).defaultValue = sText;}
    }

    en réponse à : Identifier la couleur des champs en exportant les données #75132
    Merlin
    Maître des clés

    On pourrait aussi baliser automatiquement les données avec la couleur du champ, mais pour ça il faudrait utiliser un script d’exportation spécifique au lieu de la fonction fournie dans Acrobat.

    en réponse à : Identifier la couleur des champs en exportant les données #75131
    Merlin
    Maître des clés

    Bonjour

    La réponse est non, sauf si on ajoute un champ/rubrique “couleur” en plus de chaque champ.

    L’autre solution serait d’ajouter (automatiquement) la couleur dans le contenu des données de chaque champ de manière à avoir cette indication dans les données..

    Mais tout dépend de la façon dont sont ensuite utilisées les données au format TXT.

    en réponse à : JavaScript formulaire afficher/masquer champs texte #75125
    Merlin
    Maître des clés

    Pour masquer tous les champs il faut décocher toutes les cases, c’est la principale différence entre cases à cocher et boutons-radio : l’utilisateur peut désélectionner toutes les cases, contrairement aux boutons-radio.

    en réponse à : JavaScript formulaire afficher/masquer champs texte #75122
    Merlin
    Maître des clés

    *Parce que les traitements de texte ajoutent des caractères “parasites”, et parce-que les éditeurs de texte colorent automatiquement la syntaxe des scripts, ce qui rend leur lecture plus facile et évite des erreurs (image jointe).

     

    Attachments:
    You must be logged in to view attached files.
    en réponse à : JavaScript formulaire afficher/masquer champs texte #75121
    Merlin
    Maître des clés

    Bonjour et bienvenue

    Ça serait plus facile si tu avais posté un exemple en PDF contenant les coches et les champs en question.

    Il y a une erreur (que font tous les débutants) à ne pas commettre : il ne faut jamais éditer des scripts avec un traitement de texte (comme Word), il faut toujours utiliser un Éditeur de texte, comme BBEdit (Mac) ou NotePad (Windows).

    Il est contre-productif de répéter la condition (if/else) pour chaque champ, une seule condition peut traiter plusieurs instructions afficher/masquer (ou autre). C’est à ça que servent les accolades.

    Il est inutile de mettre “this” devant “event.target”.

    En fait, pour agir comme des boutons-radio, il faut que les 3 cases à cocher aient toutes exactement le même nom avec chacune une valeur d’exportation différente. Et pour que ça fonctionne correctement il faut mettre le même script dans les trois cases.

    Pour faire simple disons que la case 1 a une valeur d’exportation “1”, la case 2 a la valeur d’exportation “2” et la case 3 a la valeur d’exportation “3”.

    Ce qui donnerait par exemple ce script à placer dans les 3 cases, en action Souris relevée :

     

    // D'ABORD ON MASQUE TOUS LES CHAMPS
    this.getField("Teste_PSA1").display=display.hidden;
    this.getField("vict_pro_1_4").display=display.hidden;
    this.getField("aucune_vict_pr_1_4").display=display.hidden;
    this.getField("Texte_PSA3").display=display.hidden;
    this.getField("une_vict_pr_3").display=display.hidden;
    this.getField("vic_profil3").display=display.hidden;
    this.getField("enfant_victime").display=display.hidden;
    this.getField("enfant_victime1").display=display.hidden;
    this.getField("autre_vic_case").display=display.hidden;
    this.getField("Texte222").display=display.hidden;
    this.getField("Texte223").display=display.hidden;
    this.getField("Liste222").display=display.hidden;
    this.getField("Liste223").display=display.hidden;
    this.getField("Texte121").display=display.hidden;
    this.getField("Texte122").display=display.hidden;
    this.getField("Texte_PSA4").display=display.hidden;
    this.getField("Texte_CETM2").display=display.hidden;
    this.getField("typeverdict").display=display.hidden;
    this.getField("Tx_SAS").display=display.hidden;

     

    // ENSUITE ON AFFICHE CEUX QUI DOIVENT L'ÊTRE
    if (event.target.value == 1)
    {
    this.getField("Teste_PSA1").display=display.visible;
    this.getField("vict_pro_1_4").display=display.visible;
    this.getField("aucune_vict_pr_1_4").display=display.visible;
    }

    else if (event.target.value == 2)
    {
    this.getField("Texte_PSA3").display=display.visible;
    this.getField("une_vict_pr_3").display=display.visible;
    this.getField("vic_profil3").display=display.visible;
    this.getField("enfant_victime").display=display.visible;
    this.getField("enfant_victime1").display=display.visible;
    this.getField("autre_vic_case").display=display.visible;
    this.getField("Texte222").display=display.visible;
    this.getField("Texte223").display=display.visible;
    this.getField("Liste222").display=display.visible;
    this.getField("Liste223").display=display.visible;
    this.getField("Texte121").display=display.visible;
    this.getField("Texte122").display=display.visible;
    }

    else if (event.target.value == 3)
    {
    this.getField("Texte_PSA4").display=display.visible;
    this.getField("Texte_CETM2").display=display.visible;
    this.getField("typeverdict").display=display.visible;
    this.getField("Tx_SAS").display=display.visible;
    }

    en réponse à : Problème de lancement d’un script #75118
    Merlin
    Maître des clés

    Alors pourquoi ça fonctionne en ne recherchant que 4 chiffres ???

    Soit parce-que tu as eu la chance de ne pas l’avoir fait fonctionner sur des codes utilisant des lettres, soit parce-que ECMAScript n’est pas très rigoureux dans le respect des métacaractères GREP (comme j’ai déjà pu le constater).

    À mon avis c’est la 2e supposition qui est la plus probable.

    😉

    en réponse à : Problème de lancement d’un script #75117
    Merlin
    Maître des clés

    J’ai également écris un petit utilitaire !

    Excellent !

    en réponse à : Tracé arc de cercle #75101
    Merlin
    Maître des clés

    Joker !

    en réponse à : Problème de lancement d’un script #75100
    Merlin
    Maître des clés

    🙂

    en réponse à : Problème de lancement d’un script #75093
    Merlin
    Maître des clés

    Effectivement j’utilise l’utilitaire cité ci-dessus.

    C’est un ancien script que je t’ai donné, maintenant je ne perd plus de temps à ne convertir que les caractères accentués je converti toute la chaîne de caractères, et je laisse l’originale juste au-dessus sous forme de commentaire.

    Ainsi l’originale disparaît lors de la minification/optimisation du script avec tous les autres commentaires, comme ça je suis le seul à comprendre ce que fait le script et je complique la tâche de ceux qui veulent piquer ou détourner mes scripts 😉

    Exemple :

    // var strTitre = "COUCOU";
    // var strMessage = "Merci de renseigner les champs Date et Nom avant d'enregistrer ce document.";
    var strTitre = "\u0043\u004F\u0055\u0043\u004F\u0055";
    var strMessage = "\u004D\u0065\u0072\u0063\u0069\u0020\u0064\u0065\u0020\u0072\u0065\u006E\u0073\u0065\u0069\u0067\u006E\u0065\u0072\u0020\u006C\u0065\u0073\u0020\u0063\u0068\u0061\u006D\u0070\u0073\u0020\u0044\u0061\u0074\u0065\u0020\u0065\u0074\u0020\u004E\u006F\u006D\u0020\u0061\u0076\u0061\u006E\u0074\u0020\u0064\u0027\u0065\u006E\u0072\u0065\u0067\u0069\u0073\u0074\u0072\u0065\u0072\u0020\u0063\u0065\u0020\u0064\u006F\u0063\u0075\u006D\u0065\u006E\u0074\u002E";

    // MESSAGE D'ALERTE
    app.alert({cMsg:strMessage, nIcon: 1, cTitle: strTitre});}

     

    Et je met toujours les commentaires en capitales pour mieux les détacher du code et les rendre plus visibles

     

     

    en réponse à : Problème de lancement d’un script #75086
    Merlin
    Maître des clés

    var strAlertRaz = "Voulez vous vraiment supprimer le contenu de tous les champs de donn\u00E9es et revenir \u00E0 l'\u00E9tat initial du document ?\n\nCette action ne pourra pas \u00EAtre annul\u00E9e.\nSi besoin utilisez : menu Fichier : R\u00E9tablir";
    var strTitr = "TITRE";

    // si réponse = 3 = non
    if (app.alert({cMsg: strAlertRaz, cTitle: strTitr, nIcon: 2, nType: 2}) == 3) {
    app.alert("Opération annulée.");
    }
    else {this.resetForm();}

    en réponse à : Problème de lancement d’un script #75081
    Merlin
    Maître des clés

    Concernant la fonction “defaut”, je n’ai pas bien compris pourquoi mais pour les combobox l’égalité “defaultValue = value” ne fonctionne pas directement, il passer par une variable.

    Par-contre ce qui est certain car c’est précisé dans la doc c’est qu’il faut cocher l’option “Autoriser l’utilisateur à saisir un texte personnalisé” pour chaque combobox concerné sinon ça ne peut pas fonctionner.

    Fait attention à une chose : quand tu testes des conditions avec trois “if” qui se suivent tu obliges le script à tester tous les champs trois fois, alors qu’avec “else if” la deuxième condition n’est testée que si la première n’est pas remplie, et la troisième n’est testée que si la première et la deuxième ne sont pas remplies.

    “else if” est donc un gain de temps qui permet d’accélérer l’exécution des scripts.

     

    function Default() {

    var sText;

    for (var i=0; i<this.numFields; i++) {
    var nomChamp=this.getNthFieldName(i);
    //console.println(i+" - nomChamp : "+nomChamp+" - "+(this.getField(nomChamp).page+1)+" - "+this.getField(nomChamp).type);

    if (nomChamp.indexOf("R.")==0) {
    if (this.getField(nomChamp).type=="text") this.getField(nomChamp).defaultValue=this.getField(nomChamp).value;
    else if ((this.getField(nomChamp).type=="checkbox" || this.getField(nomChamp).type=="radiobutton")) this.getField(nomChamp).defaultValue=this.getField(nomChamp).value;
    else if (this.getField(nomChamp).type=="combobox") {sText = this.getField(nomChamp).value; this.getField(nomChamp).defaultValue = sText;}
    }

    if (nomChamp.indexOf("Q.")==0) {
    if (this.getField(nomChamp).type=="text") {this.getField(nomChamp).value="";}
    else if ((this.getField(nomChamp).type=="checkbox" || this.getField(nomChamp).type=="radiobutton")) this.getField(nomChamp).value="Off";
    else if (this.getField(nomChamp).type=="combobox") {this.getField(nomChamp).value=this.getField(nomChamp).getItemAt(0,false);}
    }

    if (nomChamp.indexOf("Titre.")==0) {this.getField(nomChamp).defaultValue=this.getField(nomChamp).value;}
    if (nomChamp.indexOf("TQ.")==0) {this.getField(nomChamp).defaultValue=this.getField(nomChamp).value;}
    if (nomChamp.indexOf("Question.")==0) {this.getField(nomChamp).defaultValue=this.getField(nomChamp).value;}
    if (nomChamp.indexOf("Aide." && this.getField(nomChamp).type=="text")==0) {this.getField(nomChamp).defaultValue=this.getField(nomChamp).value;}

    if (nomChamp.indexOf("TL.")==0 && this.getField(nomChamp).type=="text") {this.getField(nomChamp).defaultValue="";}

    if (nomChamp.indexOf("Menu.")==0) {
    this.getField("Menu.3").fillColor=color.green;
    this.getField("Menu.4").fillColor=color.green;
    if (this.getField(nomChamp).type=="text") this.getField(nomChamp).defaultValue=this.getField(nomChamp).value;
    else if ((this.getField(nomChamp).type=="checkbox" || this.getField(nomChamp).type=="radiobutton")) this.getField(nomChamp).value="Off";
    else if (this.getField(nomChamp).type=="combobox") {sText = this.getField(nomChamp).value; this.getField(nomChamp).defaultValue = sText;}
    }

    }}

    en réponse à : Problème de lancement d’un script #75079
    Merlin
    Maître des clés

    J’ai l’habitude de mettre toutes mes fonctions ensembles dans un seul fichier texte et ensuite de tout copier-coller dans un seul script de document.

    Après avoir cherché l’erreur en vain pendant de longues minutes c’est quand j’ai fait ça avec tes deux fonctions, car je trouve ça plus pratique, que l’évidence m’a sauté aux yeux :

    dans la fonction “aleatoir” l’indice “i” est déclaré avec “var”, donc il est enfermé dans cette fonction et ne peut pas communiquer avec une autre fonction. Ce qui condamne la fonction “hasard/random” à l’échec systématique.

    Quand elle est appelée directement depuis le bouton ça fonctionne car dans ce cas l’indice “var i” n’est pas enfermé dans une fonction.

    Donc dans la fonction “aleatoir” il faut juste supprimer “var” en deuxième ligne pour que ça fonctionne :

    function aleatoir() {
    for (i=1; i<=30; i++) {
    // etc

    Ci-joint.

     

     

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Problème de lancement d’un script #75074
    Merlin
    Maître des clés

    Bonjour

     

    Il existe une fonction nommée “random” dans tes scripts, et il est fort possible que “random” fasse partie des mots réservés. Il faudrait donc commencer par changer ce nom.

    en réponse à : URL cliquable dans champ de formulaire #75067
    Merlin
    Maître des clés

    Normalement il suffit de cocher “Mémoriser cette action…” et de cliquer “Autoriser” pour que le site cible soit ajouté à la liste blanche.

    Sinon on peut cocher “Autoriser les PDF à accéder à tous les sites” dans les Préférences*, mais c’est un choix utilisateur qu’on ne peut pas forcer.

    Voir captures.

     

    *Ce n’est pas dans les Préférences “Internet”, ce serait trop facile !

    😉

    Attachments:
    You must be logged in to view attached files.
    en réponse à : URL cliquable dans champ de formulaire #75059
    Merlin
    Maître des clés

    Bonjour

     

    Place ce script en Action “Souris relâchée” dans le champ concerné :

    if ( !/^\s*$/.test(event.target.value) ) {app.launchURL(event.target.value);}

    Mais il faut remplir le champ avec une vraie URL, c’est à dire qui commence par “www” ou “http” ou https”.

    Pour la couleur bleue il faut changer la couleur du texte, pour le soulignement je n’ai pas de solution car il faudrait utiliser le format RTF mais celui-ci se réinitialise à chaque changement du contenu du champ.

    Ci-joint.

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Problème de lancement d’un script #75048
    Merlin
    Maître des clés

    Bonjour

     

    Dans ton document il y a 25 scripts de document, donc je n’ai pas cherché la ligne 75… 😉

    Sinon, met ton script en fonction dans un script de document :

    function aleatoir() {
    for (var i=1; i<=30; i++) {
    try {
    random (i);
    } catch(e) {
    this.getField("Var."+i+".3").value="";
    }
    }
    }

    Et appelle cette fonction via la condition (if else).

    en réponse à : Choix de Zone de liste vers liste déroulante #75041
    Merlin
    Maître des clés

    Quand je te dis que tu es un génie !

    Sur Windows ça fonctionne parfaitement avec la touche Ctrl ou avec la touche AltGr (qui correspond à la touche Alt/Option du Mac). Ça fonctionne aussi très bien avec la touche Ctrl et la touche AltGr en même temps.

    Et aussi avec la touche majuscule pour la sélection continue.

    en réponse à : Choix de Zone de liste vers liste déroulante #75030
    Merlin
    Maître des clés

    bebarth est un génie !

    en réponse à : Expression regulière #75028
    Merlin
    Maître des clés

    Les parenthèses : erreur à la console et arrêt du script
    Le crochet [ : erreur à la console et arrêt du script
    Le crochet ] : n’a pas l’air de poser problème

    Parenthèses et crochets sont utilisés en JavaScript comme délimiteurs de string et d’array, c’est pour ça qu’il faut les échapper (escape) avec un antislash quand ils sont utilisés dans une chaîne de caractères (string).

    en réponse à : Expression regulière #75022
    Merlin
    Maître des clés

    Au lieu de

    droite P'(x)

    essaie avec

    droite P\'\(x\)

    ou avec

    droite P\\'\\(x\\)

    Par fois deux antislash valent mieux qu’un seul.

    en réponse à : Calcul taux d’évolution JavaScript #75009
    Merlin
    Maître des clés

    C’est bebarth qu’il faut remercier, j’ai juste adapté son script.

    en réponse à : InDesign : afficher/masquer un calque dans Acrobat #75007
    Merlin
    Maître des clés

    Bonjour et bienvenue

     

    Je ne vois pas de popup ni d’action qui affiche de calque dans ton exemple…

    Regarde dans les actions des deux champs, j’ai ajouté des scripts. Car ce document étant créé avec InDesign les champs sont attachés aux calques, on ne peut donc pas utiliser l’action “Définir la visibilité du calque”.

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Expression regulière #75003
    Merlin
    Maître des clés

    Bonjour

     

    Essaie de remplacer le “?” par son équivalent en Unicode :

    \u003F

    en réponse à : Calcul taux d’évolution JavaScript #74999
    Merlin
    Maître des clés

    Je l’ai fait comme ça (ci-joint).

    Le script est dans le champ “calcul”.

    Attachments:
    You must be logged in to view attached files.
    en réponse à : impression : pivoter des pages #74984
    Merlin
    Maître des clés

    Bonjour

     

    Il n’y a pas besoin de script, c’est une fonction native dans Acrobat (Reader) et dans la plupart des logiciels.

    Capture jointe.

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Enregister Sous – Chemin choisi par l’utilisateur #74976
    Merlin
    Maître des clés

    En vrai c’est du “Device Independent Path” dont je voulais parler.

    Je viens d’en retrouver le lien : http://acrobatusers.com/tutorials/file-paths-acrobat-javascript

    en réponse à : Choix de Zone de liste vers liste déroulante #74974
    Merlin
    Maître des clés

    Bonjour

     

    Ci-joint, le script est dans le champ “zone2”.

    Je l’ai placé en action champ désactivé car comme la sélection multiple est autorisée ça ne fonctionne pas correctement en action “changement de sélection”.

     

    this.getField("choix2").value = event.value;

    var f = this.getField("zone2");
    var a = f.currentValueIndices;
    if (typeof a == "number") {// A single selection (type: number)
    this.getField("pop2").setItems([f.value]);
    }
    else { // Multiple selections (type: array)
    this.getField("pop2").setItems(f.value);
    }

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Enregister Sous – Chemin choisi par l’utilisateur #74970
    Merlin
    Maître des clés
    en réponse à : Variables ayant comme nom la valeur des champs #74945
    Merlin
    Maître des clés

    PS : ci-dessus c’est le principe que j’ai décrit, je n’ai pas vérifié mais il est possible que pour des “raisons de sécurité” Adobe ait limité l’échange de variables entre les documents.

    Cependant ce qui vaut chez Adobe ne vaut pas pour tous les éditeurs de logiciels.

    en réponse à : Variables ayant comme nom la valeur des champs #74944
    Merlin
    Maître des clés

    Bonjour

    Attention, le point est aussi un caractère spécial non toléré dans un nom de variable. Donc pas de noms de champs contenant des points !

     

    Autre question : si je déclare ces variables par var, celles ci ne sont déclarées que dans le script de document ou dans tout le document?

    En utilisant “var” dans la déclaration d’une variable :

    var toto = "Blablabla";

    Si elle est déclarée dans une fonction elle n’est disponible que dans cette fonction.

    Si elle est déclarée ailleurs que dans une fonction (script de document ou d’objet) elle est disponible dans tout le document actif, et seulement dans celui là.

     

    En n’utilisant pas “var” dans la déclaration :

    toto = "Blablabla";

    Elle est disponible pour tous les scripts de tous les documents ouverts et ceux qu’on ouvrira par la suite tant qu’on n’aura pas quitté l’application.

    Ce qui est parfois trompeur car on peut avoir un document avec des scripts qui fonctionnent très bien alors que le lendemain, après avoir quitté l’application, ou bien quand on le transmet à quelqu’un d’autre ça ne fonctionne plus. En cause : la variable avait été déclarée ailleurs dans un autre document.

    Ce qui peut aussi causer des erreurs si plusieurs documents utilisent un même nom de variable : il en résulte que chaque document écrase la variable déclarée dans un autre.

    en réponse à : Calcul taux d’évolution JavaScript #74934
    Merlin
    Maître des clés

    Bonjour

     

    A priori la réponse est oui mais il faudrait que tu donne plus détails sur la formule à calculer, voire que tu partages tout ou partie du formulaire si tu veux un exemple.

    en réponse à : Problème script de validation valeur minimale #74893
    Merlin
    Maître des clés

    C’est tout le charme des forums, chacun propose son idée et ensuite il faut faire la part des choses.

    Ci-joint un exemple fonctionnel, il faut aussi faire attention à l’ordre de calcul.

     

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Problème script de validation valeur minimale #74883
    Merlin
    Maître des clés

    sauf que, à nouveau, l’affichage en lettre n’est pas automatique : il faut cliquer sur le champ “TexteNombre” pour voir apparaître la transcription. Ça fait un moment que je cherche mais je ne vois pas où est l’erreur. Est-ce parce que l’ordre de calcul n’a pas été modifié ?

    J’ai déjà répondu à cette question il y a deux jours dans ma première réponse (voir ci-dessus) :

    “Et dans le champ “SaisieSomme” le script devrait placé en script de Validation, pas en Action.”

    Si tu ne lis pas les réponses et que tu ne regardes pas les copies d’écran qu’on se donne la peine de te fournir tu risques de tourner en rond pendant longtemps !

    Merlin
    Maître des clés

    Bonjour

    Fais une recherche sur “liste”, mère fille” ou sur “listes dépendantes” dans ce forum. Tu auras beaucoup de réponses car ce sujet à déjà été abordé de nombreuses fois.

    en réponse à : Problème script de validation valeur minimale #74862
    Merlin
    Maître des clés

    C’est vrai, mais la validation Acrobat implique d’indiquer une fourchette de valeurs et je ne souhaite pas indiquer de valeur maximale.

    Non.

    Si tu avais regardé la capture d’écran que j’ai posté (ci-dessus) tu aurais vu qu’on peut très bien n’entrer qu’une seule valeur, minimum ou maximum.

    en réponse à : Problème script de validation valeur minimale #74855
    Merlin
    Maître des clés

    Ceci dit JC à raison, le script de conversion en lettres serait mieux placé en script de document.

    Et pour plus de cohérence je mettrais le symbole € dans le champ “SaisieSomme”, qui devrait être en lecture seule tout comme le champ “TexteSomme”.

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Problème script de validation valeur minimale #74853
    Merlin
    Maître des clés

    Bonjour

     

    C’est le script de validation du champ “nombre” qui n’est pas correct, c’est d’autant plus dommage qu’il n’y a pas besoin de script : il suffit d’utiliser la validation fournie par Acrobat (voir capture).

    Et dans le champ “SaisieSomme” le script devrait placé en script de Validation, pas en Action.

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Chiffre en lettres avec JavaScript #74838
    Merlin
    Maître des clés

    Bonjour

     

    Ci-joint, je ne sais pas s’il y a eu d’autres versions depuis.

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Léger bug sur mon formulaire #74836
    Merlin
    Maître des clés

    Moi en général c’est après avoir dormi que je comprend mes erreurs/bugs !

    😉

    en réponse à : Ajout d’un PDF dans les emplacements privilégiés #74817
    Merlin
    Maître des clés

    Il y a de nombreuses années j’ai publié cet utilitaire qui fonctionne sur ce principe, c’est le plus inutile et le moins utilisé que j’ai jamais fait !

    Show_me_the_path

    en réponse à : Ajout d’un PDF dans les emplacements privilégiés #74816
    Merlin
    Maître des clés

    Je viens de regarder la documentation : une chose est sure c’est que dans tous les cas ça ne pourrait se faire que depuis la console ou depuis un script d’application.

    Donc tu n’es pas plus avancé.

     

    Si c’était possible la seule solution serait d’envoyer le script dans la console, d’afficher la console, de demander à l’utilisateur de tout sélectionner dans la console et d’appuyer sur la touche Entrée (Enter) en lui demandant de bien faire attention à ne pas confondre avec la touche Retour (Return). Sachant que sur les Mac portable il faut faire FN-Return pour obtenir Enter.

    D’expérience je peux te dire qu’entre les inexpérimentés qui ne comprendront rien et les méfiants qui ne voudront pas le faire, ça ne fonctionnera que pour un tout petit petit nombre d’utilisateurs.

    en réponse à : Execution d’un script si un champ est absent #74810
    Merlin
    Maître des clés

    Bonjour

     

    Remplace la première ligne par :

    if (this.getField("meca") === null) {

     

    Par ailleurs, logiquement ton script devrait s’exécuter même si le champ n’est pas déplacé, mais tu ne dois pas le voir car ils se superposent.

    en réponse à : Mr ou Mme qui s’inscrit avec bouton radio ou case à cocher #74807
    Merlin
    Maître des clés

    La différence c’est qu’après en avoir coché un, l’utilisateur ne peux pas décocher un groupe de boutons-radio. Contrairement aux cases à cocher.

    Sinon c’est tout pareil.

    en réponse à : Mr ou Mme qui s’inscrit avec bouton radio ou case à cocher #74806
    Merlin
    Maître des clés

    Ils ne sont pas vraiment différents, c’est juste que bebarth a placé le script seulement dans les cases à cocher, tu as juste à le copier-coller dans les boutons-radio (où il y a encore mon script précédent).

    Le nom tu peux l’écrire comme tu veux dans le champ texte, avec ou sans majuscules.

    en réponse à : Mr ou Mme qui s’inscrit avec bouton radio ou case à cocher #74800
    Merlin
    Maître des clés

    Bonjour

     

    Il y a des scripts inutiles et incohérents dans ton document, deux script d’actions suffisent (voir ci-joint).

    Tu devrais utiliser la console JavaScript qui donne des renseignements précieux, voir : https://www.abracadabrapdf.net/ressources-et-tutos/js-et-formulaires-ressources/console-javascript-d-acrobat/

     

    Mr = Mister, c’est de l’anglais. En français l’abréviation de Monsieur c’est M. (voir : https://www.lalanguefrancaise.com/orthographe/m-ou-mr-abreviation-monsieur)

    😉

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Not Allowed – Script #74797
    Merlin
    Maître des clés

    Cette variable devrait être insérée dans la dernière ligne, où tu as répété l’instruction.

    Je l’ai renommée ci-dessous :

    var aTousLesModeles=this.templates;
    for (j=0; j<aTousLesModeles.length; j++) {
    aTousLesModeles[j].hidden=false; // true ou false
    var leNom = aTousLesModeles[j].name;
    var ind = leNom.substr(leNom.length-1);
    var sNom = leNom.substr(0,leNom.length-1);
    this.setPageLabels(this.numPages-1, ["D",sNom,ind-1]);
    }

     

    En tout cas tu me sauves la mise car je suis justement en train de travailler sur les documents pour lesquels j’ai besoin de ce script qui affiche le nom exact des templates (sans ajouter de numéro), qui ne fonctionnait plus à cause de fichu bug du “i” sur le forum.

    😉

    en réponse à : Not Allowed – Script #74793
    Merlin
    Maître des clés

    Je l’ai modifié car le dernier caractère du nom du modèle n’étais pas conservé.

    Quand j’utilise ton script ça ne fonctionne pas et la console renvoie ce message d’erreur :

    TypeError: leNom is undefined
    5:Batch:Exec

    en réponse à : Calcul tangente #74789
    Merlin
    Maître des clés

    C’est surtout bebarth qu’il faut remercier, je me suis contenté d’essayer de faire un peu d’humour.

    🙂

    en réponse à : Calcul tangente #74783
    Merlin
    Maître des clés

    Bonjour

    Je sais la prendre mais je ne sais pas la calculer !

    😉

    en réponse à : Script qui fonctionne de façon isolée #74779
    Merlin
    Maître des clés

    Pour info la version d’essai de Qoppa PDF Studio permet de renommer plusieurs champs de formulaire à la fois, des centaines si besoin.

    Comme cette version d’essai ajoute des filigranes l’astuce c’est de faire ça dans une copie du document PDF et ensuite de ramener les champs renommés dans le document original par copier-coller en ouvrant les 2 PDF avec Acrobat, ou avec PDF Expert.

    Je n’ai pas testé avec ce dernier mais il n’y a aucune raison que ça ne fonctionne pas.

    en réponse à : Not Allowed – Script #74777
    Merlin
    Maître des clés

    Tu as bien fait, à l’origine c’était fait exprès car ça correspondait à un type de documents particuliers, et ensuite je l’ai conservé tel quel.

    • Cette réponse a été modifiée le il y a 3 mois par Merlin.
    en réponse à : Ajout d’un PDF dans les emplacements privilégiés #74775
    Merlin
    Maître des clés

    Bonjour

    Bonne question à laquelle je ne peux pas répondre pour le moment car je suis dans les Alpes loin de chez moi et mon ordi.

    en réponse à : Script qui fonctionne de façon isolée #74764
    Merlin
    Maître des clés

    En tout cas ça dépasse les miennes.

    Moi en matière d’essence j’utilise surtout du SP98 😉

    en réponse à : Script qui fonctionne de façon isolée #74761
    Merlin
    Maître des clés
    1. Je n’imaginais même pas que de tels logiciels existaient, impressionnant !
    2. Avec Acrobat c’est facile mais avec PDF XChange je ne sais pas non plus…
      Ce qui devrait fonctionner avec n’importe quel logiciel c’est d’aplatir la page et de copier-coller les données dans un tableur.
    en réponse à : Script qui fonctionne de façon isolée #74755
    Merlin
    Maître des clés

    Je ne sais pas ce qu’est un logiciel de calepinage mais j’image qu’en entrée il prend un fichier de type tableur (CSV ou Excel).

    Donc cette manip me paraitrait plus simple à effectuer dans un tableur, après avoir exporté les données.

    en réponse à : Not Allowed – Script #74744
    Merlin
    Maître des clés

    Le script qui démasque les modèles en conservant leurs noms, à placer dans une Action :

    var aTousLesModeles = this.templates;
    for (i = 0; i < aTousLesModeles.length; i++) {
    aTousLesModeles.hidden = false; // true ou false
    var leNom=aTousLesModeles.name;
    var ind=leNom.substr(leNom.length-1);
    var nm=leNom.substr(0,leNom.length-1);
    this.setPageLabels(this.numPages-1, ["D",leNom.substr(0,leNom.length-1),ind-1]);
    }

    en réponse à : Script qui fonctionne de façon isolée #74743
    Merlin
    Maître des clés

    Bonjour

     

    Il te faut emballer les calculs dans une condition qui vérifie si les champs à calculer ne sont pas vides. Exemple :

    //calculs cotés caisson
    if (this.getField(“A.3.”+i).value != “” &&this.getField(“A.2.”+i).value != “” && this.getField(“A.7.”+i).value != “”) {
    this.getField(“Caiss.1.”+i).value =
    this.getField(“A.3.”+i).value + “×”+
    this.getField(“A.2.”+i).value + “×”+
    this.getField(“A.7.”+i).value;
    }

    en réponse à : Somme des radio boutons en mots #74733
    Merlin
    Maître des clés

    Tu partiras avec une bonne base car beaucoup de JavaScripteurs sont largués dès qu’on aborde le GREP.

    😉

     

    if ((/\d{3}.+$/.test(strName))) {
    // blablabla
    }

    en réponse à : Not Allowed – Script #74730
    Merlin
    Maître des clés

    “Ce serait utile en effet. Est-ce qu’un script pourrait aussi créer un modèle en utilisant le nom du panneau page? J’imagine que oui.”

    Je n’en ai pas mais bebarth est capable de tout… 😉

    Je n’ai pas eu ce besoin car s’il y a peu de modèles ce n’est pas très utile, et s’il y en a beaucoup je préfère prendre le temps de le créer manuellement par séquence en vérifiant au fur et à mesure. Quand je dis “beaucoup” c’est parfois plus de 70 pour certains clients.

    Par ailleurs Acrobat ne sait que numéroter les pages en 1, 2, 3, etc. sans permettre l’ajout d’un ou plusieurs zéro directeur (01, 02, 03 ou 001, 002, 003, etc) ce qui est pénalisant pour ce que j’en fait.

    en réponse à : Not Allowed – Script #74729
    Merlin
    Maître des clés

    Par ailleurs j’ai appris récemment par Thom Parker que le logiciel PDF XChange, utilisé notamment par Michel, implémente le “JavaScript Dialog object”, ce qui devrait être plus pratique que Acrobat pour créer ce genre de boite de dialogue.

    Voir : https://community.adobe.com/t5/acrobat-discussions/copying-bookmarks-from-one-pdf-to-another/m-p/12788954#M353166

    en réponse à : Not Allowed – Script #74727
    Merlin
    Maître des clés

    Waouh, beau boulot !

    Si ça t’intéresse, bebarth m’avait écrit un script qui “démasque” les modèles masqués en conservant leurs noms de modèle dans le panneau des pages, au lieu d’avoir page 1, page 2, etc.

    C’est très pratique quand il y en a beaucoup.

    Avec son autorisation (dont je doute pas) je pourrais te l’envoyer, ou le poster céans.

    en réponse à : Somme des radio boutons en mots #74723
    Merlin
    Maître des clés

    On ajoute autour du script existant une condition qui vérifie que tous les Groupes de boutons-radio soit cochés.

    Quand un bouton-radio ou une case à cocher n’est pas coché sa valeur est égale à “Off”.

    if (this.getField("Groupe 1").value != "Off" && this.getField("Groupe 2").value != "Off" && this.getField("Groupe 3").value != "Off" && this.getField("Groupe 4").value != "Off" && this.getField("Groupe 5").value != "Off" && this.getField("Groupe 6").value != "Off" && this.getField("Groupe 7").value != "Off") {
    // script
    }
    else {event.value="";}

    Ci-joint.

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Not Allowed – Script #74722
    Merlin
    Maître des clés

    Les pages modèles masquées n’augmentent pas vraiment le poids du PDF mais effectivement une page modèle visible est définitivement supprimée du document. (Acrobat Reader ne peut supprimer que des pages modèles, il ne peut pas supprimer de “vraies” pages).

    L’avantage de la page masquée quand elle est générée/dupliquée c’est que les données saisies dans les champs de formulaire sont en double : dans la page visible et dans la page masquée. Donc quand l’utilisateur change d’avis il peut retrouver les données déjà saisies quand il re-génère une page précédemment supprimée.

    Sauf si on utilise le paramètre “bRename” qui renomme les champs dans la (les) page(s) générée(s), ce qui est indispensable quand on génère plusieurs pages à partir du même modèle.

    en réponse à : Not Allowed – Script #74714
    Merlin
    Maître des clés

    PS à propos de la QuickBar : attention quand même car la documentation est farcie d’erreurs…

    en réponse à : Not Allowed – Script #74712
    Merlin
    Maître des clés

    On peut dupliquer une page template qu’elle soit masquée ou apparente, ça ne change rien. Il faut seulement que ladite page soit enregistrée comme template.

     

    La QuickBar, ou Table Quick Key :

    https://opensource.adobe.com/dc-acrobat-sdk-docs/library/jsapiref/index.html#table-quick-key

    Voir aussi la capture ci-dessous.

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Not Allowed – Script #74709
    Merlin
    Maître des clés

    Bonjour

     

    “createTemplate” et “removeTemplate” ne peuvent fonctionner que depuis la console ou depuis une action (batch), et que avec Acrobat Pro (ou Standard).

    Pour que ça fonctionne avec Reader il faudrait que le document ait des droits étendus (Extended Rights) mais pas ceux qu’on peut activer avec Acrobat Pro, il faut ceux d’un niveau supérieur qu’il faut acheter (cher) chez Adobe.

     

    L’astuce serait donc de créer les templates d’avance, utiliser la fonction “spawn” pour ajouter des pages et la fonction “deletePage” pour les supprimer.

    en réponse à : Caractères avec accents dans les menus #74704
    Merlin
    Maître des clés

    S’as pas vis l’Ardecho, n’as jamaï rein vis.

    en réponse à : Caractères avec accents dans les menus #74699
    Merlin
    Maître des clés

    D’ailleurs c’est bien la preuve qu’il y a de la vie sur Mars.

     

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Caractères avec accents dans les menus #74697
    Merlin
    Maître des clés

    Jean-Claude j’ai pensé à toi hier, je suis allé sur Mars (Ardèche, France) et je suis passé par le hameau de Montréal. Il y a un Montréal Haut et un Montréal Bas.

    Il y a d’ailleurs plusieurs Montréal en Ardèche et en France.

    😉

     

     

    Attachments:
    You must be logged in to view attached files.
    en réponse à : mailDoc et Share #74696
    Merlin
    Maître des clés

    Bonjour

    Tout dépend de ce qu’on appelle “signature”, en général c’est juste du texte placé à la fin du corps du message. Bien entendu si tu veux y mettre une image ça risque d’être compliqué…!

    Concernant la deuxième solution je n’ai pas d’info mais fait bien attention au contexte d’utilisation, car comme son nom le laisse supposer “app.execMenuItem” est complètement dépendant de l’item de menu. S’il n’existe plus ou s’il a changé de nom ça ne fonctionne pas, c’est donc dépendant de la version d’Acrobat et c’est donc imprévisible. D’autant qu’en ce moment avec la nouvelle interface ça change souvent.

    Sachant aussi que Acrobat Pro, Standard et Reader n’ont pas les mêmes menus.

     

    en réponse à : Caractères avec accents dans les menus #74693
    Merlin
    Maître des clés

    Salut

     

    La réponse c’est oui et non.

    Comme on peut le voir dans la capture jointe ça ne fonctionne qu’au premier niveau du menu (Compteur de caractères) mais pas dans les niveaux suivants.

    Comme bebarth je me suis souvent cassé la tête pour trouver des homonymes sans accents, et comme on le voit sur la capture, la mort dans l’âme j’ai du mettre “A propos…” sans l’accent sur le À.

    C’est un bug que j’ai signalé plusieurs fois à Adobe (et je ne suis pas le seul car dans certaines langues c’est encore plus pénalisant) depuis plus de 15 ans mais à l’évidence ils n’en ont rien à faire.

    🙁

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Sinus pour baïonnette #74679
    Merlin
    Maître des clés

    Je crois qu’il va falloir attendre que bebarth rentre de vacances, je suis trop nul en math pour pouvoir t’aider.

    en réponse à : PDF Formulaire-calcul #74677
    Merlin
    Maître des clés

    Bonjour

     

    Le script de calcul n’est pas compliqué à faire mais pour ça il est nécessaire que la colonne “Coef” soit constituée de champs de formulaire car JavaScript ne peut pas aller chercher des données dans le fond de page (layout).

    Chaque champ “Coef” doit contenir le coefficient en “valeur par défaut”, et tous les champs “Coef” doivent être nommés et numérotés de façon logique et séquentielle, comme les listes déroulantes.

    Il est aussi nécessaire que la numérotation des champs Coef corresponde à celle des listes en fonction des rangées : “coef1” à coté de “Liste déroulante1”, “coef2” à coté de “Liste déroulante2”, etc.

    Je te laisse faire ça et poster ton PDF pour que je puisse ensuite écrire le script.

     

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Sinus pour baïonnette #74663
    Merlin
    Maître des clés

    Bonjour

     

    Mes compétences en math se limitent aux 4 opérations de base, donc je ne peux pas t’aider.

    Par-contre tu devrais activer la Console et le debug car dans ton document il y a un des calculs qui utilise un champ qui n’existe pas :

    TypeError: getField(...) is null
    1:Field:Calculate

    en réponse à : Findchangebylist espace dernier paragraphe #74662
    Merlin
    Maître des clés

    Bonjour

     

    J’avais complètement raté ce message mais la réponse est non : je n’arrive pas à reproduire ce problème.

     

    en réponse à : Script de validation de formulaire #74657
    Merlin
    Maître des clés

    Dans ce cas, comme pour les contours, il faut gérer ça avec JavaScript en ajoutant ce script en action “Champ désactivé” (onBlur) :

    if (event.target.value == event.target.defaultValue) {event.target.fillColor = color.ltGray;}
    else {event.target.fillColor = color.transparent;}

    Tu peux bien entendu changer les couleurs de cet exemple, voir : https://opensource.adobe.com/dc-acrobat-sdk-docs/library/jsapiref/JS_API_AcroJS.html#color-arrays

    Fichier joint.

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Script de validation de formulaire #74649
    Merlin
    Maître des clés

    C’est certainement parce que la surbrillance est activée, ajoute cette ligne dans le script de document pour la désactiver :

    app.runtimeHighlight = false;

     

    Ou bien dans les Préférences (voir capture).

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Script de validation de formulaire #74647
    Merlin
    Maître des clés

    C’est déjà le cas, dans le fichier que j’ai posté les champs obligatoires non remplis sont signalés par un contour rouge quand on clique sur le bouton.

    Et ce contour rouge disparaît quand on clique sur les champs, donc on ne peut pas en oublier.

     

    Ça fonctionne à l’identique dans le fichier que tu as posté car c’est le même, sauf que les champs n’ont pas été cliqués et ont gardés leur contour rouge.

    en réponse à : Impression PDF #74646
    Merlin
    Maître des clés

    Bonjour

     

    Pour qu’on puisse t’aider il faudrait connaitre les dimensions du document, les dimensions du papier sur lequel il doit être imprimé, et surtout le logiciel utilisé pour l’imprimer.

    Le plus simple serait bien entendu de partager le document dans ce forum, en pièce jointe ou via un lien.

    en réponse à : Créer un lien vers une base de donnés en ligne #74639
    Merlin
    Maître des clés

    Dans le temps c’était possible et simple via ADBC, qui n’est plus supporté depuis Acrobat 9.

    Il me semble (à vérifier, la mémoire est faible) que c’est toujours possible aujourd’hui mais il y a tellement de contrainte de sécurité que ça ne peux fonctionner que dans un environnement fermé et maîtrisé.

    Il faudrait demander à Thom Parker, ou chercher sur son site, si quelqu’un connaît la réponse c’est lui.

    en réponse à : Générateur liste déroulantes #74593
    Merlin
    Maître des clés

    Fait attention au fait que déclarer une variable en commençant par “var = ” signifie que c’est une variable locale, uniquement accessible dans la boucle ou dans la fonction dans laquelle elle a été créée.

    Contrairement à la déclaration sans “var = ” qui en fait une variable globale.

    en réponse à : Générateur liste déroulantes #74588
    Merlin
    Maître des clés

    Chapeau !

     

    Merlin
    Maître des clés

    Bonjour

     

    Acrobat, Foxit et quelques autre savent faire la reconnaissance de caractères dans les images, mais pas leur traduction.

    Il faudrait chercher du côté des traducteurs automatiques.

    en réponse à : Multiliste déroulante #74562
    Merlin
    Maître des clés

    Est-ce que ce document est seulement pour toi ou doit-il être diffusé après d’autres utilisateurs ?

    En clair est-ce qu’il devra fonctionner seulement avec Acrobat Pro ou aussi avec Acrobat Reader ?

    Dans le deuxième cas il faudra changer de script car modeles.hidden ne fonctionne pas avec Acrobat Reader.

    en réponse à : Multiliste déroulante #74553
    Merlin
    Maître des clés

    Mon vieil Acrobat 9 ne parle plus Français car il a perdu le réglage dans ses Préférences, mais ça se trouve au même endroit dans les menus : “Modèles de pages” en VF.

    Ensuite il faut cliquer sur l’icône œil pour afficher/masquer la page correspondante.

     

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Assistant d’actions pour remplir en javascript #74552
    Merlin
    Maître des clés

    Oui, surtout pas de retour de ligne ni aucun séparateur, juste la chaine de caractères.

    en réponse à : Assistant d’actions pour remplir en javascript #74547
    Merlin
    Maître des clés

    je n’arrive pas à faire fonctionner la fonction add.script. Cela me met une erreur de ) à la ligne 1 à chaque tentative

    Le premier point-virgule est peut-être de trop, essayez comme ça :

    this.addScript("init", "app.beep(0)");

    en réponse à : Multiliste déroulante #74536
    Merlin
    Maître des clés

    As tu transformé la deuxième page en “template”, ou “page modèle” ?

    en réponse à : Action si champ existe #74531
    Merlin
    Maître des clés

    Bonjour

    var nomChamp = this.getField("Question."+nextQuest);
    if (nomChamp != null) {nomChamp.display = display.noPrint;}

Affichage de 99 réponses de 1 à 99 (sur un total de 10,236)