Donnez vie à vos documents numériques !
 

bebarth

Toutes mes réponses sur les forums

Affichage de 99 réponses de 595 à 693 (sur un total de 3,258)
  • Auteur
    Réponses
  • en réponse à : Permutation de contenu de champs #70987
    bebarth
    Maître des clés

    bonjour,
    Voici quelques réponses :

    nbPlaces=17; // Nombre de places
    posEleve=new Array(nbPlaces+1); // Définition d'une table à 18 éléments (de 0 à 17)
    function noPlace() {
    // S'il n'y a qu'une seule ligne pour une boucle "for" ou une condition "if else"
    // il n'y a pas besoin d'accolades qui définissent l'ensemble des lignes à exécuter
    for (var i=1; i<=nbPlaces; i++) posEleve=[this.getField("El."+i).value,this.getField("place."+i).value];
    // posEleve=[this.getField("El."+i).value,this.getField("place."+i).value];
    // L'élément i de la table posEleve est une table [] de 2 éléments et la virgule indique la séparation des éléments
    }
    noPlace();
    // Fonction "placement" selon 2 paramètres "ind" -> indice et "pos" -> position
    function placement(ind,pos) {
    // Boucle pour vérifier toutes les positions
    for (var i=1; i<=nbPlaces; i++) {
    // So la position indiquée est identique à la position dans la table posEleve
    // mais que l'indice du champs est différent de l'indice de la table posEleve
    if (pos==posEleve[1] && ind!=i) {
    // Message d'alerte
    app.alert(posEleve[ind][0]+" et "+posEleve[0]+" ont le même numéro de place : "+posEleve[1],3);
    break;
    } else if (ind==i) {
    posEleve[ind][1]=pos;
    }
    }
    }

    Les tables et les boucles permettent de réduire beaucoup les lignes de scripts.
    Les expressions régulières sont assez compliquées à comprendre, mais sont très efficaces !

    @+
    😎

    bebarth
    Maître des clés

    bonjour,
    Ça devrait ressembler à une adaptation de la fonction “placement” de ce fichier :
    https://www.abracadabrapdf.net/wp-content/uploads/2022/04/script_simplifie_BB.pdf

    @+

    en réponse à : Permutation de contenu de champs #70976
    bebarth
    Maître des clés

    bonjour,
    S’il n’est pas permis d’entrer un numéro <1 et >17, ce n’est plus la peine de vérifier ce numéro !
    Je te propose donc un script de touches personnalisé avec une expression régulière. Les plus curieux essayeront de comprendre, et peuvent demander s’ils ne comprennent pas.
    Voici une version de ton fichier avec quelques modifications de scripts.

    @+
    😎

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Permutation de contenu de champs #70958
    bebarth
    Maître des clés

    bonjour,
    Il suffit de permuter également l’action sur champ.
    https://opensource.adobe.com/dc-acrobat-sdk-docs/acrobatsdk/html2015/index.html#t=Acro12_MasterBook%2FJS_API_AcroJS%2FField_methods.htm%23TOC_setAction2bc-17&rhtocid=_6_1_8_31_2_16

    Attention : on ne peut pas lire les actions des champs (avec un “get” par exemple) mais uniquement les écrire avec la méthode setAction. Mais lorsqu’on connait l’action qu’on veut définir, c’est tout à fait faisable !

    @+
    😎

    en réponse à : Permutation de contenu de champs #70954
    bebarth
    Maître des clés

    bonjour,
    Je ne comprends pas pourquoi déplacer la position des champs plutôt que permuter les valeurs !

    @+
    😎

    en réponse à : Permutation de contenu de champs #70947
    bebarth
    Maître des clés

    bonsoir,
    Voilà pour la permutation.
    function permutation(x,y) {
    var lesChamps=["eleve","observations"];
    for (var i=0; i<lesChamps.length; i++) {
    var temp=this.getField(lesChamps+"."+x).value;
    this.getField(lesChamps+"."+x).value=this.getField(lesChamps+"."+y).value;
    this.getField(lesChamps+"."+y).value=temp;
    }
    }
    permutation(this.getField("place1").value,this.getField("place2").value);

    @+
    😎

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Remplacer la virgule par un saut de ligne #70943
    bebarth
    Maître des clés

    bonjour,
    Tu peux écrire :
    var liste=[];
    for (var i=1; i<=16; i++) liste.push(this.getField("eleve."+i).value);
    liste.sort();
    this.getField("liste00").value=liste.toString().replace(/,/g,"\r");
    Attention, avec la fonction “.sort()”, tu tries selon l’ordre des caractères acsii.
    Si tu tries des nombres, il faut utiliser la fonction “.sort(function(a, b){return a-b})” si tu veux obtenir un ordre croissant.

    @+
    😎

    bebarth
    Maître des clés

    bonjour,

    \((\d)\)|\((\d\d)\)|\((\d\d\d)\)

    En simplifié, l’expression s’écrit : /\(\d+\)/

    @+
    😎

    bebarth
    Maître des clés

    Merlin est LE spécialiste en GREP !
    As-tu regardé cette page ?
    https://helpx.adobe.com/fr/indesign/using/find-change.html#search_using_grep_expressions

    @+
    😎

    bebarth
    Maître des clés

    bonjour,
    Que veux-tu dire par “…en exposant dans du texte courant…” ?
    Est-ce un texte dans une page Acrobat ou dans un champ ? Si c’est dans un champ, veux-tu le faire manuellement ou par un script ?

    @+
    😎

    en réponse à : Calcul avec exposant #70927
    bebarth
    Maître des clés

    bonjour,

    pourrais tu me dire ou je peux me renseigner pour que je puisse améliorer mon document et moi même ??

    ici :
    https://www.abracadabrapdf.net/category/le-pdf-parfait/
    et ici aussi :
    https://www.abracadabrapdf.net/category/ressources-et-tutos/js-et-formulaires-ressources/

    @+
    😎

    en réponse à : Calcul avec exposant #70924
    bebarth
    Maître des clés

    Pour le champ DTF il faut écrire :
    event.value=Math.pow(this.getField("DTM").value, 1.3);

    Pour le champ Text1 il faut écrire :
    event.value=this.getField("DTF").value*this.getField("PDT50Row1").value;

    @+
    😎

    en réponse à : Calcul avec exposant #70921
    bebarth
    Maître des clés

    …et où doit se faire le calcul et quels champs pour dtm et prad doivent-ils être utilisés ?

    @+
    😎

    en réponse à : Calcul avec exposant #70919
    bebarth
    Maître des clés

    Peux-tu partager ton fichier ou juste les champs nécessaires !

    @+
    😎

    en réponse à : Calcul avec exposant #70917
    bebarth
    Maître des clés

    bonjour,
    Certainement parce dans un calcul JavaScript c’est le point qui est le séparateur décimal. Il faut donc écrire 1.3 et non 1,3.
    Cela devrait donner : Math.pow(dtm, 1.3*prad);

    @+
    😎

    en réponse à : Calcul fiche de frais #70901
    bebarth
    Maître des clés

    bonjour,
    Voici pour additionner plusieurs champs, ici 6.

    @+
    😎

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Calcul fiche de frais #70895
    bebarth
    Maître des clés

    Je te laisse étudier les 2 scripts.
    N’hésite pas à demander si tu ne comprends pas quelque chose !

    @+
    😎

    en réponse à : Calcul fiche de frais #70891
    bebarth
    Maître des clés

    bonjour,
    Voilà pour ce que tu veux faire !
    Tu peux utiliser conjointement le point ou la virgule comme séparateur décimal.

    @+
    😎

    PS : Je n’avais pas remarqué que tu avais partagé un fichier…

    • Cette réponse a été modifiée le il y a 2 années et 8 mois par bebarth.
    Attachments:
    You must be logged in to view attached files.
    en réponse à : Mise en forme de saisie formulaire #70885
    bebarth
    Maître des clés

    bonjour,
    Tu écris :
    event.value=Number(event.value).toFixed(4)+" g/m²";
    Mais ça ne fonctionne uniquement si le signe décimal est un point !

    @+
    😎

    en réponse à : Problème icone et champ image #70878
    bebarth
    Maître des clés

    bonjour,

    à remplacer par :
    this.getField(this.getNthFieldName(i)).buttonSetIcon.hidden(event.target.buttonGetIcon());
    à voir

    C’est tout vu et ça ne peut pas fonctionner ! “buttonSetIcon.hidden()” n’est pas une fonction.

    @+
    😎

    en réponse à : Liste déroulante qui masque ou affiche un champ #70873
    bebarth
    Maître des clés

    bonjour,
    Voir la note pour info :
    https://opensource.adobe.com/dc-acrobat-sdk-docs/acrobatsdk/html2015/index.html#t=Acro12_MasterBook%2FJS_API_AcroJS%2FField_properties.htm

    Note: This property has been superseded by the display property and its use is discouraged.
    Ou en français :
    Note : Cette propriété a été remplacée par la propriété display et son utilisation est déconseillée.

    @+
    😎

    en réponse à : Calcul Date + Heure = date de fin du test #70854
    bebarth
    Maître des clés

    bonjour,
    …et donc tout fonctionne correctement ?

    @+
    😎

    en réponse à : Calcul Date + Heure = date de fin du test #70849
    bebarth
    Maître des clés

    Il se trouve en script de touches personnalisé du champ “Zone combo0”.
    Le calcul ne se fait qu’a la sélection de l’élément du menu déroulant plutôt qu’a chaque action si on le mettait en script de calcul d’un autre champ.

    @+
    😎

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Calcul Date + Heure = date de fin du test #70846
    bebarth
    Maître des clés

    Super merci beaucoup pour votre aide Merci pour votre aide

    …du coup ça fonctionne !!! Un vrai coup de bol…🤓

    @+
    😎

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Calcul Date + Heure = date de fin du test #70839
    bebarth
    Maître des clés

    bonjour,
    Voici pour une ligne, mais je suppose qu’il y aura plusieurs lignes identiques. Il faudrait donc prévoir de mettre ce script en fonction, mais il faudrait revoir la dénomination des champs pour plus de simplicité…

    @+
    😎

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Liaison entre cases à cocher et listes déroulantes #70837
    bebarth
    Maître des clés

    bonjour,
    Voici pour toi !
    Ce sera jeudi prochain pour d’éventuelles modifications…

    @+
    😎

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Liaison entre cases à cocher et listes déroulantes #70832
    bebarth
    Maître des clés

    bonjour,
    J’essaye demain… sinon ce ne sera pas avant jeudi prochain !

    @+
    😎

    en réponse à : Liaison entre cases à cocher et listes déroulantes #70822
    bebarth
    Maître des clés
    bonjour,
    Tout est possible !

    lorsque rien n’est écrit ou coché : pas de message (rien à l’ouverture du fichier) les 2 champs texte sont obligatoires et au minimum 2 cases doivent être cochées donc dès qu’au moins 1 champ est rempli ou 1 case est cochée, afficher : “Le document n’est pas complété entièrement” qui disparait une fois que la condition précédente est respectée

    Il faut combiné l’ancien script (que j’ai supprimé ici car il provoquait une erreur) avec celui-ci !

    D’ailleurs j’ai cherché où est enregistrée la phrase du message actuel (”Vous devez sélectionner au moins 2 choix”), j’ai regardé dans tous les scripts mais je n’ai rien vu.

    Ce texte n’est pas en script mais écrit dans le champ qui est visible ou caché.

    @+
    😎

    bebarth
    Maître des clés

    Est-ce qu’il y a moyen de déceler l’endroit où il y en aurait un ?

    Outil “JavaScript” puis “Tous les scripts JavaScript”, mais là on voit qu’il n’y en a pas !!!

    @+
    😎

    Attachments:
    You must be logged in to view attached files.
    bebarth
    Maître des clés

    bonjour,
    Je ne vois pas de JavaScript dans ton document alors qu’il y a une erreur dans la console…

    La Console JavaScript d’Acrobat


    Je pense qu’il faut donc revoir la dénomination des champs (2- Les règles d’or) :

    Notation simplifiée : astuces


    et l’ordre de calcul dans l’outil “Préparer le formulaire” (cf. copie d’écran).

    @+
    😎

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Liaison entre cases à cocher et listes déroulantes #70806
    bebarth
    Maître des clés

    …comme ceci, par exemple !

    @+
    😎

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Liaison entre cases à cocher et listes déroulantes #70805
    bebarth
    Maître des clés

    bonjour,
    Ne serait-il pas plus simple d’indiquer l’ordre de préférence dans un champ texte (plutôt que dans un menu déroulant) directement dans l’ordre où l’on coche les cases ? Il n’y aurait plus besoin de menus déroulants !!!

    @+
    😎

    en réponse à : Case à cocher obligatoire #70793
    bebarth
    Maître des clés

    Bienvenue ! 😎

    en réponse à : Items sur plusieurs lignes dans un menu déroulant #70792
    bebarth
    Maître des clés

    👍
    Je ne savais pas (et je n’avais jamais essayé) !!!

    @+
    😎

    en réponse à : Items sur plusieurs lignes dans un menu déroulant #70788
    bebarth
    Maître des clés

    bonjour,
    Non ce n’est pas possible !
    Par contre, si ton texte ne s’affiche pas entièrement une info-bulle apparait avec le texte entier.

    @+
    😎

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Case à cocher obligatoire #70778
    bebarth
    Maître des clés

    bonjour,
    Voici ton fichier fonctionnel !

    @+
    😎

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Mon Msg Box ne marche pas #70747
    bebarth
    Maître des clés

    bonjour,
    Essaye comme ça :

    var cMessAlert="OK pour continuer ?" ;
    var cAlertTitre="TITRE DE L’ALERTE";
    // si oui
    if (app.alert({cMsg: cMessAlert, cTitle: cAlertTitre, nIcon: 2, nType: 2}) == 4) {
    // script à exécuter
    this.resetForm();
    for (var i=0; i<this.numFields; i++) {
    if (this.getNthFieldName(i).indexOf(" foto_af_image ")>-1) this.getField(this.getNthFieldName(i)).buttonSetIcon(event.target.buttonGetIcon());
    }
    }

    @+
    😎

    en réponse à : Effacer une page #70744
    bebarth
    Maître des clés

    Donc c’est possible avec Acrobat Reader ! Avec les autres readers je ne sais pas…

    @+
    😎

    en réponse à : Effacer une page #70742
    bebarth
    Maître des clés

    bonjour,
    Oui, il faut que la page que tu veux supprimer soit une page “Modèle” !

    @+
    😎

    en réponse à : Case à cocher obligatoire #70734
    bebarth
    Maître des clés

    bonjour,
    On ne pourra pas empêcher l’utilisateur d’enregistrer le fichier via le menu d’Acrobat, par contre il est possible d’afficher un message d’alerte indiquant que certaines cases ne sont pas cochées ou certains champs ne sont pas remplis.

    @+
    😎

    en réponse à : Effacer une page #70732
    bebarth
    Maître des clés

    Donc tu places :

    this.deletePages(1);

    En script d’action souris relâchée du bouton de la page 1.

    @+
    😎

    en réponse à : Grandeur en cm seulement #70730
    bebarth
    Maître des clés

    bonjour,
    Il faudrait écrire
    if (this.getField("Height").value == "") this.getField("Height").value = (((this.getField("Feet").value * 12) + (this.getField("Inches").value)) * 2.54);

    ou

    if (event.value == "") event.value = (this.getField("Feet").value * 12 + this.getField("Inches").value) * 2.54;

    Mais le fait que la valeur en pieds et pouces soit indiquée par 2 champs différents ne permet pas que ça fonctionne !!!  Lorsqu’on valide un des deux champs la condition n’est plus vraie…

    @+
    😎

    en réponse à : Effacer une page #70729
    bebarth
    Maître des clés

    Ce n’est pas effacer la page 2 alors !
    Dans ce cas, c’est :
    this.deletePages(1);

    Mais le bouton ne peut pas être sur la page à supprimer.

    @+
    😎

    en réponse à : Effacer une page #70727
    bebarth
    Maître des clés

    bonjour,
    Voici un script pour effacer les champs de la page 2 (==1 basé sur 0):

    for (var i=0; i<this.numFields; i++) {
    var f=this.getField(this.getNthFieldName(i));
    if (typeof f.page!="object") {
    if (f.page==1) this.resetForm([this.getNthFieldName(i)]);
    } else {
    for (var p=0; p<f.page.length; p++) {
    if (f.page[p]==1) this.resetForm([this.getNthFieldName(i)]);
    }
    }
    }

    @+
    😎

    en réponse à : Prénom composé #70707
    bebarth
    Maître des clés

    bonjour,
    Le sujet a déjà été traité, (https://www.abracadabrapdf.net/forums/topic/majuscule-automatique-dans-le-champ-prenoms-et-dans-le-script-de-sauvegarde/) mais je te reposte le fichier car il n’est plus disponible sur la nouvelle version du forum.

    Tu me dis si ça te convient.

    @+
    😎

    Attachments:
    You must be logged in to view attached files.
    bebarth
    Maître des clés

    J’espère que ce coup ci est le bon !

    @+
    😎

    Attachments:
    You must be logged in to view attached files.
    bebarth
    Maître des clés

    OK !

    oui c’est faisable, je fait ça plus tard…

    bebarth
    Maître des clés

    Et ce n’est pas ce que fait le fichier que j’ai posté ?

    Qu’ai-je oublié ?

    @+
    😎

    bebarth
    Maître des clés

    Désolé de ne pas comprendre !
    Merci de préciser la procédure.

    1. On indique une date dans le champ “StartDate”.
    2. Le champ “DateLimite” indique la date “StartDate” plus 5 jours. Ce champ devient-il bloqué (impossible à changer) ou modifiable uniquement avec une date postérieure à celle du champ “StartDate”?
    3. Le champ “DateLivraison” indique la même date que “StartDate”. Ce champ devient-il bloqué (impossible à changer) ou modifiable uniquement avec une date postérieure à celle du champ “StartDate”?

    D’autres indications ?

    @+
    😎

    bebarth
    Maître des clés

    bonjour,
    Que signifie « bloquée » ?
    Ici il est impossible de modifier les champs avec une date antérieure !!! Sauf StartDate…

    @+
    😎

    bebarth
    Maître des clés

    bonsoir,
    Voici ma proposition !
    Les calculs ne sont plus en script du champ “StartDate” mais en script de calcul des autres champs et on utilise :
    if (event.source && event.source.name=="StartDate")

    pour dire que le calcul ne se s’effectue que s’il provient du champ “StartDate”, ce qui permet de changer manuellement la valeur des champs.
    Par contre, ici, si on modifie la date de commande, les 2 autres dates sont réinitialisée. C’est correct ?

    @+
    😎

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Ajouter une lettre #70681
    bebarth
    Maître des clés

    bonjour,
    ben ça devrait être :
    if (i==0 && element== "un" && suivant.endsWith("s")) laTable[i+1]=suivant.substring(0, suivant.length-2)+"l";

    @+
    😎

    en réponse à : PDF interactif type bon de commande #70679
    bebarth
    Maître des clés

    bonjour,

    L’idéal serait que dans le document InDesign tu puisses convertir les intitulés en autant de champs de textes indépendants.

    Et si l’étape suivante est d’avoir le total automatique, il faudrait également convertir les prix en champs pour faciliter le travail.

    @+
    😎

    en réponse à : PDF interactif type bon de commande #70669
    bebarth
    Maître des clés

    bonjour,
    Je pense qu’il faudrait revoir la dénomination des cases à cocher et des valeurs d’exportation.
    On ne choisit pas de quantité ?
    Pour les raisins sec, comment choisit-on x1 ou x2 ???
    Il y a également une ligne à 20 € sans désignation !

    @+
    😎

    en réponse à : Valeur montant champ en lettres #70656
    bebarth
    Maître des clés

    bonjour,
    J’étais persuadé qu’en Suisse et en Belgique 80 se prononçait “nonante” mais ce n’ai apparemment pas vrai !

    J’ai adapté le script pour la Suisse et la Belgique. Tu fais quelques essais et tu me dis !!!

    @+
    😎

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Lettre qui change en fonction d’une zone de liste #70650
    bebarth
    Maître des clés

    if (event.value!="") event.value=this.getField("Dropdown1").value+event.value;

    Si (le champ n’est pas vide) alors la valeur du champ = la valeur du champ “Dropdown1” + la valeur du champ;

    avec : la valeur du champ “Dropdown1” = “F-” ou “D-“.

    @+
    😎

    en réponse à : Lettre qui change en fonction d’une zone de liste #70647
    bebarth
    Maître des clés

    bonjour,
    Voilà ! Le script est en script de format personnalisé ce qui signifie qu’il faut d’abord choisir si c’est un devis ou une facture…

    @+
    😎

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Valeur montant champ en lettres #70643
    bebarth
    Maître des clés

    bonjour,
    le sujet a déjà été traité :

    Conversion nombre en lettres


    Mais comme c’était sur l’ancien forum et que les fichiers partagés ne le sont plus, je te joins la dernière version du fichier.

    @+
    😎

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Ajouter le symbole M² dans la colonne d’un formulaire #70639
    bebarth
    Maître des clés

    👍
    Exact !!!

    @+
    😎

    en réponse à : Création script avec plusieurs calculs différents #70635
    bebarth
    Maître des clés

    bonjour,
    Voici une variante du script de Merlin car rien ne s’affichait dans le champ texte2 si aucune case n’était cochée.

    À moins que je n’aie pas bien compris !!! Mais dans ce cas là il faudrait peut-être une case cochée par défaut…

    @+
    😎

    • Cette réponse a été modifiée le il y a 2 années et 9 mois par bebarth.
    Attachments:
    You must be logged in to view attached files.
    en réponse à : Ajouter le symbole M² dans la colonne d’un formulaire #70634
    bebarth
    Maître des clés

    bonjour,
    Bien sûr et c’est même le plus simple. Moi je suis resté dans le principe d’utilisation de “String.fromCharCode”.

    @+
    😎

    en réponse à : Création script avec plusieurs calculs différents #70628
    bebarth
    Maître des clés

    bonjour,
    Que sont les cases A et B ? Des cases à cocher ou des boutons radios ? Je suppose qu’on ne peut pas avoir A et B cochés, mais y a-t-il forcément une des 2 cases ?

    T’est-il possible de partager un fichier ?

    @+
    😎

    en réponse à : Ajouter le symbole M² dans la colonne d’un formulaire #70623
    bebarth
    Maître des clés

    Le + situé avant le second event.value est certainement une erreur de frappe.

    Juste pour dire que lorsqu’on ajoute quelque chose à une variable on est pas obligé de répéter cette variable.

    Si on a une variable x et qu’on veut rajouter 2, on n’a pas besoin d’écrire var x=x+2 on peut simplement écrire x+=2. Avec des nombres ça marche pour toutes les opérations : +, -, *, /

    Et ici, au lieu d’écrire event.value=event.value+….. on peut plus simplement écrire event.value+=…..

    Du coup, on pourrait même écrire :
    event.value+=" M"+String.fromCharCode(0x00B2);

    @+
    😎

    • Cette réponse a été modifiée le il y a 2 années et 9 mois par bebarth.
    en réponse à : Ajouter le symbole M² dans la colonne d’un formulaire #70620
    bebarth
    Maître des clés

    bonjour,
    Ou un tout petit peu plus court :
    event.value+=" "+String.fromCharCode(0x004D,0x00B2);

    @+
    😎

    en réponse à : Ajouter le symbole M² dans la colonne d’un formulaire #70613
    bebarth
    Maître des clés

    bonjour,
    Je te propose de regarder et étudier ce fichier de Thom Parker.

    @+
    😎

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Griser un label #70604
    bebarth
    Maître des clés

    bonjour,
    Un peu tard, mais voici quand même ma version.

    @+
    😎

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Script pour compter les champs restants à remplir #70588
    bebarth
    Maître des clés

    bonjour,
    Voici une nouvelle proposition.

    @+
    😎

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Addicionner des champs texte #70582
    bebarth
    Maître des clés

    bonjour,
    Oui, tu peux écrire :
    event.value=this.getField("champ-nom").value+" "+this.getField("champ-adresse").value+" "+this.getField("champ-telephone").value

    Ce qui te mettra tout sur la même ligne.
    Si tu veux des retours lignes, tu écris :

    event.value=this.getField("champ-nom").value+"\r"+this.getField("champ-adresse").value+"\r"+this.getField("champ-telephone").value

    @+
    😎

    en réponse à : Executer un code javascript juste avant la sauvegarde #70579
    bebarth
    Maître des clés

    bonjour,
    Effectivement, avec l’outil JavaScript d’Acrobat il y a la possibilité d’associer des scripts à des actions du document lorsque :

    • Le document sera fermé
    • Le document sera enregistré
    • Le document a été enregistré
    • Le document sera imprimé
    • Le document a été enregistré

    @+
    😎

     

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Actions en fonction de la valeur d’un champ #70574
    bebarth
    Maître des clés

    bonjour,
    Tu peux écrire :
    if (event.value=="") {
    this.getField("CF23").display=display.hidden;
    } else if (event.value>1) {
    this.getField("CF21").display=display.visible;
    this.getField("CV7").display=display.visible;
    this.getField("Image1").display=display.visible;
    this.getField("CF23").display=display.hidden;
    } else {
    this.getField("CF21").display=display.hidden;
    this.getField("CV7").display=display.hidden;
    this.getField("Image1").display=display.hidden;
    this.getField("CF23").display=display.visible;
    }

    @+
    😎

    en réponse à : Actions en fonction de la valeur d’un champ #70571
    bebarth
    Maître des clés

    bonjour,
    En script de calcul personnalisé du champ CV6 :

    if (event.value>1) {
    this.getField("CF21").display=display.visible;
    this.getField("CV7").display=display.visible;
    this.getField("Image1").display=display.visible;
    this.getField("CF23").display=display.hidden;
    } else {
    this.getField("CF21").display=display.hidden;
    this.getField("CV7").display=display.hidden;
    this.getField("Image1").display=display.hidden;
    this.getField("CF23").display=display.visible;
    }

    @+
    😎

    en réponse à : Bouton effacer n´efface pas les images #70569
    bebarth
    Maître des clés

    bonjour,
    Tu peux réinitialiser tous les champs avec un script :
    this.resetForm();

    Et retirer les images avec celui-ci :
    for (var i=0; i<this.numFields; i++) {
    if (this.getNthFieldName(i).indexOf("af_image")>-1) this.getField(this.getNthFieldName(i)).buttonSetIcon(event.target.buttonGetIcon());
    }

    @+
    😎

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Calcul en 2 temps #70561
    bebarth
    Maître des clés

    bonjour,
    Regarde si l’ordre de calcul des champs est correct !

    @+
    😎

    en réponse à : Créer un bouton sauvegarder #70556
    bebarth
    Maître des clés

    Les champs sont mis en lecture seule avant que le CV soit enregistré.
    Si tu as une modification à apporter, tu peux décocher la case pour le champ.

    Si tu veux retirer la mise en lecture seule avant enregistrement, il faut retirer cette ligne du script :
    for (var i=0; i<this.numFields; i++) this.getField(this.getNthFieldName(i)).readonly=true;
    et du coup celle-ci aussi qui ne sert plus :
    for (var i=0; i<this.numFields; i++) this.getField(this.getNthFieldName(i)).readonly=false;

    @+
    😎

     

    Et puis je suis content
    Et puis vous êtes contents
    Et puis ils sont contents
    Alors je suis content
    Que tout le monde soit content

    Ange – Caricatures

    • Cette réponse a été modifiée le il y a 2 années et 10 mois par bebarth.
    en réponse à : Créer un bouton sauvegarder #70551
    bebarth
    Maître des clés

    au fait c´est quoi qui a changer par raport au cv interieur a part le code javascript ( dans le formulaire lui même ?

    Je n’avais pas fait attention que les boutons étaient vus à l’écran et masqué à l’impression et mon script les masque puis les ré-affiche en “visible”. J’ai donc rajouté 2 scripts “lorsque le fichier sera imprimé” et “lorsque le fichier a été imprimé”.
    J’aurai pu (et même dû) les mettre dans leur état d’origine directement via le script ! Mais il aurait fallu que j’étudie un peu plus précisément le formulaire original.

    Si tu préfères, tu me dis et je te retourne un nouveau fichier.

    Voici le fichier modifié, il n’y a plus de script d’action du document et les champs sont remis dans leur état d’origine via le script d’action du bouton.

    @+
    😎

    • Cette réponse a été modifiée le il y a 2 années et 10 mois par bebarth.
    Attachments:
    You must be logged in to view attached files.
    en réponse à : Créer un bouton sauvegarder #70544
    bebarth
    Maître des clés

    Essaye avec ces nouveaux fichiers !

    @+
    😎

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Créer un bouton sauvegarder #70540
    bebarth
    Maître des clés

    Voilà, tu places le fichier “Save_CV.js” dans le répertoire JavaScript d’Acrobat.
    Si tu ne sais pas où il se trouve, tu utilises l’utilitaire show_me_the_path

    Show_me_the_path

    Ensuite tu relances Acrobat et tu peux utiliser la nouvelle version de ton fichier.

    Tu me dis…

    @+
    😎

    en réponse à : Créer un bouton sauvegarder #70539
    bebarth
    Maître des clés

    OK, je te fais ça dans la soirée !

    @+
    😎

    en réponse à : Créer un bouton sauvegarder #70532
    bebarth
    Maître des clés

    bonjour,
    Jette un œil à cette page :

    Les différents niveaux d’utilisation des scripts JavaScript

    Pour pouvoir enregistrer à partir d’un bouton, il faut écrire un script dans un fichier .js qu’il faudra placer dans le répertoire JavaScript d’Acrobat.

    Si ça te convient, je pourrais partager un exemple ! Tu me dsi.

    @+
    😎

    • Cette réponse a été modifiée le il y a 2 années et 10 mois par bebarth.
    en réponse à : Valider une saisie par la touche entrée #70528
    bebarth
    Maître des clés

    bonjour,
    Je ne comprends pas pourquoi “if (event.commitKey == 13…” ???
    event.commitKey ne retourne pas le numéro de touche clavier (si j’ai bien compris le 13) mais une valeur entre 0 et 3 qui indique comment le champ a perdu son focus.

    Et petit rappel : Ça ne sert à rien d’écrire “this.event.value” puisque l’objet “event” ne s’applique qu’au document actif “this”. Il suffit donc d’écrire “event.value”, ce qui allège le script.

    @+
    😎

    en réponse à : Créer un bouton sauvegarder #70527
    bebarth
    Maître des clés

    bonjour,

    Ça ne sera possible qu’avec un script d’application comme indiqué dans ce post récent :

    Enregistrement automatique dans un dossier spécifique

    @+
    😎

    en réponse à : Codes postaux en liaison sur deux casses #70510
    bebarth
    Maître des clés

    bonjour,
    …et du coup, s’en est où ce sujet ???

    @+
    😎

    en réponse à : Enregistrement automatique dans un dossier spécifique #70509
    bebarth
    Maître des clés

    bonjour,
    C’est possible si le fichier est en pièce jointe du formulaire, comme cet exemple :
    https://www.abracadabrapdf.net/wp-content/uploads/2022/01/Ejemplo_BB1-archivo-csv.pdf
    donné dans ce post :

    Codes postaux en liaison sur deux casses

    @+
    😎

    en réponse à : affichage ligne suivante. #70499
    bebarth
    Maître des clés

    bonjour,
    /^\d?$/ ici peut être écrit /\d?/ car on ne cherche qu’un seul chiffre
    / : Ouverture de l’expression régulière
    ^ : Depuis le début de la chaine de caractères (ici non nécessaire vu qu’il ne peut y avoir qu’un seul chiffre
    \d : Correspond à un chiffre dans la chaine de caractères
    ? : 0 ou 1 occurrence du  caractère précédent (ici \d)
    $ : Jusqu’à la fin de la chaine de caractères (ici non nécessaire vu qu’il ne peut y avoir qu’un seul chiffre
    / : Fermeture de l’expression régulière
    Sources : https://www.w3schools.com/jsref/jsref_obj_regexp.asp
    ou : https://developer.mozilla.org/fr/docs/Web/JavaScript/Guide/Regular_Expressions

    Par contre je ne saisis pas le .splice

    https://www.w3schools.com/jsref/jsref_splice.asp
    https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Global_Objects/Array/splice

    J’ai essayé de commenter le script de document le plus explicitement possible… cf. nouveau fichier

    @+
    😎

    Fichier mis à jour le 24/01/22

    • Cette réponse a été modifiée le il y a 2 années et 10 mois par bebarth.
    Attachments:
    You must be logged in to view attached files.
    en réponse à : affichage ligne suivante. #70490
    bebarth
    Maître des clés

    Je viens d’intégrer la fonction format chiffre proposée par Merlin dans le fichier proposé par BB. Du coup seuls les chiffres peuvent être saisis

    Comme ça, tu exécutes mon script avant celui de Merlin et ça ne fonctionne pas très bien ! Si tu tapes une lettre, elle ne sera effectivement pas affichée mais la ligne du dessous sera affichée.

    …et ma version pour ne taper qu’un chiffre par champ !

    @+
    😎

    Attachments:
    You must be logged in to view attached files.
    en réponse à : affichage ligne suivante. #70475
    bebarth
    Maître des clés

    bonjour,

    pour l’instant, je n’arriverai pas à faire ces modifs, il y a trop de choses que je ne maîtrise pas dans ce script et il me faut pas mal de temps pour le décrypter.

    Quitte à essayer de comprendre, autant le faire avec un document qui est fonctionnel !
    Voici donc un nouveau fichier où il n’y a plus de message d’erreur lors de l’exécution du script de la dernière ligne.
    Je l’ai également modifié un peu car il ne fonctionnait pas bien lorsqu’on effaçait les champs un à un.
    Si tu as besoin d’explications sur certaines lignes, tu demandes…

    En bonus, voici un fichier que j’ai fait pour moi afin d’écrire les textes pour les fonctions eval(), ce qui n’est pas toujours évident !
    C’est un fichier de travail qui n’était pas destiné à être distribué, il ne comporte donc pas d’alertes et les variables doivent être nommées avec attention…
    Merlin reconnaitra sans doute un de ses fichiers dont je me suis inspiré pour créer celui-ci.

    @+
    😎

    Attachments:
    You must be logged in to view attached files.
    en réponse à : affichage ligne suivante. #70464
    bebarth
    Maître des clés

    Il faut ajouter un try catch car on vas modifier la ligne n+1 et bien sûr il n’y en a pas pour la dernière ligne…

    @+
    😎

    en réponse à : affichage ligne suivante. #70461
    bebarth
    Maître des clés

    bonjour,
    Ci-joint ma proposition.

    2ème question : Mon script de document comporte 20 lignes pour la déclaration des variables. Est il possible de simplifier ça pour nommer toutes ces variables par « incrémentation » comme avec une boucle for ?

    Pour faire cela, il faut exécuter la fonction eval();

    for (var i=0; i<=19; i++) {
    eval("var ac"+i+" = this.getField(\"ac."+i+"\").value");
    }

    @+
    😎

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Enregistrement automatique dans un dossier spécifique #70448
    bebarth
    Maître des clés

    bonjour,
    Comme ça je ne vois pas !!! Ça fonctionne chez moi…
    Le chemin indiqué est-il correct et bien écrit (avec les doubles antislashs) ?

    Essaye de remplacer :

    try {
    Save_Rapport(NomDuFichier);
    } catch(e) {
    console.show();
    console.clear();
    app.alert("Le plugin n'a pas fonctionné !",1)
    }

    juste par :

    try {
    Save_Rapport(NomDuFichier);
    } catch(e) {
    console.show();
    console.clear();
    console.println("Erreur : "+e+"\n\n");
    for (var i in e) {console.println(i+" : "+e)};
    }

    Qu’est-il indiqué dans la console ?

    @+
    😎

    • Cette réponse a été modifiée le il y a 2 années et 10 mois par bebarth.
    bebarth
    Maître des clés

    Trop fort, si j’avais su… à l’époque ! 💪👏
    J’avais pas pensé aux textes enrichis.

    Mais je crois que ces paramètres ne sont pas accessibles via JavaScript. J’ai posé la question il n’y a pas très longtemps sur le forum Adobe.

    @+
    😎

    bebarth
    Maître des clés

    bonjour,
    Acrobat n’est pas un logiciel de mise en page… et il n’est pas possible de justifier les textes sur le bas d’un champ (simplement).

    Ayant personnellement déjà réalisé un générateur de cartes de visites avec Acrobat, c’est effectivement possible mais avec de la programmation !

    Par contre, il me semble étrange que chacun puisse créer sa propre carte de visite ! N’importe qui peut s’attribuer n’importe quel titre…

    @+
    😎

    en réponse à : Changer la couleur des textes lors de l’impression #70418
    bebarth
    Maître des clés

    Non, il faut écrire les script en “Actions du document”.
    Le premier dans “Le document sera imprimé” où tu supprimes ou mets en blanc les champs dont les valeurs sont égales aux valeurs par défaut (si tu supprimes il faut mémoriser ces valeurs).
    Le second dans “Le document a été imprimé” ou tu remets les champs à l’identique d’avant impression.

    @+
    😎

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Changer la couleur des textes lors de l’impression #70415
    bebarth
    Maître des clés

    bonjour,
    Il faut écrire un script d’action de document pour modifier les champs “lorsque le fichier sera imprimé” puis remettre les champs “lorsque le document a été imprimé”.

    @+
    😎

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Calcul de temps heures & minutes #70412
    bebarth
    Maître des clés

    bonjour,

    En extra, ou puis-je trouver l’information sur le fonctionnement et les options possibles avec le util.printf ?

    Ici :
    https://opensource.adobe.com/dc-acrobat-sdk-docs/acrobatsdk/html2015/index.html#t=Acro12_MasterBook%2FJS_API_AcroJS%2Futil_methods.htm%23TOC_printfbc-4&rhtocid=_6_1_8_78_0_3

    @+
    😎

    en réponse à : Script pour compter les champs restants à remplir #70405
    bebarth
    Maître des clés

    bonjour,
    Tu peux rajouter cette ligne en script de document :
    app.runtimeHighlight=false;
    Ça va te désactiver la couleur des champs.

    @+
    😎

    en réponse à : Enregistrement automatique dans un dossier spécifique #70400
    bebarth
    Maître des clés

    bonjour,
    Voici une nouvelle version où le chemin est indiqué dans le fichier .js.

    @+
    😎

    Attachments:
    You must be logged in to view attached files.
    en réponse à : concatenation chiffres pour créer nombres #70396
    bebarth
    Maître des clés

    bonjour,
    event.value="";
    for (var i=0; i<4; i++) event.value+=this.getField("N3."+i).value;

    @+
    😎

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Codes postaux en liaison sur deux casses #70395
    bebarth
    Maître des clés

    Pareil !

    en réponse à : Codes postaux en liaison sur deux casses #70383
    bebarth
    Maître des clés

    bonjour,
    Supprimer les doublons ville/code postal n’est pas très compliqué !

    Pour les noms ou codes postaux communs, on pourrait envisager une fenêtre pop-up où il ne resterait plus qu’à choisir le bon élément… (du moins essayer d’écrire le script). Ceci si on frappe les noms/codes postaux dans un champ texte.

    Vu le nombre de lignes du fichier .csv, il faut délimiter également la recherche pour diminuer les temps d’affichage notamment pour les dernières lignes.

    Il faut enfin créer un script pour modifier/ajouter/supprimer des données !
    Ça fait déjà un bon petit travail…
    J’ai déjà écris quelque chose comme ça.

    @+
    😎

    PS : Bizarre, ma réponse est bien la dernière mais n’est pas située après l’avant-dernière de Merlin !!!

    • Cette réponse a été modifiée le il y a 2 années et 11 mois par bebarth.
    Attachments:
    You must be logged in to view attached files.
Affichage de 99 réponses de 595 à 693 (sur un total de 3,258)