Donnez vie à vos documents numériques !
 

bebarth

Toutes mes réponses sur les forums

Affichage de 99 réponses de 397 à 495 (sur un total de 3,263)
  • Auteur
    Réponses
  • en réponse à : Remplacer valeur numérique en lettres #72572
    bebarth
    Maître des clés

    … de rien !
    Voici le lien pour le sujet original :

    Conversion nombre en lettres

    @+
    😎

    en réponse à : Formulaire PDF #72550
    bebarth
    Maître des clés

    Voici un exemple de ce qui pourrait se faire !

    @+
    😎

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Formulaire PDF #72543
    bebarth
    Maître des clés
    bonjour,

    « Et donc dans mes rêves les plus fous, le pop-up n’apparait plus une fois qu’on a ‘enregistré-sous’. » On devrait peut être pouvoir bidouiller quelque chose… Je vais réfléchir.

    En script d’actions du document “Le document sera enregistré” on peut supprimer l’alerte avec “this.removeScript”.

    … et utiliser “try… catch” pour éviter de futur erreurs lors des prochains enregistrements !

    @+
    😎

    • Cette réponse a été modifiée le il y a 1 année et 10 mois par bebarth.
    en réponse à : Mélanger des lettres #72539
    bebarth
    Maître des clés

    bonjour,
    J’arrive un peu après la bataille, mais pour inverser 2 variables a et b on peur utiliser :
    b=[a, a=b][0];
    D’où ma version (en français) :
    var leMot=this.getField("MelangeLettre").value;
    this.getField("MelangeLettre").value=melangerMot(leMot);
    function melangerMot(leMot) {
    var tableMot=leMot.split("");
    var tableMelangee=melangerTable(tableMot);
    return tableMelangee.join("");
    }
    function melangerTable(table) {
    for (var i=table.length-1; i>0; i--) {
    var j=Math.floor(Math.random()*(i + 1));
    table[j]=[table,table=table[j]][0];
    }
    return table;
    }

    @+
    😎

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Case texte grisée grâce à liste déroulante #72529
    bebarth
    Maître des clés

    bonjour,
    Pour programmer ton formulaire plus facilement, il va falloir au préalable revoir les noms des champs et les valeurs d’exportations des menus déroulants. Tu imagines bien que si dans les formules on a uniquement des valeurs du type ” Absence de RDV préalable – 2 appels infructueux, demande de RDV “, le script va vite devenir illisible… Des chaines de caractères de ce type ne doivent être que des valeurs attribuées à des champs.

    J’ai quand même fait l’exemple donné, mais Merlin à raison : pour établir une formule il faut une règle et non juste un ou des exemple :
    if (!event.willCommit) {
    if (event.changeEx==" Chantier non déclaré (CND)") {
    this.getField("N° Téléservice de la Dict").fillColor=color.gray;
    this.getField("N° Téléservice de la Dict").readonly=true;
    this.getField("Si absence de RDV").fillColor=color.gray;
    this.getField("Si absence de RDV").readonly=true;
    this.getField("si rdv non respecté").fillColor=color.gray;
    this.getField("si rdv non respecté").readonly=true;
    this.getField("si non respect des prescriptions").fillColor=color.gray;
    this.getField("si non respect des prescriptions").readonly=true;
    } else {
    this.getField("N° Téléservice de la Dict").fillColor=color.transparent;
    this.getField("N° Téléservice de la Dict").readonly=false;
    this.getField("Si absence de RDV").fillColor=color.transparent;
    this.getField("Si absence de RDV").readonly=false;
    this.getField("si rdv non respecté").fillColor=color.transparent;
    this.getField("si rdv non respecté").readonly=false;
    this.getField("si non respect des prescriptions").fillColor=color.transparent;
    this.getField("si non respect des prescriptions").readonly=false;
    }
    }
    Dans ton cas, s’il n’y a pas de règle bien définies, il faudra utiliser des “else if” pour chaque cas.
    if (!event.willCommit) {
    if (event.changeEx==" Chantier non déclaré (CND)") {
    this.getField("N° Téléservice de la Dict").fillColor=color.gray;
    this.getField("N° Téléservice de la Dict").readonly=true;
    this.getField("Si absence de RDV").fillColor=color.gray;
    this.getField("Si absence de RDV").readonly=true;
    this.getField("si rdv non respecté").fillColor=color.gray;
    this.getField("si rdv non respecté").readonly=true;
    this.getField("si non respect des prescriptions").fillColor=color.gray;
    this.getField("si non respect des prescriptions").readonly=true;
    } else if (event.changeEx==" Absence de RDV préalable - 2 appels infructueux, demande de RDV") {
    ...
    ...
    } else if (event.changeEx==" Non respect des prescriptions GRTgaz") {
    ...
    ...
    } else {
    this.getField("N° Téléservice de la Dict").fillColor=color.transparent;
    this.getField("N° Téléservice de la Dict").readonly=false;
    this.getField("Si absence de RDV").fillColor=color.transparent;
    this.getField("Si absence de RDV").readonly=false;
    this.getField("si rdv non respecté").fillColor=color.transparent;
    this.getField("si rdv non respecté").readonly=false;
    this.getField("si non respect des prescriptions").fillColor=color.transparent;
    this.getField("si non respect des prescriptions").readonly=false;
    }
    }

    Autre recommendation, pour les menus déroulants, pense à cocher la case “Valider la valeur sélectionnée immédiatement”.

    @+
    😎

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Case texte grisée grâce à liste déroulante #72523
    bebarth
    Maître des clés

    bonjour,
    Dans ton fichier Excel, je ne vois pas à voir quelles cellules sont grisées en fonction de quels éléments des menus déroulants !
    Pourrais-tu donner quelques exemples.

    mais si je met plusieur mot dans la liste d’élément dans la liste déroulante

    À première vue if suffirait d’ajouter des “ou” (||).

    @+
    😎

    en réponse à : Case texte grisée grâce à liste déroulante #72520
    bebarth
    Maître des clés

    bonjour,
    Il existe plusieurs façons de faire ça !
    En script de touches personnalisé du menu déroulant qui ne s’exécute que lors de la modification du menu :
    if (!event.willCommit) {
    if (event.changeEx=="Champs grisés") {
    this.getField("Text2").fillColor=color.gray;
    this.getField("Text2").readonly=true;
    this.getField("Text3").fillColor=color.gray;
    this.getField("Text3").readonly=true;
    } else {
    this.getField("Text2").fillColor=color.transparent;
    this.getField("Text2").readonly=false;
    this.getField("Text3").fillColor=color.transparent;
    this.getField("Text3").readonly=false;
    }
    }
    ou en script de calcul des champs modifiés, mais ces scripts s’exécutent après chaque évènement ce qui peut être pénalisant s’il y en a beaucoup :
    if (this.getField("Dropdown7").value=="Champs grisés") {
    event.target.fillColor=color.gray;
    event.target.readonly=true;
    } else {
    event.target.fillColor=color.transparent;
    event.target.readonly=false;
    }

    @+
    😎

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Exportation de tampons Acrobat Pro #72403
    bebarth
    Maître des clés

    bonjour,
    Les tampons sont stockés dans un répertoire Stamps.
    Tu télécharges l’utilitaire show_me_the_path et tu sera exactement où ils se trouvent :

    Show_me_the_path

    @+
    😎

    en réponse à : Afficher / masquer grâce à checkBox #72400
    bebarth
    Maître des clés

    bonjour,
    Il y avait la même chose dans l’API Reference, mais perso je préfère regarder la valeur :
    var premierPoint=event.target.name.indexOf(".");
    var dernierPoint=event.target.name.lastIndexOf(".");
    var ind1=event.target.name.substring(premierPoint+1,dernierPoint);
    this.getField("Aide."+ind1+".2").display=event.target.value!="Off"?display.visible:display.hidden;

    @+
    😎

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

    bonjour,
    Ça fonctionne pour moi !

    @+
    😎

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Raz et remplissage automatique #72368
    bebarth
    Maître des clés

    Je n’ai pas de message d’erreur mais ça ne marche pas…

    Je n’ai pas vérifié le script entier, mais la première chose que je vois est que resetForm() doit s’appliquer à une table, il faut donc écrire :
    if (oFld.type == "combobox") {this.resetForm([oFld.name]);}

    Je regarderai plus précisément si ça ne fonctionne pas mieux…

    @+
    😎

    en réponse à : Raz et remplissage automatique #72365
    bebarth
    Maître des clés
    bonjour,

    Par exemple si je veux extraire le chiffre compris entre les 2 points d’un champ qui se nommerait R.5.3 (ici le chiffre 5) mais il faudrait que ça fonctionne pour le cas d’un nombre à 2 chiffres comme R.12.10 (pour extraire le nombre 12)

    Pour celà, il faut prendre la valeur indiquée entre le premier et le dernier point. Essaye ceci :
    var nomChamp="R.12.10";
    var premierPoint=nomChamp.indexOf(".");
    var dernierPoint=nomChamp.lastIndexOf(".");
    var indice=nomChamp.substring(premierPoint+1,dernierPoint);
    console.println("indice : "+indice);
    Ce serait un peu plus compliqué s’il y avait plus de 2 points mais c’est faisable quand même !

    @+
    😎

    en réponse à : Enlever 1 heure dans un champ #72363
    bebarth
    Maître des clés

    bonjour,
    Il faut écrire le script en fonction de l’indice des champs.
    Pour la fonction :
    function HM_Format(ind) {
    var enminutes=Math. round(somme/60)
    // Heures
    var heures=Math.floor(enminutes/60);
    // Minutes
    var minutes=((enminutes/60)-heures)*60;

    if (this.getField("caseAcocher."+ind).value!="Off") heures--;

    event.value=util.printf("%,302.0f", heures)+":"+util.printf("%,302.0f", minutes);
    }

    et pour appeler la fonction :
    event.value= "";
    var somme=Time2Num("hh:mm", this.getField("end.0").value)-Time2Num("hh:mm", this.getField("start.0").value);
    HM_Format(event.target.name.substr(6));

    A noter que tu devrais utiliser la même méthode pour la variable somme.
    Tu devrais également positionner ces scripts en scripts de touche personnalisés des menus déroulants start et end ce qui éviterait que les calculs se fassent après chaque évènement déclenché dans ton formulaire !

    @+
    😎

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Enlever 1 heure dans un champ #72342
    bebarth
    Maître des clés

    bonjour,
    Voici pour moi ! Juste une petite modification de la fonction HM_Format :

    function HM_Format() {
    var enminutes=Math. round(somme/60)
    // Heures
    var heures=Math.floor(enminutes/60);
    // Minutes
    var minutes=((enminutes/60)-heures)*60;

    // Suppression d'une heure
    if (heures>6) heures--;
    // ou
    // if (this.getField("caseAcocher").value!="Off") heures--;
    //

    event.value=util.printf("%,302.0f", heures)+":"+util.printf("%,302.0f", minutes);
    }

    @+
    😎

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Raz et remplissage automatique #72321
    bebarth
    Maître des clés
    bonjour,

    Attention quand même : cette requête GREP détecte le « R » en début de mot, mais pas forcément en début de nom.

    C’est pourquoi il vaut mieux écrire :
    ...
    if (/^R./.test(oFld.name)) {
    ...

    ou
    ...
    if (oFld.name.indexOf("R.")==0) {
    ...

    @+
    😎

    • Cette réponse a été modifiée le il y a 1 année et 11 mois par bebarth.
    en réponse à : Utiliser le même script sans le modifier #72294
    bebarth
    Maître des clés

    Voici donc ma proposition :
    function verifier(n) {
    var nbChamps=0;
    for (var i=0; i<this.numFields; i++) {
    if (this.getNthFieldName(i).indexOf("Q"+n+".")==0) nbChamps++;
    }
    var erreurs=0;
    for (var a=1; a<=nbChamps; a++) {
    this.getField("Q"+n+"."+a).readonly=true;
    if (this.getField("Q"+n+"."+a).value!=0) {
    this.getField("Q"+n+"."+a).fillColor=color.white;
    } if (this.getField("Q"+n+"."+a).value==0) {
    this.getField("Q"+n+"."+a).fillColor=color.red;
    erreurs++;
    }
    }
    if (!erreurs) {
    this.getField("Bravo.1").display=display.visible;
    this.getField("Masque."+n).display=display.hidden;
    } else {
    if (erreurs==1) this.getField("Erreurs.1").value="Il y a une erreur.";
    else this.getField("Erreurs.1").value="Il y a "+erreurs+" erreurs.";
    this.getField("Erreurs.1").display=display.visible;
    }
    }

    @+
    😎

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Utiliser le même script sans le modifier #72292
    bebarth
    Maître des clés
    bonjour,

    Il faudrait un code qui me permettrait de compter tous les champs qui commencent par « Q »+n+ ». »

    Voici ce que tu peux écrire :
    var nbChamps=0;
    for (var i=0; i<this.numFields; i++) {
    if (this.getNthFieldName(i).indexOf("Q"+n+".")==0) nbChamps++;
    }
    console.println("Nombre de champs Q"+n+". : "+nbChamps);

    @+
    😎

    en réponse à : BONNE ANNÉE 2023 ! #72284
    bebarth
    Maître des clés

    Bonne année à tous !

    🍾😎

    en réponse à : Nombre aléatoire #72272
    bebarth
    Maître des clés

    Math.floor arrondit à l’entier inférieur tandis que Math.round arrondit à l’entier le plus proche.

    @+
    😎

    en réponse à : Nombre aléatoire #72270
    bebarth
    Maître des clés

    bonjour,
    Essaye plutôt : Math.round(Math.random()*3)+1;

    @+
    😎

    en réponse à : Validation de valeur champ multiligne #72257
    bebarth
    Maître des clés

    A ce moment la il faut procéder autrement, directement lors de la création des liste.
    Donc on modifie ta fonction :
    function LaListe() {
    var lesLignes=this.getField("entreesListe").value.split("\r");
    for (var a=0; a<lesLignes.length; a++) if (lesLignes[a]=="") lesLignes[a]=lesLignes[a]=" ";
    for (var a = 0; a < 11; a++) {if (this.getField("motif."+a) != null) {this.getField("motif."+a).setItems(lesLignes);}}
    }
    et tu peux supprimer l’autre script.

    @+
    😎

     

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Importation d’image dans un formulaire PDF #72256
    bebarth
    Maître des clés

    Je n’avais pas fait attention que c’était un bouton, je pensais que c’était un champ image.
    Un champ image est un bouton sans couleur de fond où l’action et le script sont déjà intégrés.

    @+
    😎

    en réponse à : Validation de valeur champ multiligne #72249
    bebarth
    Maître des clés

    bonjour,
    Je ne vois pas bien à quoi ça sert, mais tu peux écrire :
    this.getField("champTXT").value=this.getField("champTXT").value.replace(/\r\r/g,"\r \r");

    @+
    😎

    en réponse à : Importation d’image dans un formulaire PDF #72248
    bebarth
    Maître des clés

    bonjour,
    Comme ça je ne vois pas !
    As-tu essayé d’importer une autre image pour voir le résultat ?

    @+
    😎

    en réponse à : Format personalisé #72242
    bebarth
    Maître des clés

    bonjour,
    En script de format personnalisé :
    if (event.value!="") event.value=event.value+" km";
    avec un “k” minuscule pour l’unité, et
    if (event.value!="") event.value=event.value+" €";

    @+
    😎

    en réponse à : Choix de langue #72238
    bebarth
    Maître des clés

    bonjour,
    Avant de modifier la langue, il faut repérer la position de chaque menu avec “currentValueIndices”, puis repositionner la valeur des menus après modification.

    @+
    😎

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Extraction de pièces jointes #72230
    bebarth
    Maître des clés

    bonjour,

    La fonction exportdataobject marche si on importe une PJ normalement via l’onglet PJ mais pas via les annots

    C’est malheureusement correct !!!

    @+
    😎

    en réponse à : Javascript afficher/masquer un champ en fonction d’un calcul #72227
    bebarth
    Maître des clés
    bonjour,

    Le nombre 15 a-til une définition particulière en JS ?

    En JavaScriptologie, je ne pense pas !

    As-tu un message d’erreur dans la console ? Peux-tu partager un fichier ?

    @+
    😎

    en réponse à : Champs calculés #72219
    bebarth
    Maître des clés
    en réponse à : Incorporer des icones #72188
    bebarth
    Maître des clés

    bonjour,
    C’est parce que tu supprimes uniquement le champs, mais l’objet est toujours là !
    Il faudrait le supprimer avec :
    this.removeIcon("BB");
    …ou autre avant de réinitialiser.
    Manuellement tu peux taper cette ligne dans la console, sinon tu pourrais avec ton champ liste.66 supprimer complètement l’élément sélectionné (champ et objet).
    Essaye et dis-moi, sinon j’essayerai de faire ça lundi…

    @+
    😎

    en réponse à : Incorporer des icones #72180
    bebarth
    Maître des clés

    bonjour,
    Voici ! J’ai apporté quelques modifications dans tes scripts afin de réduire le nombre de lignes.

    @+
    😎

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Choix de langue #72178
    bebarth
    Maître des clés

    bonjour,
    Il faut appeler différents éléments de l’objet “elementsListes” en fonction de la langue :
    var bouton=this.getField("icone");
    if (event.target.buttonGetCaption()=="Français") {
    event.target.buttonSetCaption("Anglais");
    event.target.fillColor=color.black;
    event.target.textColor=color.white;
    this.getField("ListeMere").setItems(["aAnglais","bAnglais","cAnglais"]);
    this.getField("ListeFille").setItems([elementsListes["aAnglais"],elementsListes["bAnglais"],elementsListes["cAnglais"]]);
    this.getField("ListePetiteFille").clearItems();
    } else {
    event.target.buttonSetCaption("Français");
    event.target.fillColor=color.black;
    event.target.textColor=color.white;
    this.getField("ListeMere").setItems(["aFrancais","bFrancais","cFrancais"]);
    this.getField("ListeFille").setItems([elementsListes["aFrancais"],elementsListes["bFrancais"],elementsListes["cFrancais"]]);
    this.getField("ListePetiteFille").clearItems();
    }
    bouton.buttonSetIcon(this.getField("bt1").buttonGetIcon());

    @+
    😎

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Tan inverse pour avoir un angle en ° impossible #72144
    bebarth
    Maître des clés

    bonsoir,
    event.value=Math.atan(this.getField("CtanRLD").value)*180/Math.PI;

    @+
    😎

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Choix de langue #72137
    bebarth
    Maître des clés

    -dans l’onglet formulaire, j’indique a la liste Mere de donner des possibilités a la liste Fille, Petite Fille, icone a la liste fille de donner des possibilité a la liste Petite Fille, icone a la liste Petite Fille d’afficher icone. -dans l’onglet script, j’indique ce qu’il y a dans les listes par: var elementsListes={ « ChoixDeListeMere »: [« PossibilitéListeFille », »PossibilitéListeFille »], etc… Mais je ne comprends pas où ou comment je remplace exemple ChoixDeListeMere par la variable txt1 ou txt2 ou …

    Là c’est moi qui ne comprends pas !
    Qu’est-ce que ” l’onglet formulaire” ou “l’onglet script” ? et qu’est-ce que tu veux faire exactement… Que sont les variables “txt1” et “txt2” ?
    L’objet “elementsListes” est en script de document.

    @+
    😎

    en réponse à : Choix de langue #72125
    bebarth
    Maître des clés

    bonjour,
    J’imagine que le script de ton menu déroulant vient de ce fichier :
    https://www.abracadabrapdf.net/wp-content/uploads/2022/07/Se%CC%81lection-dimage-Mere-Fille_BB.pdf

    Si tu étudies ce fichier, tu verras qu’en script de document on définit l’objet “elementsListes” qui détaille les différents éléments des listes mères/Filles…

    @+
    😎

    en réponse à : Javascript afficher/masquer un champ en fonction d’un calcul #72120
    bebarth
    Maître des clés

    bonjour,
    Tu peux également réduire l’écriture du script :
    var somme=0;
    for (var i=1; i<=11; i++) somme+=Number(this.getField("VERS_REG_"+i).value);
    event.value=somme;
    if (event.value==100) event.target.display=display.hidden;
    else event.target.display=display.visible;

    @+
    😎

    en réponse à : Javascript afficher/masquer un champ en fonction d’un calcul #72117
    bebarth
    Maître des clés

    bonjour,
    Il suffit d’écrire :
    // somme des cases
    VAL01 = Number((this.getField("VERS_REG_1").value)) ;
    VAL02 = Number((this.getField("VERS_REG_2").value)) ;
    VAL03 = Number((this.getField("VERS_REG_3").value)) ;
    VAL04 = Number((this.getField("VERS_REG_4").value)) ;
    VAL05 = Number((this.getField("VERS_REG_5").value)) ;
    VAL06 = Number((this.getField("VERS_REG_6").value)) ;
    VAL07 = Number((this.getField("VERS_REG_7").value)) ;
    VAL08 = Number((this.getField("VERS_REG_8").value)) ;
    VAL09 = Number((this.getField("VERS_REG_9").value)) ;
    VAL10 = Number((this.getField("VERS_REG_10").value)) ;
    VAL11 = Number((this.getField("VERS_REG_11").value)) ;
    // Total
    event.value = VAL01 + VAL02 + VAL03 + VAL04 + VAL05 + VAL06 + VAL07 + VAL08 + VAL09 + VAL10 + VAL11;
    // Affichage
    if (event.value==100) event.target.display=display.visible;
    else event.target.display=display.hidden;

    @+
    😎

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Bouton Radio avec Timer #72113
    bebarth
    Maître des clés

    bonjour,
    Voici ce que l’on peut faire avec une fonction en script de document :
    var temps=5;
    var vert=["RGB",185/255,255/255,125/255];
    var orange=["RGB",255/255,230/255,100/255];
    var leScript="this.getField(\"btRad.\"+(ind+1)).readonly=false;this.getField(\"btRad.\"+(ind+1)).fillColor=vert;this.getField(\"chTxt.\"+(ind+1)).readonly=false;this.getField(\"chTxt.\"+(ind+1)).fillColor=vert;";
    function attend(ind,temps) app.setTimeOut(leScript,temps*1000);
    L’unité de temps de temporisation en première ligne est la seconde.
    Dans cette exemple je modifies également la couleur des fonds pour montrer cette temporisation.

    @+
    😎

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Bouton Radio avec Timer #72110
    bebarth
    Maître des clés

    bonjour,
    Il ne suffit pas d’avoir une idée, il faut aussi trouver le temps de l’expliquer et/ou faire un fichier exemple !
    Il existe plusieurs façons d’appréhender le sujet en fonction de la conception du formulaire. Si tu as déjà un fichier à partager ça facilitera la tâche…

    @+
    😎

    en réponse à : Ajout de page dans un formulaires #72109
    bebarth
    Maître des clés

    Désolé, je ne suis pas passé sur le forum hier, mais du coup, tu vois qu’on y arrive à force de travail et de persévérance…
    Bravo. 🙌

    @+
    😎

    en réponse à : resetForm #72099
    bebarth
    Maître des clés

    bonjour,
    Les champs à indiquer pour resetForm() doivent être sous forme de table, donc :
    for (var i=1; i<33; i++) {
    for (var j=1; j<32; j++) {
    this.getField("nom."+i+j+".0").defaultValue = ""
    this.resetForm(["nom."+i+j+".0"]);
    }
    }

    @+
    😎

    en réponse à : Ajout de page dans un formulaires #72089
    bebarth
    Maître des clés
    bonjour,

    Après utilisation du bouton « email » la console dit qu’un champ n’existe pas : TypeError: this.getField(…) is null

    Le champ “Nom_Fichier_1” se trouve sur la page modèle donc comme indiqué précédemment il faut trouver le préfixe pour que le “setFocus” s’exécute correctement sur le bon champ de la bonne page !
    Donc pour trouver le préfixe :
    var prefixe=event.target.name.substr(0,event.target.name.indexOf("000_VALIDATION"));
    ...
    this.getField(prefixe+"Nom_Fichier1").setFocus();
    ...

    @+
    😎

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Ajout de page dans un formulaires #72066
    bebarth
    Maître des clés

    Pour le champ 113a…

    Ici il faut trouver dans le document tous les noms de champs qui contiennent “176a_nom”, “176a_prenom” et “176a_email” donc :
    if (this.getNthFieldName(i).indexOf("176a_nom")>-1) this.getField(this.getNthFieldName(i)).value=event.target.value;
    etc.

    et sur le code java script « affichage », même pb

    …et ici il faut trouver les champs “184_Pole” et “185_Metier” qui sont sur la même page que le champ “183_Typedepole” donc avec le même préfixe.
    Donc prour trouver ce préfixe :
    var prefixe=event.target.name.substr(0,event.target.name.indexOf("183_Typedepole"));

    @+
    😎

    en réponse à : Configurer le format de plusieurs champs en même temps #72065
    bebarth
    Maître des clés

    bonjour,
    👍
    …et pour être un peu plus complet sur tous les types de formats que l’on peut paramétrer :
    https://www.websupergoo.com/helppdfnet/default.htm?page=source%2F6-abcpdf.objects%2Ffield%2F2-properties%2Fformat.htm

    @+
    😎

    en réponse à : Ajout de page dans un formulaires #72058
    bebarth
    Maître des clés

    C’est pas tout à fait le même principe…
    Je n’ai pas le temps développer ni de vérifier immédiatement, mais voici ce que ça devrait donner.

    @+
    😎

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Ajout de page dans un formulaires #72055
    bebarth
    Maître des clés

     

    bonjour,
    Dans ton fichier les champs des pages dupliquées sont renommées avec un préfixe et c’est normal sinon les champs de même nom auraient toujours la même valeur quelle que soit la page !
    Il faut donc intégrer le préfixe pour chaque script, et ton document est pas mal fait pour ça.
    Par exemple, pour ton champ 180_DS1 tu peux modifier ton script en :
    if (!event.willCommit) {
    if (event.changeEx=="0") {
    this.getField(event.target.name.replace(/_DS1$/,"_DS2")).display=display.hidden;
    this.getField(event.target.name.replace(/_DS1$/,"_DS3")).display=display.hidden;
    } else this.getField(event.target.name.replace(/_DS1$/,"_DS2")).display=display.visible;
    }
    où tu remplaces le nom du champ “prefixe.180_DS1” par “prefixe.180_DS2” et “prefixe.180_DS3” et ce quel que soit ce préfixe.

    @+
    😎

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Choix de langue #72049
    bebarth
    Maître des clés

    bonjour,
    Il y avait déjà un post à ce sujet :

    Formulaire choix de langue anglais francais


    et j’avais partagé un fichier, ci-joint.

    @+
    😎

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Extraction de pièces jointes #72040
    bebarth
    Maître des clés

    bonsoir,
    Je n’y connais pas grand chose non plus en VBA, mais j’ai trouvé cette page :
    https://bytescout.com/products/developer/pdfextractorsdk/how-to-extract-attachments-from-pdf-files-using-pdf-extractor-sdk-in-asp-net-vbnet-and-others
    pour un script VBS, et celle-là pour intégrer un VBS dans une macro VBA :
    https://www.developpez.net/forums/d937730/autres-langages/general-visual-basic-6-vbscript/vbscript/integrer-vbs-macro-vba-excel/
    Si ça peut t’aider !!!

    @+
    😎

    en réponse à : Variable persistante #72039
    bebarth
    Maître des clés

    C’est parce que j’ai fait une erreur… Désolé !
    Il faut écrire :
    this.addScript("VarDefaut", "ListeDefaut="+DVD);

    C’est ça de publier sans tester…

    Mais tu peux aussi écrire directement :
    this.addScript("VarDefaut", "ListeDefaut="+this.getField("entreesListe").value);

    @+
    😎

    en réponse à : Variable persistante #72035
    bebarth
    Maître des clés
    bonjour,

    L’erreur venait du script ListeDefaut qui contient un format non conforme à une fonction je pense.

    C’est parce que tu as mal écrit ta ligne de script !
    Il manque les guillemets (et les caractères d’échappement) qui seront affiché dans la ligne de script ajoutée.

    @+
    😎

    • Cette réponse a été modifiée le il y a 2 années par bebarth.
    en réponse à : Impression #72034
    bebarth
    Maître des clés

    bonjour,
    Je n’ai pas étudié entièrement le fichier, mais lorsqu’il y a beaucoup de champs et de scripts, il vaut mieux éviter les scripts de calcul qui sont exécutés à chaque fois qu’un des champs du formulaire passe par l’événement « Champ désactivé ».

    L’ordre d’exécution des événements dans les champs de formulaire PDF


    Il vaut donc mieux préférer un autre déclencheur… quand c’est possible !

    @+
    😎

    en réponse à : Variable persistante #72016
    bebarth
    Maître des clés

    Sinon, tu peux sauvegarder ta variable en script de document, elle sera récupérée à l’ouverture :
    this.addScript("variable", "maVariable=\"peut-être une chaine de caractères ou un nombre !\";");

    @+
    😎

    en réponse à : Variable persistante #72009
    bebarth
    Maître des clés

    bonjour,
    Il faut la définir et la rappeler en la précédent du préfixe “global. “,  par exemple :
    global.nomVariable="ceci est une chaine de caractères";
    et ensuite tu peux la rappeler avec :
    console.println("Ma variable global est : "+global.nomVariable);

    Attention, cette variable n’est plus valable si tu quitte l’application !

    @+
    😎

    en réponse à : Choix de langue #72003
    bebarth
    Maître des clés
    bonjour,

    j’ai mis une page type en lien

    Un oubli peut-être…

    @+
    😎

    en réponse à : Impression #71999
    bebarth
    Maître des clés

    bonjour,
    Voici un lien pour la boite de dialogue et le paramètre printRange :
    https://we.tl/t-Jer1xMZsPB
    … le temps d’exécution est réellement meilleur et je pense que c’est la bonne solution !

    @+
    😎

    en réponse à : Calcul à deux chiffres max après la virgule #71998
    bebarth
    Maître des clés

    bonjour,
    …sinon, toujours en script de format personnalisé :
    if (event.value>0) event.value=event.target.value.toFixed(2);
    else event.value=0;

    @+
    😎

    en réponse à : Impression #71997
    bebarth
    Maître des clés
    bonjour,

    Après ça l’impression se lançait mais pour toutes les pages.

    Je suis désolé d’apprendre que ce script ne fonctionne pas avec ton logiciel alors qui fonctionne parfaitement avec Acrobat !
    Voici un nouveau lien pour ceux que ça intéresse car il y avait une inversion de page dans certains cas avec la version précédente.
    La modification est en fin de script :
    ...
    for (var i=0; i<lesPages.length; i++) t[lesPages].hidden=false;
    t[t.length-1].hidden=true;
    if (lesPages[lesPages.length-1]==t.length-1) t[t.length-1].hidden=false;
    this.print({bUI: false});
    ...

    N’oubliez-pas de supprimer les 2 slashs dans le script du fichier exemple.

    Je viens de penser à une autre option : mettre une checkbox (CB.n) devant chaque champ agoto.n qui serait cochée si on souhaite imprimer la fiche de cet élève puis ce script affecté au bouton « imprimer » :

    Je n’avais pas pensé au paramètre “printRange”, et on pourrait faire la même chose avec la boite de dialogue…

    @+
    😎

    en réponse à : Impression #71984
    bebarth
    Maître des clés

    bonjour,
    Le message signifie que le script n’a pas trouvé de page modèle. J’imagine donc qu’il apparait depuis ton document !
    Il faut donc créer les pages modèles sur ton document avec ce script :
    for (var i=0; i<this.numPages; i++) {
    if (i<10) var t=this.createTemplate({cName:"pageModele.0"+i, nPage: i});
    else var t=this.createTemplate({cName:"pageModele."+i, nPage: i});
    }
    mais on ne peut pas l’exécuter depuis un bouton, donc soit via la console ou une action.
    Le script d’impression devrait marcher beaucoup mieux ensuite…

    @+
    😎

    en réponse à : Si condition alors #71981
    bebarth
    Maître des clés

    bonjour,
    Je pense que le plus simple c’est :
    var leTexte=this.getField("nomChamp").value;
    if (leTexte.indexOf("800")=0 || leTexte.indexOf("800")=0) event.value=leTexte;
    else event.value="";

    @+
    😎

    en réponse à : Calcul à deux chiffres max après la virgule #71980
    bebarth
    Maître des clés

    bonjour,
    En script de format personnalisé tu peux écrire :
    event.value=event.target.value.toFixed(2);
    Seul l’affichage apparaitra avec 2 décimales, mais la valeur réelle restera celle du champ !

    @+
    😎

    en réponse à : Impression #71976
    bebarth
    Maître des clés

    Voici ce que ça pourrait donner… peut-être un peut long (17 s pou l’impression de toutes les pages), mais tout est relatif !
    Attention, pour les 2 script, l’instruction d’impression est désactivé. Il faudra supprimer les 2 slash en début de ligne:
    this.print({bUI: false});

    Le lien pour télécharger l’exemple : https://we.tl/t-swe5I6wAd7

    … et j’ai oublié, le script pour créer une page modèle pour toutes les pages :
    for (var i=0; i<this.numPages; i++) {
    if (i<10) var t=this.createTemplate({cName:"pageModele.0"+i, nPage: i});
    else var t=this.createTemplate({cName:"pageModele."+i, nPage: i});
    }

    @+
    😎

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

    Pour le 1 c’est ce qui se passe avec les pages modèles sauf qu’elles sont juste cachées et non supprimées.

    Je vais essayer de faire quelque chose ce soir….

    il est possible de cocher les cases de la boîte de dialogue par défaut si ça t’intéresse. Ça dépend si la majeure partie du temps il y a plus de cases cochées ou non cochées. Tu me dis.

    @+
    😎

    en réponse à : Impression #71964
    bebarth
    Maître des clés

    Contrairement à l’interface utilisateur, le JavaScript ne permet d’imprimer que des plages de pages, on est donc obligé de créer plusieurs impressions et donc pas (ou pas complètement) de recto/verso.
    La solution serait peut-être de mettre toutes les pas imprimables en pages modèles et de cacher celles qui ne sont pas imprimées, cela permettrait de faire du recto/verso. On re-affiche toutes les pages après l’impression !

    @+
    😎

    en réponse à : Impression #71956
    bebarth
    Maître des clés

    bonjour,
    Essaye avec :
    ...
    eval("if (theCB"+i+"==true) {console.println(\"Nom Page \"+"+(i+1)+");this.print({bUI: false, nStart: "+i+", nEnd: "+i+"});}");
    ...

    mais normalement lorsqu’on n’indique pas nEnd, seule la page nStart est imprimée !

    @+
    😎

    en réponse à : Caractère spécial #71955
    bebarth
    Maître des clés

    … tu dois passer par tout cela pour que cela soit fonctionnel.

    Le fichier en exemple définit et détaille les différentes étapes, mais en fait il n’y à pas grand chose à faire. Le premier bouton va juste vérifier qu’il n’y a pas d’éléments dans l’objet “icons”.
    this.addIcon("nomDeLicone", this.getField("nomDuChamp").buttonGetIcon());
    pour importer une icône dans l’objet “icons” depuis un champ image ou un bouton et c’est à peu près tout. Puis on vérifie si les différentes icônes ont bien été importées. On peut supprimer ce champ manuellement.
    Ensuite on va rechercher une icône et la placer dans un champ avec :
    event.target.buttonSetIcon(this.getIcon("nomDeLicone"));

    @+
    😎

    en réponse à : Caractère spécial #71951
    bebarth
    Maître des clés

    j’essaye de faire un exemple dans l’après-midi !

    … c’est vrai que ça fait un peu tard dans l’après-midi, mais bon !
    Je suis parti du fichier de Merlin avec les 2 champs images cachés.

    @+
    😎

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

    Voici !

    @+
    😎

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Calcul ne fonctionnent pas #71947
    bebarth
    Maître des clés
    bonjour,

    Quand il s’agit que de nombre… le = est suffisant, mais quand c’est du texte il faut absolument == ?

    Pas du tout !
    == signifie « est égal à ».
    = signifie « devient égal à ».
    que ce soit un nombre, du texte ou une variable booléenne…

    @+
    😎

    en réponse à : Calcul ne fonctionnent pas #71945
    bebarth
    Maître des clés

    bonjour,
    … voir un précédent post :
    if(vRabais == « Oui ») event.value = 100;

    @+
    😎

    en réponse à : Caractère spécial #71921
    bebarth
    Maître des clés

    bonjour,
    … j’essaye de faire un exemple dans l’après-midi !

    @+
    😎

    en réponse à : Caractère spécial #71915
    bebarth
    Maître des clés

    bonjour,
    Sinon tu peux mettre tes images en icônes comme dans l’exemple, ça éviterait d’avoir des champs cachés !

    @+
    😎

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Impression #71913
    bebarth
    Maître des clés
    bonjour,
    Voici un exemple de boite de dialogue personnalisée que l’on pourrait adapter.

    et j’aimerais également que les champs vides ne soient pas imprimés.

    Ce ne sont que des champ texte ?

    @+
    😎

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Piece jointe et icône #71878
    bebarth
    Maître des clés

    bonjour,
    Pas si simple en fait, parce qu’avec ce que j’ai compris, ça fonctionne différemment selon l’échelle…
    Plus de 100% il faut redimensionner l’icône.
    Entre 50% et 100% Acrobat le fait automatiquement.
    Moins de 50%, il faut redimensionner par rapport à l’échelle 50%.
    C’est du moins ce que ‘ai constaté sur mon Mac. J’espère que ça fonctionne pareil sur un PC !
    Ci-joint un fichier qui fonctionne correctement sur mes iMac et MacBook.

    @+
    😎

    PS : Pour ceux qui avaient suivi mon ancien post, il y avait une erreur. La taille exacte de l’icône “Punaise” est de 14 x 20.

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Ajout page supplémentaire fiche PDF #71873
    bebarth
    Maître des clés

    Tout est dit !

    @+
    😎

    en réponse à : Piece jointe et icône #71870
    bebarth
    Maître des clés

    bonjour,
    Normalement la taille de l’icône s’adapte à l’échelle ! …avec Acrobat du moins, pour les autres logiciels je ne sais pas.
    De toute façon on ne pourrait pas le faire automatiquement car le zoom ne déclenche pas un évènement. On pourrait à la rigueur adapter l’icône selon le zoom à l’aide d’un bouton puisqu’on peut connaitre l’échelle avec this.zoom.

    @+
    😎

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Cacher/montrer avec un bouton unique #71853
    bebarth
    Maître des clés

    Ça va venir…

    @+
    😎

    en réponse à : Cacher/montrer avec un bouton unique #71851
    bebarth
    Maître des clés

    bonjour,
    If faut écrire :
    function ShowHide(indice) {
    if (this.getField("test."+indice).display == display.visible) this.getField("test."+indice).display = display.hidden;
    else this.getField("test."+indice).display = display.visible;
    }
    == signifie “est égal à”.
    = signifie “devient égal à”.

    @+
    😎

    en réponse à : Ajout page supplémentaire fiche PDF #71850
    bebarth
    Maître des clés

    …et tu sais comment ajouter des pages modèles ?

    @+
    😎

    en réponse à : Piece jointe et icône #71849
    bebarth
    Maître des clés

    heu… j’ai pas compris !

    @+
    😎

    en réponse à : Lien bouton radio et liste #71834
    bebarth
    Maître des clés
    bonjour,

    Un grand bravo. Aujourd’hui, vous avez fait un homme heureux 👌.

    Certaines fois, il suffit de pas grand chose !

    C’est juste parfait.

    C’est exact !
    En me relisant, je viens de m’apercevoir que la variable “menuDeroulant” de l’exemple précédent ne sert à rien… J’avais certainement dû modifier mon script et oublié de la retirer de la fonction !
    Du coup la fonction s’écrit :
    function affichage() {
    this.getField("champ2").display=display.visible;
    switch (event.changeEx) {
    case "0":
    var leMenu=[
    ["-SELECTIONNER-",0],
    ["Métier3",["-SELECTIONNER-","Cheval","Chien"]],
    ];
    break;
    case "1":
    var leMenu=[
    ["-SELECTIONNER-",0],
    ["Métier1",["-SELECTIONNER-","Maison","Balcon"]],
    ["Métier2",["-SELECTIONNER-","Maison","Voiture"]],
    ];
    break;
    default:
    var leMenu=[""];
    this.getField("champ2").display=display.hidden;
    this.getField("champ3").display=display.hidden;
    }
    this.getField("champ2").setItems(leMenu);
    }
    et pour l’appeler :
    if (!event.willCommit) affichage();

    Maintenant, si on veut approfondir l’apprentissage en JavaScript, on peut n’utiliser qu’une seule fonction avec plusieurs variables.
    Ici le script n’est pas très long ce n’est donc pas très grave, mais s’il l’était ce serait plus intéressant.
    Si par exemple le contenu des menus déroulants est identique, on peut écrire :
    // Fontion à 2 variables
    function affichage(menuDeroulant2,menuDeroulant3) {
    this.getField(menuDeroulant2).display=display.visible;
    switch (event.changeEx) {
    case "0":
    var leMenu=[
    ["-SELECTIONNER-",0],
    ["Métier3",["-SELECTIONNER-","Cheval","Chien"]],
    ];
    break;
    case "1":
    var leMenu=[
    ["-SELECTIONNER-",0],
    ["Métier1",["-SELECTIONNER-","Maison","Balcon"]],
    ["Métier2",["-SELECTIONNER-","Maison","Voiture"]],
    ];
    break;
    default:
    var leMenu=[""];
    this.getField(menuDeroulant2).display=display.hidden;
    this.getField(menuDeroulant3).display=display.hidden;
    }
    this.getField(menuDeroulant2).setItems(leMenu);
    }
    // Script pour champ1
    if (!event.willCommit) affichage("champ2","champ3");
    // Script pour champ4
    if (!event.willCommit) affichage("champ5","champ6");
    Une seule fonction commune et les 2 variables sont définies lorsqu’on appelle cette fonction…

    @+
    😎

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

    Je ne comprends pas trop quelles informations il y a dans rect. A ce que je crois comprendre et après avoir lu deux trois trucs sur le net, c’est les coordonnées des 4 coins du champ en question?

    https://opensource.adobe.com/dc-acrobat-sdk-docs/library/jsapiref/JS_API_AcroJS.html#id602

    Autre truc que je crois avoir compris : currentValueIndices c’est la position des entrées dans le menu déroulant et on ajoute 1 car la numérotation commence à zero ?

    Exact ! Si tes champs goto avaient commencé à 0 il n’y aurait pas eu besoin d’ajouter +1.

    Dernière question : est il possible de se passer du bouton servant à générer les menus déroulants ? J’ai essayé en plaçant ce script en script de calcul pour chacun des champs Ch1 et Ch2 ça à l’air de marcher. La méthode est bonne ou y a-t-il mieux à faire ?

    On peut mettre un script d’action en souris entrée… Le même pour les 2 menus déroulants.
    var laListe=this.getField("liste00").value.split("\r");
    event.target.setItems(laListe);

    @+
    😎

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Lien bouton radio et liste #71815
    bebarth
    Maître des clés

    bonjour,
    Si avec le menu champ4 tu veux remplir le champ5, il faut utiliser ton autre fonction.
    Donc if (!event.willCommit) affichage_1(event.target.name);

    @+
    😎

    en réponse à : Ajout page supplémentaire fiche PDF #71812
    bebarth
    Maître des clés

    bonjour,
    Vu tes 2 problèmes, je suppose que tu ne connais pas les pages modèles !
    Il va falloir t’y pencher dessus : https://opensource.adobe.com/dc-acrobat-sdk-docs/library/jsapiref/JS_API_AcroJS.html#template
    Ici si tu veux ajouter ou supprimer des choses il faut le faire directement sur ces pages et non sur des copies qui dans l’exemple (que j’avais fait il y a quelques années) sont supprimées pour les cacher.

    Dans ce nouveau script on affiche ou masque les pages modèles. On peut donc ajouter ou supprimer des éléments. Ce sera pris en compte lorsque tu afficheras ou masqueras de prochaines fois… (je ne sais pas si c’est très clair…).

    var t=this.templates;
    if (event.target.buttonGetCaption()=="Voir les documents") {
    for (var i=0; i<t.length; i++) t.hidden=false;
    event.target.buttonSetCaption("Masquer les documents");
    event.target.fillColor=["RGB",155/255,40/255,20/255];
    } else {
    for (var i=0; i<t.length; i++) t.hidden=true;
    event.target.buttonSetCaption("Voir les documents");
    event.target.fillColor=["RGB",0,127/255,0];
    }

    A l’époque j’avais affiché/masqué avec 2 boutons, mais on peut le faire avec un seul !

    @+
    😎

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

    …effectivement, je n’avais pas pensé à ça !!!
    Il faut donc regarder la position des menus déroulants, mais ici on ne ragarde uniquement que la position cela présume que la position des noms dans les champs “goto.1”, etc est identique à celle des menus déroulants, sinon il faudrait comparer les valeurs (menu et champs texte)
    var temp=this.getField("goto."+(this.getField("Ch1").currentValueIndices+1)).rect;
    this.getField("goto."+(this.getField("Ch1").currentValueIndices+1)).rect=this.getField("goto."+(this.getField("Ch2").currentValueIndices+1)).rect;
    this.getField("goto."+(this.getField("Ch2").currentValueIndices+1)).rect=temp;

    J’ai réduit le script au minimum. Demande si tu ne comprends pas !

    @+
    😎

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

    bonjour,
    Voici un script qui devrait répondre à ta question :
    function eleve(nomChamp) {
    var eleve=this.getField(nomChamp).value;
    n=eleve.indexOf(" ");
    return eleve.substr(n+1);
    }
    eleveCh1=eleve("Ch1");
    eleveCh2=eleve("Ch2");
    var temp=this.getField("goto."+eleveCh1).rect;
    this.getField("goto."+eleveCh1).rect=this.getField("goto."+eleveCh2).rect;
    this.getField("goto."+eleveCh2).rect=temp;

    @+
    😎

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Piece jointe et icône #71792
    bebarth
    Maître des clés

    Voici le résultat !

    @+
    😎

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Piece jointe et icône #71790
    bebarth
    Maître des clés

    x choix pour chacun des 50 définis par le menu 2 ?

    @+

    en réponse à : Piece jointe et icône #71788
    bebarth
    Maître des clés

    bonjour,
    Qu’y a-t-il dans ce troisième menu en fondu deuxième ??? X choix différents pour les 50 éléments définis dans le deuxième menu ou juste un menu commun quel que soit le deuxième menu ?

    @+
    😎

    en réponse à : Permuter des champs #71787
    bebarth
    Maître des clés

    bonjour,
    Si tu ne t’y connais pas trop en expression régulière, il vaut mieux écrire :
    var laListe=this.getField("liste00").value.split("\r");
    this.getField("Ch1").setItems(laListe);
    this.getField("Ch2").setItems(laListe);

    Ensuite, je ne comprends pas trop ce que tu veux faire vu que les 2 listes sont identiques !
    Admettons que tu ais “élève 3” dans le premier menu et “élève 5” dans le deuxième, que veux-tu faire ???

    @+
    😎

    en réponse à : Piece jointe et icône #71775
    bebarth
    Maître des clés

    bonjour,
    C’est exactement pareil si tu mets 0, 1, 2, 3 et 4 en valeur d’exportation de ton premier menu déroulant !

    …ou presque exactement !!!

    @+
    😎

    • Cette réponse a été modifiée le il y a 2 années et 1 mois par bebarth.
    Attachments:
    You must be logged in to view attached files.
    en réponse à : Piece jointe et icône #71772
    bebarth
    Maître des clés

    bonjour,
    Voici un exemple.

    @+
    😎

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

    bonjour,
    Il suffit de permuter la propriété “rect” des 2 champs :
    var temp=this.getField("Ch1").rect;
    this.getField("Ch1").rect=this.getField("Ch2").rect;
    this.getField("Ch2").rect=temp;

    @+
    😎

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Lien bouton radio et liste #71765
    bebarth
    Maître des clés
    bonjour,

    C’est parce-que les listes sont initialisées à l’ouverture du document, donc réinitialisées à chaque ouverture du document.

    Le script Champ1 est placé en validation donc exécuté à l’ouverture du document.

    Je reconnais ce script et me semble que je l’avais adapté d’après un que tu m’avais fourni. Personnellement je n’écris pas tout à fait comme ça…
    Ce weekend, j’essayerai de le réécrire à ma manière en script de touches personnalisé (c’est comme ça que je fais d’habitude).

    @+
    😎

    en réponse à : Lien bouton radio et liste #71738
    bebarth
    Maître des clés

    Je re-regarderai demain car pour l’instant je ne comprends toujours pas !
    Qu’est-ce qui devrait se passer et qui ne fonctionne pas ???

    @+
    😎

    en réponse à : Piece jointe et icône #71735
    bebarth
    Maître des clés

    Tu décompresses et tu places le fichier “Save_ destylast.js” (ci-joint) dans le répertoire JavaScript d’Acrobat, puis tu relances l’application.
    Tu peux ensuite utiliser le bouton pour calculer le poids de ton fichier : https://we.tl/t-CEcBFS4UWD

    @+
    😎

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Lien bouton radio et liste #71732
    bebarth
    Maître des clés

    bonjour,
    Désolé, mais pour l’instant après un essai rapide, je ne comprends pas ce qui ne fonctionne pas…

    @+
    😎

    en réponse à : Piece jointe et icône #71731
    bebarth
    Maître des clés
    bonjour,

    1- peut-on avoir le poids du formulaire en temps réelle sans enregistré le document.

    Non, comme l’a indiqué Merlin on doit obligatoirement enregistrer le document pour connaitre le poids du document.

    2- avec un bouton peut-on avoir le poids dans un champs texte a chaque fois que l’on clic sur le bouton en temps réelle.

    C’est possible, mais vu qu’il faut enregistrer le document depuis un bouton, il faudra écrire un script de document à placer dans le répertoire JavaScript de ton application Acrobat.
    Tu me dis si tu es intéressé…

    étonnant mais alors pourquoi tu as le poids exact de ton formulaire sans l’avoir enregistré quand tu l’envoies directement par mail(tu as le poids du fichier dans la pièce jointe) avec un bouton envoie alors encore une fois le document et non enregistrer.

    C’est une version enregistrée du document qui est placée en pièce jointe. Le poids est donc calculé !

    @+
    😎

    en réponse à : Piece jointe et icône #71716
    bebarth
    Maître des clés

    …après vérification, this.filesize retournant un nombre, il suffit décrire :
    // Le document sera enregistré
    function lesPoids(lePoids) {
    if (lePoids<1000) return lePoids+" octets";
    else if (lePoids<1000000) return (lePoids/1000).toFixed(1)+" Ko";
    else if (lePoids<1000000000) return (lePoids/1000000).toFixed(1)+" Mo";
    else return (lePoids/1000000000).toFixed(1)+" Go";
    }
    var avant=lesPoids(this.filesize);
    // Le document a été enregistré
    var apres=lesPoids(this.filesize);
    this.getField("poids").value="Le poids avant enregistrement était de "+avant+", après enregistrement il est de "+apres+".";

    @+
    😎

    en réponse à : Piece jointe et icône #71714
    bebarth
    Maître des clés

    Il faut mettre ces script avec l’outils “Actions du document”.
    https://we.tl/t-MpHCWJ8iHZ

    @+
    😎

    Attachments:
    You must be logged in to view attached files.
Affichage de 99 réponses de 397 à 495 (sur un total de 3,263)