Donnez vie à vos documents numériques !
 

michel c.

Toutes mes réponses sur les forums

Affichage de 99 réponses de 298 à 396 (sur un total de 431)
  • Auteur
    Réponses
  • en réponse à : Permuter des champs #71846
    michel c.
    Participant

    Merci beaucoup, ça fonctionne nickel

    en réponse à : Permuter des champs #71817
    michel c.
    Participant

    Merci beaucoup !

    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?

    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 ?

    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 ?

    Edit : Non en fait ça ne fonctionne pas, ça à l’air de fonctionner en mouse down par contre.

     

    • Cette réponse a été modifiée le il y a 2 années et 3 mois par michel c..
    • Cette réponse a été modifiée le il y a 2 années et 3 mois par michel c..
    • Cette réponse a été modifiée le il y a 2 années et 3 mois par michel c..
    • Cette réponse a été modifiée le il y a 2 années et 3 mois par michel c..
    • Cette réponse a été modifiée le il y a 2 années et 3 mois par michel c..
    • Cette réponse a été modifiée le il y a 2 années et 3 mois par michel c..
    • Cette réponse a été modifiée le il y a 2 années et 3 mois par michel c..
    • Cette réponse a été modifiée le il y a 2 années et 3 mois par michel c..
    Attachments:
    You must be logged in to view attached files.
    en réponse à : Permuter des champs #71801
    michel c.
    Participant

    Merci, cela fonctionne. Par contre si je modifie les noms des élèves (les entrées saisies dans les champs goto.nn), cela ne fonctionne plus pour ces champs.

    • Cette réponse a été modifiée le il y a 2 années et 3 mois par michel c..
    • Cette réponse a été modifiée le il y a 2 années et 3 mois par michel c..
    Attachments:
    You must be logged in to view attached files.
    en réponse à : Permuter des champs #71795
    michel c.
    Participant

    Les menus servent à sélectionner les élèves que je souhaite permuter.

    La disposition des champs goto.1 à goto.32 est un plan de salle de classe.

    Donc si je sélectionne l’élève 1 dans la liste de gauche et l’élève 9 dans la liste de droite, et qu’ensuite je clique sur le bouton central, le champ goto.1 se retrouvera à l’emplacement du champ goto.9 et inversement.

    en réponse à : Permuter des champs #71783
    michel c.
    Participant

    J’arrive à propulser les listes déroulantes avec les contenus des champs goto.1 à goto.32 mais sans les valeurs d’export (les noms des champs goto.1 à goto.32)

    • Cette réponse a été modifiée le il y a 2 années et 3 mois par michel c..
    Attachments:
    You must be logged in to view attached files.
    en réponse à : Permuter des champs #71778
    michel c.
    Participant

    Merci pour la proposition.

    En fait, ce n’est pas les Champs Ch1 et Ch2 que je souhaite permuter mais goto.a et goto.b (les valeurs a et b dépendent des choix faits dans les champs Ch1 et Ch2).

    J’aimerais donc propulser les noms des élèves inscrits dans les champs goto.1 à goto.32 dans les listes Ch1 et Ch2 et avec pour valeur d’export les noms de champs (goto.1 à goto.32). → ça je ne sais pas faire, mais je vais continuer à chercher.

    Ensuite une fois les noms d’élèves à permuter sélectionnés, j’aimerais qu’en cliquant sur le bouton central, les champs goto.a et goto.b correspondant à ces élèves permutent (changent de place).

    Je viens de faire un essai non concluant, mais je vais continuer à tâtonner, je vais peut être y arriver.

    Merci

    • Cette réponse a été modifiée le il y a 2 années et 3 mois par michel c..
    en réponse à : Remplissage automatique. #71766
    michel c.
    Participant

    Je pense avoir trouvé.

    en réponse à : Remplissage automatique. #71700
    michel c.
    Participant

    J’avance un peu sur cette usine à gaz.

    J’ai réussi à intégrer l’alerte quand une fiche est pleine. Seul problème : l’alerte s’affiche aussi lorsque l’on complète une autre fiche qui elle ne l’est pas.

    J’ai également essayé d’intégrer une alerte lorsque l’utilisateur ne saisit aucun motif avec cette ligne : if (leMotif==””){app.alert(“Veuillez saisir un motif”,3);}

    Ca fonctionne mal : l’alerte s’affiche aussi  lorsque l’on clique sur annuler ou alors, malgré l’alerte l’événement est saisi sur la fiche avec un motif non rempli (il faudrait que je trouve un moyen de stopper l’exécution du script) et par contre, un truc très bizarre, l’alerte n’apparait pas du tout pour l’élève 2. Pourquoi ???

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Remplissage automatique. #71697
    michel c.
    Participant

    Le truc que je ne comprend pas c’est que lorsqu’une fiche est pleine (par exemple celle de l’élève 1), si j’ajoute un évènement à la fiche de l’élève 3 (qui n’est pas pleine), le message qui me sera délivré est “attention, la fiche de l’élève 3 est pleine”….

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Remplissage automatique. #71690
    michel c.
    Participant

    J’ai supprimé ce script dans la dernière version (j’avais juste posté le code mais pas le ficher).

    Mais ça a l’air de marcher.

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Remplissage automatique. #71684
    michel c.
    Participant

    Je viens de tenter de modifier le script remplissage par celui-ci :

    function remplissage(indice){
    var leNom=this.getField(“goto.”+indice).value;
    var leMotif=this.getField(“motif.”+indice).value;
    var laDate=util.printd(“dd/mm/yyyy”,new Date());
    if (leNom!=”” && leMotif!=”-“) {
    var commentaire=app.response({
    cTitle: “COMMENTAIRE”,
    cQuestion: “Commentaire du “+laDate+” pour le motif : \””+leMotif+”\”.”,
    cDefault: “Sans commentaire !”,
    cLabel: “Élève : “+leNom
    });
    if (commentaire!=null) {
    try {
    var OK=0;
    for (var i=0; i<32; i++) {
    if (this.getField(“date”+indice+”.”+i+”.0″).value==””) {
    this.getField(“date”+indice+”.”+i+”.0″).value=laDate;
    this.getField(“evenement”+indice+”.”+i+”.0″).value=leMotif;
    this.getField(“commentaire”+indice+”.”+i+”.0″).value=commentaire;
    OK++;
    break;}
    if (this.getField(“date”+indice+”.”+i+”.0″).value!=””) {
    app.alert({cMsg:”Attention, liste pleine. L’entrée ne peut être saisie”, nIcon:3});
    // this.getField(“date”+indice+”.”+i+”.0″).value=””;
    //this.getField(“evenement”+indice+”.”+i+”.0″).value=””;
    //this.getField(“commentaire”+indice+”.”+i+”.0″).value=””;
    OK++;
    break;}

    }
    if (!OK) {
    for (var i=0; i<32; i++) {
    if (this.getField(“date”+indice+”.”+i+”.1″).value==””) {
    this.getField(“date”+indice+”.”+i+”.1″).value=laDate;
    this.getField(“evenement”+indice+”.”+i+”.1″).value=leMotif;
    this.getField(“commentaire”+indice+”.”+i+”.1″).value=commentaire;
    break;
    }
    }
    }
    } catch(e) {
    app.alert(“La fiche de l’élève “+leNom+” est pleine.”,3);
    }
    };
    }
    }

     

    Mais ça ne fonctionne pas…

    en réponse à : Remplissage automatique. #71681
    michel c.
    Participant

    Oups

    en réponse à : Remplissage automatique. #71670
    michel c.
    Participant

    Je viens de tester un truc mais qui n’est pas complètement satisfaisant :

    J’ai mis en calcul pour le dernier champ de date (date1.31.1) : celui de l’élève 1 (je ne l’ai pas fait pour tous les élèves) le script suivant

    if (this.event.value != "") {app.alert({cMsg:"Attention, liste pleine. L'entrée ne peut être saisie", nIcon:3});
    this.event.value = "";
    this.getField("evenement1.31.1").value = "";
    this.getField("commentaire1.31.1").value = "";
    }

    Du coup la date ne se remplit pas mais par contre cela n’efface pas les champs evenement1.31.1 et commentaire1.31.1 jouxtant le champ date.

    Je suppose que l’on peut intégrer cela au script remplissage mais je bloque un peu.

    De plus je me demandais si c’était possible de saisir le nombre d’élèves (n) de la classe sur la 1ère page et de ne rendre imprimable que les n pages correspondantes via un bouton imprimer. (Pour éviter d’imprimer des pages non utilisées).

    Merci

    • Cette réponse a été modifiée le il y a 2 années et 4 mois par michel c..
    Attachments:
    You must be logged in to view attached files.
    en réponse à : Numéro de page #71628
    michel c.
    Participant

    Oui, c’est plus simple et c’est ce que j’ai fait au début, mais après réflexion je me suis dit qu’il y allait forcément y avoir un cas pour lequel ça va arriver (j’aurai une trentaine d’élèves par an sur ce type de dossier)

    Et si l’élève a déjà bien rempli son dossier, il est bon pour faire un copié/collé de tout les champs vers un nouveau formulaire vide et de refaire entièrement la page supprimée….

    Travaillant sur des formulaires pdf pour la saisie de cours, exercices…Il est relativement fréquent qu’un élève quitte le logiciel sans sauvegarder.

    Là je ne veux pas prendre de risque car ces dossiers seront le résultat d’un an de travail.

    en réponse à : Numéro de page #71594
    michel c.
    Participant

    Si la boite de dialogue affiche 7,5 c’est en fait les valeurs aléatoires affectées aux variables Nb1 et Nb2 (donc 7 et 5) séparés par une virgule.

    Il suffit de saisir le résultat du calcul (7×5) + 5 → soit 40 (5 fois le nombre 1 + le nombre 2)

    Pour confirmer la suppression.

    En fait ce fichier sera un dossier pré-rempli que les élèves devront compléter mais pour ne pas avoir de pages blanches je voulais permettre la suppression de pages tout en vérifiant moi-même qu’ils ne suppriment pas une page par erreur.

    Leur version du logiciel que j’utilise ne leur permet pas d’éditer les formulaires et de toute façon ici c’est sans intérêt pour eux d’essayer de cracker ce code.

    Le vrai moyen de cracker pour eux c’est de noter les codes proposés et ceux que je saisis et d’arriver à faire la corrélation entre les deux pour retrouver la formule magique. Mais je leur demanderai de détourner le regard lorsque je saisirais le code.

     

    • Cette réponse a été modifiée le il y a 2 années et 4 mois par michel c..
    • Cette réponse a été modifiée le il y a 2 années et 4 mois par michel c..
    en réponse à : Numéro de page #71586
    michel c.
    Participant

    Merci, je vais corriger çà bien que je crois ne plus avoir besoin des boutons en bas de page.

    Pour la mise à jour de la liste déroulante une fois les pages supprimées, pour l’instant je ne vois pas trop comment faire mais je vais chercher.

    Concernant le mot de passe, en fait, je souhaite un mot de passe pour pas que les élèves suppriment une page accidentellement et qu’ils sauvegardent après.

    Le contournement que j’ai trouvé c’est de générer un nombre aléatoire qui s’affiche dans la boite de dialogue.

    A partir de ce nombre il faut saisir un code qui est fonction de ce dernier. Les élèves seront donc dans l’obligation de me demander avant la suppression d’une page.

    Voici mon code concernant la suppression de page :

    var page = (this.getField("PageNumber").value);
    var numpage = this.getField("PageNumber").value-1;
    var Nb1=(Math.floor(Math.random()*9))+3;
    var Nb2=(Math.floor(Math.random()*90))+1;
    var codeok = ((5*Nb1)+(Nb2));

    this.pageNum = numpage;
    this.zoomType = zoomtype.fitP;
    var cResponse = app.response({
    //Attention, opération irréversible !
    cQuestion: " \u0041\u0074\u0074\u0065\u006e\u0074\u0069\u006f\u006e\u002c\u0020\u006f\u0070\u00e9\u0072\u0061\u0074\u0069\u006f\u006e\u0020\u0069\u0072\u0072\u00e9\u0076\u0065\u0072\u0073\u0069\u0062\u006c\u0065\u0020\u0021 ",
    //Supprimer la page
    cTitle: "\u0053\u0075\u0070\u0070\u0072\u0069\u006d\u0065\u0072\u0020\u006c\u0061\u0020\u0070\u0061\u0067\u0065\u0020 " + page + "?",
    cDefault: "",
    //Saisir le code
    cLabel: " \u0053\u0061\u0069\u0073\u0069\u0072\u0020\u006c\u0065\u0020\u0063\u006f\u0064\u0065 " +" - " + Nb1 + "," + Nb2
    });
    if (cResponse == codeok){
    this.pageNum = numpage;
    this.deletePages(numpage);
    numeroPage();
    this.calculateNow();
    //Fait
    app.alert({cMsg:"\u0046\u0061\u0069\u0074 ", nIcon:3});
    }
    //Opération annulée
    else {this.pageNum = 0;
    app.alert({cMsg:"\u004f\u0070\u00e9\u0072\u0061\u0074\u0069\u006f\u006e\u0020\u0061\u006e\u006e\u0075\u006c\u00e9\u0065", nIcon:3});}

    en réponse à : Numéro de page #71576
    michel c.
    Participant

    J’ai trouvé une solution qui est plus acceptable : je gère la suppression des pages depuis la 1ère page avec un menu déroulant qui permet de choisir la page à effacer, la page à effacer qui s’affiche en plein écran avec boite de dialogue de confirmation.

    Ainsi je paramètre d’emblée qu’aucune des 12 premières page puisse être effacée, la page contenant le bouton ne peut donc pas l’être.

    Par contre un truc que je n’arrive pas à faire : que le code dans la boite de dialogue de confirmation ne s’affiche pas en clair (pas trop grave car je viens de penser à une astuce qui me permettrait de contourner ce problème)

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Numéro de page #71574
    michel c.
    Participant

    Je viens de modifier le script associé au bouton de l’avant dernière page : en ajoutant cette ligne : if (numpage = this.numPages – 1) {this.getField(“supp_PS49″).display = display.hidden};

    Et ça à l’air de fonctionner. Voici le script complet.

    var numpage = (event.target.page+1);

    var cResponse = app.response({
    //Attention, opération irréversible !
    cQuestion:

    \u0041\u0074\u0074\u0065\u006e\u0074\u0069\u006f\u006e\u002c\u0020\u006f\u0070\u00e9\u0072\u0061\u0074\u0069\u006f\u006e\u0020\u0069\u0072\u0072\u00e9\u0076\u0065\u0072\u0073\u0069\u0062\u006c\u0065\u0020\u0021
    “,
    //Supprimer la page suivante?
    cTitle:

    \u0053\u0075\u0070\u0070\u0072\u0069\u006d\u0065\u0072\u0020\u006c\u0061\u0020\u0070\u0061\u0067\u0065\u0020\u0073\u0075\u0069\u0076\u0061\u006e\u0074\u0065\u003f
    “,
    cDefault: “”,
    //Saisir le code
    cLabel: ” \u0053\u0061\u0069\u0073\u0069\u0072\u0020\u006c\u0065\u0020\u0063\u006f\u0064\u0065 ”
    });
    if (cResponse == “4096”){
    if (numpage = this.numPages – 1) {this.getField(“supp_PS49″).display = display.hidden};
    else if {this.deletePages(numpage);
    numeroPage();
    app.alert({cMsg:”Fait”, nIcon:3});
    }}
    else {app.alert({cMsg:”Opération annulée”, nIcon:3});}

    Par contre, je ne sais pas trop comment faire pour que se script fonctionne pour cacher tous les boutons supp_PS… qui peuvent se retrouver sur la dernière page après suppression d’autres pages.

    en réponse à : Numéro de page #71570
    michel c.
    Participant

    Je n’y avais pas pensé. Je vais me pencher là  dessus. Il faut que je m’active, je dois donner les fichiers aux élèves lundi après midi…

    en réponse à : Numéro de page #71567
    michel c.
    Participant

    Bonjour, je ne vois pas ce qu’est une page template ni comment on la déclare comme tel (je ne suis pas sous acrobat DC mais sur Pdf XChange Editor)

    Sinon, j’avais vu que la 1ère page portait le numéro 0 et qu’il fallait mettre des champs de noms différents pour que cela fonctionne.

    Je n’ai pas mis de bouton sur la dernière page non plus car il me semble que l’on ne peut pas effacer la page sur laquelle se trouve le bouton.

    en réponse à : Numéro de page #71564
    michel c.
    Participant

    Je viens de trouver en ajoutant :

    this.calculateNow();

    en réponse à : Numéro de page #71562
    michel c.
    Participant

    Bonjour, je viens de réussir mais j’ai un bouton sur chaque page (sauf sur la dernière) permettant de supprimer la page suivante.

    Le bouton fonctionne bien, cependant le numéro de page ne s’actualise pas. Je ne vois pas trop comment faire…

     

    Merci

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Numéro de page #71561
    michel c.
    Participant

    Je viens de tester : this.event.value = event.target.page; sur chacun de mes champs mais cela ne donne rien…

    en réponse à : Remplissage automatique. #71550
    michel c.
    Participant

    J’ai l’impression que le problème vient du catch(e) {...

    dans la fonction remplissage

    Je ne maitrise pas du tout ça mais je crois comprendre cela sert à gérer une erreur, or je ne suis pas sûr que la boucle for précédente génère une erreur si tous les champs sont remplis.

    J’ai essayé de remplacer cela par une condition mais pour l’instant je n’y arrive pas.

    J’ai inséré if (this.getField("evenement1.31.1").value != "") {
    app.alert("La fiche de l'élève "+leNom+" est pleine.",3);

    à la place juste pour tester avec la fiche bilan de l’élève 1 mais ça ne fonctionne pas.

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Remplissage automatique. #71546
    michel c.
    Participant

    Super, merci beaucoup. Pas sur que j’y sois arrivé tout seul. Sinon, j’aurais mis beaucoup plus de temps pour un résultat qui aurait ressemblé à une usine à gaz.

    Il va me falloir du temps pour bien comprendre tout ton script.

    J’ai apporté quelques petites modifs et j’ai constaté que l’alerte quand la fiche est pleine ne fonctionne pas.

    Je vais essayer de trouver pourquoi mais je ne suis pas sur d’y arriver tout de suite…

     

    • Cette réponse a été modifiée le il y a 2 années et 4 mois par michel c..
    Attachments:
    You must be logged in to view attached files.
    en réponse à : ResetForm une seule page #71492
    michel c.
    Participant

    Mais je ne pense pas avoir besoin de mettre le code en unicode dans le script car le fichier sera présent seulement sur mon poste (prof). par contre cela m’intéresserait si lors de la saisie, des astérisques s’affichent au lieu du texte en clair mais je ne vois pas comment….

     

    Merci

    en réponse à : ResetForm une seule page #71490
    michel c.
    Participant

    Merci pour les réponse, j’ai intégré le script à une fonction, cela marche à merveille.

    Pour les caractères unicode, je ne sais pas trop comment intégrer ça à mon document.

    Je précise que je ne travaille pas sous un logiciel adobe mais sous PdfXchange editor.

    J’ai trouvé des “traducteurs” de texte en unicode mais je ne vois pas trop comment faire.

    Merci

    Attachments:
    You must be logged in to view attached files.
    en réponse à : A la recherche de bugs #71275
    michel c.
    Participant

    Merci, la page de menu est toute récente et faite un peu trop vite, mais je viens de la corriger. Par contre je ne vois pas trop à quoi sont dues les erreurs de compatibilité avec acrobat et foxit.

    Je vais chercher un peu.

    • Cette réponse a été modifiée le il y a 2 années et 7 mois par michel c..
    Attachments:
    You must be logged in to view attached files.
    en réponse à : A la recherche de bugs #71265
    michel c.
    Participant

    Oups, désolé, voici un lien pour les fichiers :

    LIEN

    en réponse à : Permutation de contenu de champs #70989
    michel c.
    Participant

    Merci beaucoup pour ces précisions, ça va bien m’aider à comprendre.

    en réponse à : Permutation de contenu de champs #70985
    michel c.
    Participant

    Mon fichier a des bugs, celui de BB marche bien.

    J’ai apporté une modif pour éviter la saisie en double d’un élève.

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Permutation de contenu de champs #70979
    michel c.
    Participant

    Merci,

    J’ai effectivement quelques questions sur la solution que tu proposes.

    • La 1ère est sur la forme : pourquoi sur cette ligne : for (var i=1; i<=nbPlaces; i++) posEleve=[this.getField("El."+i).value,this.getField("place."+i).value]; il n’y a pas d’accolades ?
    • Ensuite celle ci : posEleve=[this.getField("El."+i).value,this.getField("place."+i).value]; je ne comprends pas trop le rôle de la virgule
    • Et globalement, je ne connais pas les tableaux. Celui ci possède 18 lignes et 2 colonnes si je comprend bien avec pour la 1ère colonne : this.getField("El."+i).value et pour la 2ème : this.getField("place."+i).value ?
    • La fonction placement possède 2 paramètres (indice et position) ?
    • for (var i=1; i<=nbPlaces; i++) : pour les valeurs i comprises entre 1 et 17 :
    • if (pos==posEleve[1] && ind!=i) : si le paramètre pos égale à la place i et l’indice différent de i ? (pas sûr du tout)
    • app.alert(posEleve[ind][0]+" et "+posEleve[0]+" ont le même numéro de place : "+posEleve[1],3); : afficher le message d’alerte…pas bien compris posEleve[1],3

    Bref, il y a pas mal de trucs que je ne maîtrise pas ici. Il faudrait que je m’exerce sur des tableaux plus basiques.

     

    Sinon, j’avais réussi à arriver à mes fins cette nuit d’une autre manière :

    for (var i=1 ; i<17 ; i++){
    var k = i+1
    if (this.getField("place."+i).value == this.getField("place."+k).value)
    {app.alert({cMsg:"Plusieurs élèves partagent la même place", nIcon:1});
    this.getField("place."+i).fillColor=["RGB", 255/255, 255/255, 0/255];
    this.getField("place."+k).fillColor=["RGB", 255/255, 255/255, 0/255];
    }
    }
    for (var i=1 ; i<18 ; i++){
    this.getField("eleve."+i).value = this.getField("El."+this.getField("place."+i).value).value;}

     

    Je me demandais si il était possible dans le cas ou le même numéro est attribué que la boite de dialogue affiche en plus du message les n° de places disponibles restantes.

     

    • Cette réponse a été modifiée le il y a 2 années et 10 mois par michel c..
    • Cette réponse a été modifiée le il y a 2 années et 10 mois par michel c..
    • Cette réponse a été modifiée le il y a 2 années et 10 mois par michel c..
    Attachments:
    You must be logged in to view attached files.
    en réponse à : Permutation de contenu de champs #70974
    michel c.
    Participant

    Bonjour, j’ai corrigé ces erreurs, malgré tout j’ai le même problème :

    Lorsque je clique sur le bouton, seul l’élève affecté à la place 13 s’inscrit dans le champ “eleve.13”

    Lorsque je clique une seconde fois, l’élève affecté à la place 14 s’inscrit dans le champ “eleve.14”

    Et lorsque je clique encore, plus rien…

    Attachments:
    You must be logged in to view attached files.
    michel c.
    Participant

    Bonjour, la pièce jointe d’Alex n’est plus disponibe, est ce qu’il est possible de remettre son lien ou est elle définitivement perdue ?

     

    Merci

    en réponse à : Permutation de contenu de champs #70967
    michel c.
    Participant

    Je vais me pencher là dessus, je ne sais pas trop encore comment faire. Dans l’immédiat, mon script permettant d’attribuer chaque élève à une place ne fonctionne toujours pas (sauf pour 3 élèves).

    Je l’ai simplifié mais je ne vois pas ou est le problème…

     

    for (var l=1 ; l<18 ; l++){
    this.getField("place."+l).fillColor=color.white;}

    for (var i=1 ; i<18 ; i++){
    if (this.getField("place."+i).value < 1 | this.getField("place."+i).value>17) {
    app.alert({cMsg:"La valeur est hors de la plage", nIcon:1});}
    }
    for (var j=1 ; j<17 ; j++){
    var k = j+1
    if (this.getField("place."+j).value == this.getField("place."+k).value)
    {app.alert({cMsg:"Attention, deux élèves ne peuvent pas partager la même place", nIcon:1});
    this.getField("place."+j).fillColor=["RGB", 255, 255/255, 0];
    this.getField("place."+k).fillColor=["RGB", 255, 255/255, 0];
    }
    }

    for (var m=1 ; m<18 ; m++) {
    if (this.getField("place."+m).value == this.getField("El."+m).name.substring(3,5)) {this.getField("eleve."+m).value = this.getField("El."+m).value;}}

     

    Merci

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Permutation de contenu de champs #70963
    michel c.
    Participant

    Je n’ai pas encore essayé le setAction car je galère déjà à permuter les contenus de mes champs élèves.i

    Je ne sais pas si j’ai la bonne approche, ça marche pour certains champs mais pas tous….

    Le script ne me renvoie pas d’erreur mais il y a un truc qui cloche…

    J’ai l’impression d’avoir fait une usine à gaz ….

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Permutation de contenu de champs #70957
    michel c.
    Participant

    En fait lorsque je suis en classe, je me base sur mon plan de classe pour plusieurs choses :

    • faire l’appel plus rapidement (si une place est libre, l’élève est absent)
    • me permettre d’avoir un suivi de l’élève : lorsque je clique sur le nom d’un élève dans un champ “eleve.i”, cela me renvoie directement à la page qui le concerne. Là je peux inscrire si il a été en retard, absent, si il a besoin d’une aide particulière, ses difficultés….

    Le souci c’est que sur une année scolaire, il y a parfois des changements de place.

    Si je permute les valeurs des champs eleve.1 avec eleve.5 par exemple, lorsque je vais cliquer sur sur le champ élève.1 cela va me renvoyer à la page de suivi de l’élève.5 qui était à cette place auparavant.

    Il faut aussi que je permute les contenus des champs que j’ai nommé _motif.i et amotif.i.

    Je pourrais donc faire cela sauf que je n’y arrive pas non plus…

     

    Mais je cherche…

    en réponse à : Permutation de contenu de champs #70951
    michel c.
    Participant

    J’ai pensé à permuter les champs “eleves” grâce à leur position mais je coince aussi, il faudrait qu’il y ait une “détection” du nom des champs qu’il faut permuter.

    Dans l’exemple, j’ai fait un bouton qui permet de permuter les champs “eleve.1” et “eleve.2” mais ça ne va pas, il faudrait permuter le champ qui se trouve à la position x avec le champ qui se trouve à la position y….

    Il y a certainement une fonction que je ne connais pas qui pourrait m’aider à faire ce que je souhaite.

    • Cette réponse a été modifiée le il y a 2 années et 10 mois par michel c..
    Attachments:
    You must be logged in to view attached files.
    en réponse à : Permutation de contenu de champs #70949
    michel c.
    Participant

    J’ai trouvé une solution plus simple que de permuter les champs :

    Je saisis les noms des élèves dans la liste au centre et j’affecte le n° de place dans la liste déroulante attenante.

    La position des élèves dans la liste centrale ne changeant pas, je n’ai plus ce problème de permutation.

    Cela a fonctionné au début mais je ne comprends pas pourquoi ça ne marche plus…

    Le problème vient peut être du fait qu’il y a la possibilité d’affecter 2 fois la même place à un élève.

    Je ne sais pas trop comment remédier à cela.

     

    Merci

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Remplacer la virgule par un saut de ligne #70944
    michel c.
    Participant

    Merci beaucoup, cela fonctionne.

    en réponse à : Ajouter le symbole M² dans la colonne d’un formulaire #70633
    michel c.
    Participant

    Juste une question en passant :

    Pourquoi ne pas remplacer event.value+=" M"+String.fromCharCode(0x00B2);

    par : event.value+=" M²"

    ?

    Merci

    en réponse à : Ajouter le symbole M² dans la colonne d’un formulaire #70622
    michel c.
    Participant

    le + " "

    est là pour ajouter un espace entre la valeur saisie et M²

    en réponse à : Ajouter le symbole M² dans la colonne d’un formulaire #70617
    michel c.
    Participant

    Voila

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Calcul en 2 temps #70562
    michel c.
    Participant

    Effectivement, ça venait de là. Merci

    en réponse à : Valider une saisie par la touche entrée #70524
    michel c.
    Participant

    Merci pour l’astuce, je l’ai encore modifié car pour le formulaire sur lequel je travaille, je ne dois pas faire un reset de tous les champs mais seulement de certains.

    Mais j’ai trouvé le code qui permet de le faire : this.resetForm(["Nombre1", "Nombre2", "Text2", "Result"]);

     

    en réponse à : Message d’alerte qu’une seule fois #70522
    michel c.
    Participant

    Si tu n’en dis pas plus ou si tu ne met pas ton document en lien ça va être un peu dur de te répondre (en tout cas pour moi).

    en réponse à : affichage ligne suivante. #70516
    michel c.
    Participant

    Alors ça va, ça n’aura pas été fait pour rien.

    en réponse à : affichage ligne suivante. #70514
    michel c.
    Participant

    Bon, j’ai commenté un truc avec des commentaires positifs et tout, cependant, je ne sais pas trop qui les verra, j’ai jamais trop bien compris comment fonctionnent ces réseaux sociaux.

    Bon je n’ai pas d’abonnement à LinkedIn, juste un compte gratuit, je suppose qu’il y a certaines limitations pour la publication de commentaires.

    en réponse à : affichage ligne suivante. #70512
    michel c.
    Participant

    Je viens de me souvenir que j’avais un compte chez Linked In sur lequel je vais quasiment jamais. Je cherche comment faire pour publier les recommandations mais je n’ai pas trop l’habitude de ce genre de trucs….

    en réponse à : affichage ligne suivante. #70507
    michel c.
    Participant

    Malheureusement je n’utilise aucun réseau social…

    en réponse à : affichage ligne suivante. #70503
    michel c.
    Participant

    @Merlin : merci, j’ai acheté le bouquin, il a l’air vraiment bien fait et gros avantage pour moi : c’est en français.

    @ BB : Merci aussi pour les commentaires sur le script, ça me fait gagner un temps fou.

    Et merci aussi pour ce site, j’ai énormément progressé grâce à vous. Il y a quelques moi j’étais loin d’imaginer tout ce que l’on pouvait faire avec des formulaires pdf.

    Pour un débutant en programmation, c’est très agréable d’avoir un site comme celui-ci pour se faire aider.

    en réponse à : affichage ligne suivante. #70496
    michel c.
    Participant

    Je commence à  étudier ton script, j’en suis au début ;

    la variable modeleRegEx est définie par : /^\d?$/;

    Le \d définit la saisie de chiffres de 0 à 9 si je comprend bien.

    ^ et  $ : semblent marquer le début et la fin d’une ligne

    Le ? : Correspond à 0 ou 1 occurrence de l’élément précédent → je ne vois pas trop …

    Y a t-il de la documentation à ce sujet ? J’ai regardé un peu sur le net et dans JavaScript for Acrobat API Reference mais ça me semble un peu confus.

    J’ai aussi du mal à comprendre la ligne suivante : aTester.splice(event.selStart, event.selEnd-event.selStart, event.change);

    event.selStart semble marquer le début de la saisie et  event.selEnd-event.selStart; ce qu’il y a entre le début et la fin mais je ne suis pas sûr.

    Par contre je ne saisis pas le .splice

     

    Merci

     

     

     

     

    en réponse à : affichage ligne suivante. #70494
    michel c.
    Participant

    Bonjour, je ne comprends pas bien pourquoi je n’arrive plus à voir les réponses de ce fil. Je ne vois plus que ma première intervention du 21/01…

    Edit : le fait de répondre a réglé ce problème.

    Merci BB pour ta dernière proposition.

    • Cette réponse a été modifiée le il y a 3 années et 1 mois par michel c..
    en réponse à : affichage ligne suivante. #70488
    michel c.
    Participant

    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.

    Attachments:
    You must be logged in to view attached files.
    en réponse à : affichage ligne suivante. #70486
    michel c.
    Participant

    @Merlin : Merci pour ces réponses. Je n’ai pas eu besoin d’implémenter le dernier code proposé.

    J’ai pu formater mes champs en nombre et pour que cela fonctionne j’ai modifié les conditions dans la fonction affLigne :

    if (ac0 === 0 | ac1 === 0 | ac2 === 0 | ac3 === 0 | ac0 > 0 | ac1 > 0 | ac2 > 0 | ac3 > 0)

    Et j’ai trouvé ce code super pratique pour déclarer un grand nombre de variable :

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

    Je ne connaissais pas la fonction eval(). J’ai fait un peu des recherches et il y a certaines choses que je ne comprend pas bien.

    J’ai entre autre lu que : La fonction  eval()évalue le code JavaScript représenté sous forme de chaîne. et plus loin : Si la chaîne représente une expression, eval() évalue l’expression. Si l’argument représente une ou plusieurs instructions JavaScript, eval() évalue les instructions.

    Mais je ne comprend pas bien ce qu signifie évaluer une expression.

    Et un peu plus loin je lis qu’il est dangereux d’utiliser cette fonction : eval() est une fonction dangereuse, qui exécute le code qui lui est passé avec les privilèges de l’appelant. Si vous exécutez eval() avec une chaîne qui pourrait être affectée par une partie malveillante, vous risquez d’exécuter un code malveillant sur la machine de l’utilisateur avec les autorisations de votre page Web/extension.

    Je suppose que le danger évoqué concerne le javascript utilisé sur des pages web et non pas celui intégré aux pdf?

    Source : https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/eval#never_use_eval!

    Merci

    Edit : @BB : Merci pour le fichier, je vais prendre le temps d’y voir un peu plus clair….

    Attachments:
    You must be logged in to view attached files.
    en réponse à : affichage ligne suivante. #70469
    michel c.
    Participant

    @BB (suite) : J’ai regardé le try catch et si je comprends bien, cela crée une exception lors de l’exécution d’une fonction pour qu’une erreur n’affecte pas sa bonne exécution. Je vais essayer de potasser un peu ça.

    en réponse à : affichage ligne suivante. #70467
    michel c.
    Participant

    Bonjour et merci pour les réponses.


    @BB
    , 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.

    J’ai essayé de modifier celui que j’avais fait avec les propositions de Merlin mais en faisant cela fonctionne mal. toutes les lignes s’affichent dès la saisie d’un champ sur la 1ère. J’ai une solution en tête mais ça va être très chargé, surtout sans faire utiliser de variables.

    J’ai un souci avec le script de raz ; je dois cliquer 1 fois sur le bouton pour effacer les valeurs et une 2ème fois pour effacer. Et je n’ai pas pu formater les champs en nombre car cela crée une erreur (je pense qu’un champ nombre ne peut pas contenir la valeur vide “”.

     

    Attachments:
    You must be logged in to view attached files.
    en réponse à : affichage ligne suivante. #70463
    michel c.
    Participant

    Merci pour la proposition.

    Lors de la saisie de la dernière ligne il y a un message d’erreur sur la ligne 11 du script (this.getField….is null)

    Sinon, ça fonctionne nickel, tu as résolu le problème que j’avais avec le “0” qui lorsqu’il était saisi ne faisait pas apparaître la ligne suivante.

    Il y a par contre pas mal de choses que je ne connais pas dans ce script, il va me falloir pas mal de temps pour le décrypter, mais en tout cas merci, ça me fait progresser.

    en réponse à : Affichage du haut d’une page #70435
    michel c.
    Participant

    Merci beaucoup, ça fonctionne.

    en réponse à : comparer 2 menu déroulants #70408
    michel c.
    Participant

    Bonjour, je dirais :

     

    var choixA = this.getField("nom_du_menu_a").value;

    var choixB = this.getField("nom_du_menu_b").value;

    if (choixA == choixB) {this.getField("nom_du_champs_de_point).value = 1}

    if (choixA != choixB) {this.getField("nom_du_champs_de_point).value = 0}

    Et pour chaque menu déroulant, il faut que tu mettes les valeurs d’export identiques pour les éléments des listes donnant les points à l’utilisateur.

    Mais je ne suis pas encore un pro du javascript, donc à vérifier…

    en réponse à : concatenation chiffres pour créer nombres #70407
    michel c.
    Participant

    Merci

    en réponse à : Saisie mode de passe #70370
    michel c.
    Participant

    Suis-je bêta, c’était devant mon nez… Comme je n’avais jamais eu besoin de cela, je n’avais pas vu….

    Merci pour la réponse

    en réponse à : Nombres aléatoires #70338
    michel c.
    Participant

    J’ai trouvé mon erreur ; le script corrigé :

    var i = this.getField("Level").value;
    var f = this.getField("Table").value;
    var Nb1=(Math.floor(Math.random()*i))+1;
    var Nb2="";
    console.println(i);
    console.println(f);

    if (f == 10) {var Nb2=(Math.floor(Math.random()*9))+1;
    this.getField("Nombre2").value = Nb2;
    this.getField("Nombre1").value = Nb1;
    console.println(Nb1);
    }

    if (f < 10) {var Nb2 = f;
    this.getField("Nombre2").value = Nb2;
    this.getField("Nombre1").value = Nb1;
    console.println(Nb1);
    console.println(Nb2);}

    en réponse à : Calcul date automatique j+1, j+2, j+3…. #70327
    michel c.
    Participant

    Je viens de regarder, c’est ce qui est fait dans le script mais en passant par  la variable oDate

    en réponse à : Calcul date automatique j+1, j+2, j+3…. #70322
    michel c.
    Participant

    Bonjour, entre temps j’ai réussi à faire quelque chose qui fonctionne (avec l’aide du net) → voir en pièce jointe

     

    bonjour,

    michel c. wrote:
    (util.printd(« dd/mm/yyyy », new Date())) → 05/01/2022 C’est sur cette ligne que ça cloche ; quelle que soit la date choisie, et le nombre de jours de décalage j’ai cette date du 5/01/22
    Il faut écrire : util.printd(« dd/mm/yyyy », new Date(n)); sinon c’est le jour actuel qui est pris en compte ! @+

    Je vais essayer d’intégrer cela pour voir ce que ça donne.

    Merci

    • Cette réponse a été modifiée le il y a 3 années et 1 mois par michel c..
    Attachments:
    You must be logged in to view attached files.
    en réponse à : Calcul date automatique j+1, j+2, j+3…. #70313
    michel c.
    Participant

    Même problème sur le dernier fichier proposé. J’ai juste ajouté un bouton pour afficher les valeurs sur la console.

    Je me demandais si il n’y avait pas une solution pour contourner ce problème. Pour cela je voulais savoir à quoi correspond la variable n (il me semble que c’est l’intervalle de temps en millisecondes entre la date décalée et le 1er janvier 1970) mais je ne suis pas sûr.

     

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Calcul date automatique j+1, j+2, j+3…. #70297
    michel c.
    Participant

    Bonjour, j’ai testé et cela fonctionne sur Adobe mais toujours pas sur notre logiciel.

    J’essaye de comprendre…

    J’ai affecté le script initial à un bouton en le modifiant un peu (un champ permet de saisir le nombre de jours de décalage pour afficher la date à n+le nombre de jours) : j’ai demandé à afficher sur la console les variables pour voir ce qui ne va pas.

    Donc pour la date du 25/03/2030 avec 10 jours de décalage, la console affiche ceci :

    le numéro du jour extrait de la date saisie (jour) → 25
    le numéro du mois extrait de la date saisie (mois) → 03
    l’année extrait de la date saisie (annee) → 2030
    le nombre de jours de décalage (nb) → 10
    la date saisie (d) → Mon Mar 25 2030 00:00:00 GMT+0100 (Paris, Madrid)
    le résultat du calcul (d.getTime()+(nb*24*3600*1000)) (variable n) → 1901487600000
    la date calculée avec le décalage (util.printd(“dd/mm/yyyy”, new Date())) → 05/01/2022

    C’est sur cette ligne que ça cloche ; quelle que soit la date choisie, et le nombre de jours de décalage j’ai cette date du 5/01/22

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Saisie de l’identité avec boite dialogue #70282
    michel c.
    Participant

    Merci, je viens enfin de comprendre la différence entre la variable locale et une variable pour tout le document…. Je suis un peu long parfois.

    Si je comprends bien, l’ajout de cette ligne : function boiteDeDialogue() {

    au début du script de document fait que tout le script est une fonction et que celle-ci ne se déclenche pas tant que le bouton n’appelle pas la fonction.

    Alors que dans l’autre cas, le script s’exécute dès l’ouverture du document ?

    en réponse à : [Protection] Comment font ils? #70270
    michel c.
    Participant

    Pour l’instant mes élèves ne peuvent pas éditer les documents car les contrôles sont fait en classe et j’ai un logiciel de supervision des postes informatiques.

    Jusqu’à présent je faisait faire les contrôles en distanciel grâce au module quizmaker sur mon site wordpress mais les possibilités sont moindres que sur les formulaires pdf.

    J’hésitais à franchir le pas pour faire les contrôles en distanciel en pdf mais je crois que je vais attendre pour voir ce que je peux mettre en place… Il y a aussi le souci de l’échange de documents entre élèves…

    Merci encore pour ces précisions.

    en réponse à : Calcul date automatique j+1, j+2, j+3…. #70260
    michel c.
    Participant

    Et le fichier modifié :

     

    Merci

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Calcul date automatique j+1, j+2, j+3…. #70257
    michel c.
    Participant

    Bonjour, je relance ce fil car il y a un truc qui me chiffonne avec ce fichier…

    Au travail, nous avons opté pour un autre logiciel qu’adobe DC pour des raisons financières.

    Jusqu’à présent tous les formulaires fonctionnaient aussi bien sur adobe reader DC que sur notre logiciel.

    Mais là, c’est le 1er fichier qui me pose un problème (la même date s’affiche dans tous les champs)

    Ensuite, j’ai essayé de rajouter les champs manquants pour les semaines 3 à 6 en copiant les scripts et là, même sur adobe reader DC cela ne marche plus, certaines dates sont incohérentes.

    Bref, je sèche un peu là….

     

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Problème avec des boucles for #70255
    michel c.
    Participant

    Merci pour les réponses. Je ne vois pas cette erreur car avec le logiciel dont je dispose pour l’édition de pdf, aucun message ne s’affiche. J’ai pris en compte les remarques en mettant pour chaque script des variables d’incrémentation différentes. ça a l’air de marcher, je n’ai pas de message d’erreur.

    J’ai laissé par contre les mêmes pour les scripts associés à des bouton différents mais dont les scripts sont identiques, en supposant que dans ce cas, ce n’est pas nécessaire…

    Attachments:
    You must be logged in to view attached files.
    en réponse à : BONNE ANNÉE 2022 ! #70243
    michel c.
    Participant

    Bonne année également et un grand merci pour ce forum et pour le temps passé à répondre aux questions.

    en réponse à : générateur de listes déroulantes avec valeurs d’export #70241
    michel c.
    Participant

    avec la copie d’écran…

    Attachments:
    You must be logged in to view attached files.
    en réponse à : générateur de listes déroulantes avec valeurs d’export #70240
    michel c.
    Participant

    Merci beaucoup, ça fonctionne.

    Voici le script : var lesLignes=this.getField("entreesListe").value.split("\r");
    for (var i=0; i<lesLignes.length; i++) {lesLignes=lesLignes.split("\/");}
    for (var i=0; i<10; i++) {this.getField("liste."+i).setItems(lesLignes);}

    en réponse à : Problème pour poster #70204
    michel c.
    Participant

    Bonjour,

    Je fais une 3ème tentative, je n’ai toujours pas réussi à poster dans la section PDF – Général et je viens de poster ici sans que cela fonctionne…

    Voila, j’ai un script qui me permet d’importer dans 10 listes déroulantes chaque ligne d’un champ de texte multiligne comme élément de la liste.

    Ce que j’aimerais faire c’est qu’à la fin de chaque ligne, après un séparateur comme un ; ou un / , l’utilisateur termine la ligne par une valeur numérique.

    Et que l’on importe dans les listes déroulantes chaque ligne (avant le séparateur) comme élément de liste et que la valeur après le séparateur soit importée comme valeur d’export de chaque élément des listes.

    J’ai trouvé comment à partir d’un script importer des éléments de liste avec des valeurs d’export : this.getField("liste."+i).setItems([ ["-","0"], ["Choix A",10], ["Choix B",20], ["Choix C",30],["Choix D",40]]);

    Et j’ai trouvé également un script qui permet d’importer chaque ligne comme éléments de liste (je l’ai un peu modifier pour faire la même chose pour les 10 listes):

    this.getField("liste."+i).setItems(this.getField("entreesListe").value.split(/[\r\n]+/g));

    Par contre je ne sais pas trop comment m’y prendre pour faire ce que je souhaite. J’ai lu de la documentation à ce sujet mais il y a pas mal de choses que je ne maîtrise pas, comme l’usage des séparateurs et comment ensuite réintégrer les différentes données dans les listes déroulantes..

    Derrière ce besoin, je voudrais que des utilisateurs lambdas puissent mettre les éléments qu’ils souhaitent avec les valeurs d’export sans qu’ils ne rentrent dans les scripts pour cela.

    Merci

    • Cette réponse a été modifiée le il y a 3 années et 1 mois par michel c..
    Attachments:
    You must be logged in to view attached files.
    en réponse à : PDF interactif sur site web #70185
    michel c.
    Participant

    Je ne crois pas que cela soit possible.

    Tu peux faire un formulaire en ligne et il est possible d’exporter ce formulaire en pdf mais garder l’interactivité d’un pdf ….

    As tu vu un site web sur lequel ça se fait ?

    en réponse à : Script qui a l’air de marcher mais… #70170
    michel c.
    Participant

    Je viens de regarder mais quelle que soit la date choisie, c’est la semaine qui commence le 21/12/2021 qui s’affiche en semaine 1 comme en semaine 2 avec mon logiciel (PDF XChange Editor) alors qu’avec adobe acrobat DC ça fonctionne.

    C’est la 1ère fois que je vois un script qui dysfonctionne avec ce logiciel…

    en réponse à : Script qui a l’air de marcher mais… #70167
    michel c.
    Participant

    Merci beaucoup !!!

    J’ai pu enfin arriver au bout de ce que je voulais faire. J’ai également amélioré la vérification finale afin qu’elle soit plus fonctionnelle.

    Voici le fichier terminé, en espérant qu’il n’y ait pas de bug.

    Une des questions que je me pose, sans savoir si cela est possible par la programmation c’est si en spécifiant une année quelle quelle soit (par exemple 2024) est ce qu’il est possible que pour chaque champ (semaine.0 à semaine.53) soit inscrit automatiquement la semaine spécifiée (du lundi au dimanche) en commençant par la 1ère semaine de septembre.

    Je ne demande pas le code qui doit être assez long à faire mais juste savoir si c’est possible ou pas.

    Merci

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Script qui a l’air de marcher mais… #70163
    michel c.
    Participant

    Je viens de tenter un truc : créer des variables de A à I avec une valeur 0 qui se mettent à 1 pour chaque “erreur”

    Et les messages d’alertes qui s’affichent si la valeur de ces variables est différente de 0.

    La variable J avec valeur initiale 0 se met à 1 si toutes les autres variables ont des valeurs différentes de 1.

    Si la variable J est différente de 0, le message d’alerte indiquant que tout est ok s’affiche.

    Toutes les alertes étant en dehors de la boucle for, je me disais que ça devrait marcher.

    Sauf que non….

     

    var condA=0
    var condB=0
    var condC=0
    var condD=0
    var condE=0
    var condF=0
    var condG=0
    var condH=0
    var condI=0
    var condJ=0

    if (this.getField("SLR").value != this.getField("LT").value) {var condA = 1;}

    if (this.getField("SER").value != this.getField("ET").value) {var condB = 1;}
    //Le nombre de PFMP pour les apprentis n'est pas conforme

    if (this.getField("SCR").value != this.getField("VT").value) {var condC = 1;}
    //Le nombre de semaines de congé pour les apprentis n'est pas conforme

    if (this.getField("SLRE").value != this.getField("LE").value) {var condD = 1;}
    //Le nombre de semaines au lycée pour les élèves n'est pas conforme

    if (this.getField("SERE").value != this.getField("PFMP").value) {var condE = 1;}
    //Le nombre de PFMP pour les élèves n'est pas conforme

    if (this.getField("SCRE").value != this.getField("VE").value) {var condF = 1;}
    //Le nombre de vacances pour les élèves n'est pas conforme

    for (var i = 0; i < this.numFields; i++) {

    if (this.getField("CheckBox."+i).value == "A" & this.getField("TheckBox."+i).value != "D") {var condG = 1;
    ///Attention pour les semaines en rouge, les apprentis ne peuvent pas être au lycée quand les élèves sont en PFMP ou en vacances
    this.getField("semaine."+i).fillColor = color.red;}

    if (this.getField("CheckBox."+i).value == "Off") {var condH = 1;
    //Indiquer ou sont les apprentis pour les semaines en vert
    this.getField("semaine."+i).fillColor = color.green;}

    if (this.getField("TheckBox."+i).value == "Off") {var condI = 1;
    //Indiquer ou sont les élèves pour les semaines mises en bleu
    this.getField("semaine."+i).fillColor = color.blue;}

    if (condA !=1 & condB !=1 & condC !=1 & condD !=1 & condE !=1 & condF !=1 & condG !=1 & condH !=1 & condI !=1) {var condJ=1;
    this.getField("semaine."+i).fillColor = color.transparent;}

    }

    if (condA !=0) {app.alert({cMsg:"Le nombre de semaines au lycée pour les apprentis n'est pas conforme", nIcon:2});}

    if (condB !=0) {app.alert({cMsg:"Le nombre de PFMP pour les apprentis n'est pas conforme", nIcon:2});}

    if (condC !=0) {app.alert({cMsg:"Le nombre de semaines de congé pour les apprentis n'est pas conforme", nIcon:2});}

    if (condD !=0) {app.alert({cMsg:"Le nombre de semaines au lycée pour les élèves n'est pas conforme", nIcon:2});}

    if (condE !=0) {app.alert({cMsg:"Le nombre de PFMP pour les élèves n'est pas conforme", nIcon:2});}

    if (condF !=0) {app.alert({cMsg:"Le nombre de vacances pour les élèves n'est pas conforme", nIcon:2});}

    if (condG !=0) {app.alert({cMsg:"Attention pour les semaines en rouge, les apprentis ne peuvent pas être au lycée quand les élèves sont en PFMP ou en vacances", nIcon:2});}

    if (condH !=0) {app.alert({cMsg:"Indiquer ou sont les apprentis pour les semaines en vert", nIcon:2});}

    if (condI !=0) {app.alert({cMsg:"Indiquer ou sont les élèves pour les semaines mises en bleu", nIcon:2});}

    if (condJ !=0) {app.alert({cMsg:"Tout est ok", nIcon:2});}

     

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Script qui a l’air de marcher mais… #70161
    michel c.
    Participant

    Bonjour,

    j’avais voulu simplifier mon document pour le poster mais ce n’était pas une bonne idée.

    Voici le document complet ou presque.

    Cette erreur est toujours présente et je n’arrive pas à activer la ligne 37 sans que le message d’alerte s’affiche 53 fois…

     

    Merci

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Couleurs #70149
    michel c.
    Participant

    Bonjour, la proposition de merlin fonctionne bien.

    Pour la dernière proposition, lorsque je colle le script dans la console et que j’exécute, la console renvoie undefined.

    Ce que tu appelle script de touche personnalisée c’est un script qui se déclenche souris vers le haut par exemple ?

    Je met le 1er script pour tous les menus déroulants et le 2nd sur les champs diff ?

    Tu as du oublier la pièce jointe.

    Tu as raison de préciser qu’il est inutile d’exécuter les 53 scripts; J’avais remarqué que lorsque j’ai un pdf dans lesquels trop de champs contiennent des scripts, il arrive que mon éditeur plante.

    Je précise que je ne suis pas sous adobe mais sous PDF XChange Editor Plus (mais je pense qu’il y a à peu près les mêmes fonctionnalités)

    Je réessayerai ce soir

    Merci pour les propositions en tout cas.

    PS : je ne comprend pas bien cette ligne : this.getField(“sequence.”+i).commitOnSelChange=true

     

    en réponse à : Checkbox #70135
    michel c.
    Participant

    Merci beaucoup pour la réponse et pour les explications.

    Ce type de script n’est pas facile pour moi, même si je comprends le principe, il y a certaines choses qui m’échappent encore….mais je vais étudier ça en détail.

    Je reviendrai peut être pour d’autres petites questions je pense.

     

     

    en réponse à : Checkbox #70122
    michel c.
    Participant

    Bonjour Est-ce que ce sont des cases à cocher indépendantes ou bien est-ce qu’elles fonctionnent avec un choix unique pour chaque ligne (comme des boutons-radio) ? Peux tu partager ton document ou un exemple ?

    Bonjour, il y a un choix unique pour chaque ligne.

    Dans mon premier message, le fichier est attaché, je suis le seul à le voir ?

    Je remet le fichier.

    • Cette réponse a été modifiée le il y a 3 années et 2 mois par michel c..
    Attachments:
    You must be logged in to view attached files.
    en réponse à : Checkbox #70111
    michel c.
    Participant

    Bon, j’ai fini par trouver ….

    J’ai extrait les chiffres des noms de champ et j’ai mis le même script pour toute la colonne 1 :

    var nom=event.target.name;
    var i = nom.substring(1,3);

    if (event.target.isBoxChecked(0)) {
    this.getField("E"+i).display = display.hidden;
    this.getField("V"+i).display = display.hidden

    }

    else {
    this.getField("E"+i).display = display.visible;
    this.getField("V"+i).display = display.visible
    }

    Pour la colonne 2, j’ai remplacé :

    ("E"+i) et ("V"+i) par ("L"+i) et ("V"+i)

    Pour la colonne 3, j’ai remplacé:

    ("E"+i) et ("V"+i) par ("L"+i) et ("E"+i)

    • Cette réponse a été modifiée le il y a 3 années et 2 mois par michel c..
    en réponse à : Signature numérique / électronique #69911
    michel c.
    Participant

    Le formulaire initial est en construction, je le réactiverai sous peu

    en réponse à : Signature numérique / électronique #69910
    michel c.
    Participant

    Principe de base de tout éditeur de logiciel : laisser l’utilisateur croire que c’est de sa faute… 😉

    Oui, tu ne crois pas si bien dire…

    Après pas mal d’essais, je me suis rendu compte que c’est le fait de rendre la signature obligatoire qui provoquait ce bug…

     

    en réponse à : Signature numérique / électronique #69908
    michel c.
    Participant

    Oui mais je pense que l’erreur vient de moi. Je dois avoir fait une erreur de parametrage.

    Lorsque mon formulaire était un peu plus simple et épuré je ne validait qu’une fois…

    en réponse à : Signature numérique / électronique #69906
    michel c.
    Participant

    Si certains veulent voir ce que ça donne, j’ai presque fini mon 1er formulaire → Droit à l’image : personnes majeures

    J’ai juste un bug : il faut cliquer 2 fois sur envoyer pour soumettre le formulaire…je planche là dessus…

    Vous recevrez le pdf généré à l’adresse e-mail renseignée (le message risque de se retrouver dans les spams)

    J’ai mis un mot de passe sur la page pour éviter que n’importe qui accède au formulaire. Il s’agit du nom d’un célèbre site dédié aux formulaires pdf (tout en minuscules)

    Je désactiverai ce mot de passe dans quelques jours, je vous laisse le temps de tester si ça vous intéresse…

    en réponse à : Signature numérique / électronique #69901
    michel c.
    Participant

    Après de nombreux essais, il existe une solution entièrement gratuite et fonctionnelle :

    l’extension Contact Form 7
    l’extension Send PDF for contact Form 7 (un peu difficile à appréhender au début mais j’ai réussi à sortir un formulaire simple avec un entête)
    l’extension Contact Form 7 Signature Addon
    Je ne connais pas la portée juridique mais l’extension Send PDF for contact Form 7 permet l’apposition d’une balise : [reference]

    Et, je cite l’auteur :

    [reference]  est une simple balise qui est utilisée pour créer des PDF uniques. Elle est également enregistrée dans la base de données. Chaque PDF est nommé comme suit : nom-pdf-[reference] et est téléversé dans le dossier de téléversement de WordPress. Par exemple : document-pdf-56BC4A3EF0752.pdfPar exemple : documennt-pdf-6181a0c2494c6.pdf

     

    Bref, pour des extensions gratuites, ce n’est pas trop mal…

    • Cette réponse a été modifiée le il y a 3 années et 3 mois par michel c..
    • Cette réponse a été modifiée le il y a 3 années et 3 mois par michel c..
    en réponse à : Signature numérique / électronique #69899
    michel c.
    Participant

    Ok, pour les solutions gratuites, il y a :

    • l’extension Contact Form 7 qui permet de réaliser des formulaires sur son site word press assez facilement
    • Si on ajoute l’extension Send PDF for contact Form 7, on peut exporter le formulaire en pdf et l’admin du site reçoit un exemplaire en pdf du formulaire (il est possible me semble t il d’envoyer une copie par mail à celui qui rempli le formulaire). Je suis en train de tatonner un peu pour bien arriver à faire fonctionner cette extension
    • Si on ajoute l’extension PDF Forms Filler for CF7, il est possible de lier son formulaire en ligne avec un formulaire pdf et de mapper les champs que l’on souhaite mais lors de l’export, une filigrane apparaît (sauf si l’on paye pour la version complète)

    Parmi les solutions payantes, la meilleure est me semble-t-il WPForms (la version gratuite est déjà pas mal)

    Pour 200 $ on peut bénéficier de signatures numériques
    l’extension pour générer des pdf semble gratuite en basique mais assez limitée, je suis en train de tester…

    en réponse à : Signature numérique / électronique #69890
    michel c.
    Participant

    Je vais fouiller un peu ça, je ne vais plus poster ici, c’est un peu hors sujet dans ce forum. Sauf si cela intéresse certains.

    en réponse à : Signature numérique / électronique #69886
    michel c.
    Participant

    Est ce que quelqu’un a déjà essayé d’intégrer un formulaire à un site wordpress avec signature numérique et export en pdf ?

    Il existe beaucoup de modules wp qui proposent cela, j’en ai testé déjà quelques uns. L’option signature est toujours payante (en tout cas d’après ce que j’ai vu jusqu’à présent) mais avant d’envisager un achat, j’aimerais avoir quelques retours.

    Merci

    en réponse à : Signature numérique / électronique #69825
    michel c.
    Participant

    Je suis bien d’accord. Cela fait longtemps que l’état aurait du embaucher des développeurs pour que nos administrations puissent bénéficier d’applications adaptées, ça n’est pas les talents qui manquent en France.

    Un gros paquet d’argent part effectivement chez Microsoft et autres multinationales du numérique.

    Pour en revenir au sujet, je n’a rien trouvé d’aussi simple qu’Adobe Sign pour les parents. Si c’est trop complexe, ce ne sera pas utilisé. Je n’ai pas encore envisagé une signature numérique via page html hébergée sur le site du lycée. Je ne sais pas si c’est faisable et quelle est la portée juridique.

    en réponse à : Signature numérique / électronique #69823
    michel c.
    Participant

    Apparemment certains établissement scolaires ont pris des abonnements à adobe sign :

    la signature numerique prend sa place dans le monde de l’education

     

    Je vais voir notre gestionnaire à la rentrée pour faire une demande.

    Merci en tout cas

    en réponse à : Signature numérique / électronique #69818
    michel c.
    Participant

    Je viens de tester ça, c’est vrai que c’est nickel. La seule question c’est si notre établissement scolaire sera prêt à payer les licences (notre gestionnaire préfère les logiciels achetés plutôt que des abonnements). Et cela dépendra aussi du nombre de licences à acheter je suppose qu’il en faut une pour chaque personne qui utilisera cette fonction.

    Les principaux intéressés chez nous sont la secrétaire et l’intendante mais il est fréquent que des enseignants demandent des signatures aux parents pour des sorties ou des voyages. Si on refile du boulot à la secrétaire pour gérer les signatures, ça risque de ne pas le faire…

    Je me demandais si il y avait une solution à peu près identique (en tout cas pas trop complexe pour les signataires) et sans abonnement.

    en réponse à : concaténation des valeurs de plusieurs champs #69804
    michel c.
    Participant

    <p style=”text-align: left;”>

    Pourquoi ne pas utiliser directement le format « Code Postal » ?

    </p>
    <p style=”text-align: left;”>Euh. En fait, je n’y avais pas pensé.</p>
    <p style=”text-align: left;”>Le bon côté c’est que j’ai appris quelque chose.</p>

    • Cette réponse a été modifiée le il y a 3 années et 4 mois par michel c..
    en réponse à : concaténation des valeurs de plusieurs champs #69799
    michel c.
    Participant

    Merci beaucoup. Du coup je viens de comprendre des trucs.

    J’ai fait une modif pour que la fin du prénom soit en minuscules.

     

    this.getField("PRENOM").value.substr(0,1).toUpperCase()+this.getField("PRENOM").value.substr(1).toLowerCase();

    en réponse à : concaténation des valeurs de plusieurs champs #69796
    michel c.
    Participant

    Merci, cela marche impec.

    J’ai le même souci avec le champ prénom : en action de format j’ai mis le script pour capitaliser la 1ère lettre dispo dans les scripts. Mais si dans le champ prénom la 1ère apparait bien en Majuscule, dans le champ concaténé, la première lettre se transforme en minuscule (sauf si lors de la saisie elle était en majuscule).

    Et si je remplace cPrenom.value par cPrenom.valueAsString, cela ne change rien…

     

Affichage de 99 réponses de 298 à 396 (sur un total de 431)