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 422)
  • Auteur
    Réponses
  • 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 2 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 2 mois par michel c..
    • Cette réponse a été modifiée le il y a 2 années et 2 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 2 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 5 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 8 mois par michel c..
    • Cette réponse a été modifiée le il y a 2 années et 8 mois par michel c..
    • Cette réponse a été modifiée le il y a 2 années et 8 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 8 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 2 années et 11 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 2 années et 11 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 2 années et 12 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 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 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 1 mois par michel c..
    • Cette réponse a été modifiée le il y a 3 années et 1 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 2 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…

     

    en réponse à : Calcul de % de bonnes réponses #69653
    michel c.
    Participant

    Merci pour la réponse, je viens d'apprendre quelque chose, je ne savais pas comment incrémenter une valeur.
    Entre temps j'avais trouvé un moyen mais plus tiré par les cheveux…
    Et effectivement, je ne maitrise pas “isBoxChecked”. J'ai commencé à regarder le lien que tu as posté, il va me falloir un peu de temps, l'anglais n'est pas mon fort….

    en réponse à : Calcul de % de bonnes réponses #69651
    michel c.
    Participant

    Oui, je me suis aperçu de ma bourde cet après midi. Je comptais poster là dessus mais je me suis laisser happer par un autre truc sur lequel je bute…
    Je compte mettre en place une aide interactive qui s'affiche via un bouton en face de chaque question (ça je pense savoir faire)

    Mais j'aimerais aussi qu'à la fin de l'exercice, l'élève en cliquant sur un bouton pour connaitre son % de bonnes réponses, s'affiche également le nombre de fois ou il a fait appel à l'aide.
    J'ai tenté un truc mais qui ne fonctionne pas. Peut être que mes variables ne sont pas déclarées au bon endroit…
    Merci
    Ps : je n'ai pas intégré encore la modif que tu as faite au script dans mon document mais je ne comprend pas ceci :

    Code:
    replace(/,/, “.”)
    en réponse à : Calcul de % de bonnes réponses #69649
    michel c.
    Participant

    Je viens de trouver tout seul comme un grand (mais aussi avec une recherche sur le forum mieux formulée)
    Je n'arrive par contre pas encore à accepter les points et les virgules pour les séparateurs.

    en réponse à : Calcul heures dans un formulaire PDF #69609
    michel c.
    Participant

    Bonjour, je ne comprends pas trop le javascript de document (j’ai du mal avec les fonctions)

    Code:
    function Time2Num(sFormat, sTime) {
        if(sTime==””) return “”; // exit
        // get date time for Epoch date and sTime
        var oTime=util.scand(“mm/dd/yyyy “+sFormat, “01/01/1970 “+sTime);
        // convert UTC Offset to milliseonds for adjustment
        var fTZOffset=oTime.getTimezoneOffset()*1000*60
        // time since the start of the day in millseconds
        var fTime=oTime.valueOf()-fTZOffset;
        // convert to seconds and return value
        return Math.round(fTime/1000);
    }

    Voici ce que je comprend :

    Code:
    function Time2Num(sFormat, sTime)

    Je suppose que l’on déclare la fonction TimeNum ayant comme paramètres sFormat et sTime

    Code:
    if(sTime==””) return “”; // exit

    Si la variable sTime est non vide alors on abandonne l’exécution de la fonction
    Par contre ensuite, je ne comprend pas pourquoi il n’y a pas “else”
     

    Code:
    // get date time for Epoch date and sTime
        var oTime=util.scand(“mm/dd/yyyy “+sFormat, “01/01/1970 “+sTime);

    On déclare la variable oTime par contre la fonction util.scand d’après mes recherches sert à convertir la chaine mm/dd/yyyy en secondes (je ne suis pas sûr) mais je ne sais pas trop comment et je ne sais pas à quoi servent les paramètres qui suivent

    Code:
        // convert UTC Offset to milliseonds for adjustment
        var fTZOffset=oTime.getTimezoneOffset()*1000*60

    On déclare la variable fTZOffset mais je ne comprends pas trop la suite…
    Pour la suite je pourrais peut être la comprendre seul si j’avais la réponse à ces interrogations.
    Merci

    en réponse à : Champs calculs : liste déroulante et conditionnel #69392
    michel c.
    Participant

    bonjour,
    Je pense que michel c. a oublié de poster un fichier…
    Voici une solution sans JavaScript.
    @+
    :bonjour:

    Ben pourtant si : le mot Réponse en fin de post renvoie vers un lien hypertexte : le fichier reponse.pdf

    en réponse à : Champs calculs : liste déroulante et conditionnel #69390
    michel c.
    Participant

    Voila ce que j’ai pu faire : calcul du montant via un bouton. Le calcul ne s’effectue pas si la puissance ou le kilométrage est incorrect. Dans ces cas une fenêtre s’ouvre pour afficher un message d’erreur.

    Réponse

    en réponse à : Signature électronique – mention ‘lu et approuvé’ #69462
    michel c.
    Participant

    Ne serait il pas possible que :

    • si le document n’est pas signé ; lors de la fermeture de celui-ci, la mention Lu et approuvé soit effacée
    • si “lu et approuvé” est inscrit et le document signé, cela “aplatisse” le pdf afin que plus aucun champ ne soit modifiable et sauvegarde du document dans la foulée?
    • [/list]

    en réponse à : Verrouiller un fichier PDF #69436
    michel c.
    Participant

    Donc pas de possibilité d’avoir une forme de propriété intellectuelle sur des scripts inclus dans les pdf. Si vous vendez à un client des formulaires, rien n’empêche l’échange et la diffusion des scripts inclus dans les documents ?

    en réponse à : Verrouiller un fichier PDF #69433
    michel c.
    Participant

    J’ai déjà téléchargé des pdf dont le menu formulaire était verrouillé. Comme celui ci ? Lien
    Mon éditeur me précise que les les fonctionnalités d’édition sont limitées car le document contient un formulaire XFA dynamique.
    D’après ce que j’ai lu ICI, cela veut dire que ce type de formulaire pdf est tout de même modifiable avec Adobe Designer ?

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