Donnez vie à vos documents numériques !
 

michel c.

Toutes mes réponses sur les forums

Affichage de 35 réponses de 397 à 431 (sur un total de 431)
  • Auteur
    Réponses
  • 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 ?

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

    Ça ne protège que contre les grand-mères et ceux qui ne savent pas utiliser Googol, il existe des dizaines de sites et d’utilitaires comme celui-ci :
    https://smallpdf.com/fr/unlock-pdf

    :geek:

    Mince, je ne pensais pas que ce type de protection ne valait pas un clou…

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

    Bonjour, après vérification, ça a l’air de fonctionner sur les scripts associées à des boutons ou a des champs mais cela ne masque pas les scripts du document.
    Voici une vidéo montrant ce que je fais (sur un fichier téléchargé sur ce forum) : Lien

    Et un lien vers le fichier : Lien

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

    Je viens de trouver….

    en réponse à : Champs visibles conditionnels #69404
    michel c.
    Participant

    Merci bebarth ! C’est de toute beauté.  :jerisjaune:

    Effectivement….

    Sinon 2 questions : dans cette ligne :

    Code:
    this.getField(theField).display=this.getField(theField).display==display.visible?display.hidden:display.visible;

    à quoi sert le “?”

    Et dans cette ligne :

    Code:
    checkABC(event.target.name.substr(0,1));

    substr(0,1)) veut dire que l’on extrait 1 caractère à partir de la position 0 du nom du bouton cible ?

    Merci

    en réponse à : Champs visibles conditionnels #69397
    michel c.
    Participant

    Je pense que oui, il suffit que les 2 conditions soient remplies. 
    Si la variable b = 5 alors le champ Cb est visible. 
    Si la variable c = 7 alors le champ Cc est visible. 
    Si la variable b=5 et la variable c= 7 alors le champ Ca est visible. 

    Code:
    var b = (this.getField(“saisieB”).value);
    var c = (this.getField(“saisieC”).value);

    if (b == 5 &&  c ==7) {
    this.getField(“Ca”).display = display.visible;
    this.getField(“Cb”).display = display.visisble;
    this.getField(“Cc”).display = display.visible;
    }

    else if (b == 5 && c!=7) {
    this.getField(“Ca”).display = display.hidden;
    this.getField(“Cb”).display = display.visible;
    this.getField(“Cc”).display = display.hidden;
    }

    else if (c == 7 && b!=5) {
    this.getField(“Ca”).display = display.hidden;
    this.getField(“Cb”).display = display.hidden;
    this.getField(“Cc”).display = display.visible;
    }

    else {
    this.getField(“Ca”).display = display.hidden;
    this.getField(“Cb”).display = display.hidden;
    this.getField(“Cc”).display = display.hidden;
    }

     

    ça devrait marcher je pense.

    en réponse à : Bouton reset #69389
    michel c.
    Participant

    Merci pour la réponse, j’ai pas mal tergiversé car même après avoir renommé mes checkbox, cela ne fonctionnait pas, j’ai dû faire ce que vous m’aviez expliqué précédemment :.

    Code:
    var positionMenu=this.getField(“repOpi”).currentValueIndices;
    this.getField(“operateur1”).value=this.getField(“repOpi”).getItemAt(positionMenu,true);
    this.getField(“operateur2”).value=this.getField(“repOpi”).getItemAt(positionMenu,true);

    .
    repOpi est une checkbox cachée, sur le choix “?” et operateur1&2 les checkbox que je souhaite initailiser.
    En tout cas, tout marche à merveille maintenant…

    en réponse à : Réduction fraction #69382
    michel c.
    Participant

    Bonjour, je ne suis pas découragé, au contraire.
    Je suis enseignant et tout a commencé avec le 1er confinement pendant lequel j’ai commencé à utiliser les formulaires pdf afin de faciliter le travail à distance des élève.
    J’ai fait acheter pour notre lycée 25 licences d’un logiciel permettant de créer des formulaires pdf afin que d’autres collègues puissent également en profiter.

    Au bout d’un an d’utilisation, j’ai découvert de plus en plus de possibilités et depuis quelques mois j’ai commencé à tenter d’intégrer quelques scripts, pour rendre les documents un peu plus interactifs et attractifs.

    Mais avec le javascript, c’est l’engrenage, je découvre qu’il y a énormément de possibilités et étant de nature curieuse, j’ai envie d’en apprendre toujours un peu plus…
    En tout cas, je trouve que vous faites un travail admirable sur ce forum et c’est extrêmement agréable de disposer d’une aide aussi précieuse.

    en réponse à : Réduction fraction #69377
    michel c.
    Participant

    It’s working. Thank you.
    I understand english but i don’t speak very well.
    I would have liked to find books in French on javascript for pdf forms but this kind of book does not exist, so I have no other choice to learn javascript for pdf than to do it in English …

    en réponse à : Réduction fraction #69374
    michel c.
    Participant

    Merci pour ta réponse, le javascript est nouveau pour moi et j’essaye de me dépatouiller avec votre aide et les différents sites qui traitent du sujet. J’ai l’impression d’avancer mais aussi peut être d’avancer sans maitriser les fondamentaux…J’ai également commandé un ouvrage mais il tarde un peu à arriver…

    Bref, tout ça pour dire que j’ai un peu étudié le script modifié et j’ai quelques incertitudes ; voici ce que j’ai compris :


    Code:
    // on déclare la fonction que l’on nomme simplify. pour str je suppose que c’est l’argument à passer à la fonction
    function simplify(str) {
    // on déclare la variable result et on lui donne une valeur nulle   
        var result=””;
    // supposition : on déclare la variable data qui sera séparée par un/   
        var data=str.split(“/”);
    // on déclare la variable numOne qui aura comme valeur …là je sèche   
        var numOne=Number(data[0]);
        var numTwo=Number(data[1]);
    //boucle pour chaque valeur de i égal au maximum entre numOne et numTwo et i>1 …la suite je sèche
        for (var i=Math.max(numOne,numTwo); i>1; i–) {
            if (numOne%i==0 && numTwo%i==0) {
                numOne/=i;
                numTwo/=i;
            }
        }
    // si numTwo égal à 1 alors on donne à la variable result la valeur de numOne je suppose
        if (numTwo===1)  result=numOne.toString();
    // sinon on donne à la variable result la valeur de numOne puis / puis la valeur de numTwo
        else result=numOne.toString()+”/”+numTwo.toString();
    // on met fin à la fonction et on renvoie la valeur result à la fonction simplify
        return result;
    }
    // on affecte au champ Text1 la valeur 4/6 traitée par la fonction simplify
    this.getField(“Text1”).value=simplify(“4/6”);
    // on affecte au champ Text2 la valeur 84810/985612 traitée par la fonction simplify
    this.getField(“Text2”).value=simplify(“84810/985612”);


    Sinon, j’ai également essayé de déclarer 2 variables avant la déclaration de la fonction pour pouvoir saisir la fraction à simplifier sans avoir à modifier le script (j’ai également crée 2 champs : nombre1 et nombre2 sur ma page)

    Code:
    var numerateur = this.getField(nombre1).value;

    Code:
    var denominateur = this.getField(nombre2).value;

    J’ai ensuite essayé de modifier la fin du script en mettant :


    Code:
    this.getField(“Text1”).value=simplify(“numerateur/denominateur”);

    Mais ça ne donne rien…

    michel c.
    Participant

    Merci beaucoup, ça fonctionne

    en réponse à : Compter et bloquer 5 cases à cocher (checkbox) #69364
    michel c.
    Participant

    Peut être en exportant la valeur 1 pour chaque case cochée puis un script verrouille en écriture chaque checkbox (this.getField(“nom_de_ta_checkbox”).readOnly=true) si la somme des valeurs exportées = 5

    en réponse à : Compter et bloquer 5 cases à cocher (checkbox) #69362
    michel c.
    Participant

    Comme ça ?Cases

    en réponse à : Affichage d’un champ de texte si un code est saisi #69356
    michel c.
    Participant

    En réalité j’utilise PDF X-Change editor qui était moins cher pour notre établissement (scolaire). Il y a une console mais je ne l’avais jamais utilisée, je vais m’y mettre…

    en réponse à : Affichage d’un champ de texte si un code est saisi #69354
    michel c.
    Participant

    C’est pour le cas de figure ou je supprimerais un des champs c* ? Ce qui empêcherait le script de tourner ?

    en réponse à : Affichage d’un champ de texte si un code est saisi #69352
    michel c.
    Participant

    ça marche très bien, merci.

    en réponse à : Affichage d’un champ de texte si un code est saisi #69350
    michel c.
    Participant

    Merci pour le lien, je m’endormirais moins bête.
    Autre question en passant : y a-t-il un moyen d’éviter les répétitions de ce style :

     

    Code:
    this.getField(“c1”).display = display.visible;
        this.getField(“c2”).display = display.visible;
        this.getField(“c3”).display = display.visible;
        this.getField(“c4”).display = display.visible;
        this.getField(“c5”).display = display.visible;
        this.getField(“c6”).display = display.visible;
        this.getField(“c7”).display = display.visible;

    En cherchant sur le forum, je viens de tester ça :

    Code:
    var i = 0;
    for (i=0 ; i<=7 ; i++){
    this.getField(“c” +i ).display = display.visible;

    Mais sans grand succès
    Test4
    Merci

    en réponse à : Affichage d’un champ de texte si un code est saisi #69348
    michel c.
    Participant

    Avec ce code ça à l’air de marcher :

    Code:
    var cSaisie = Number(this.getField(“codesaisi”).value);

    if (cSaisie == 1024) {
    app.alert({cMsg:”code ok”, nIcon:1});
        this.getField(“bravo”).display = display.visible;
    }

    else {
    app.alert({cMsg:”code faux”, nIcon:1});
        this.getField(“codesaisi”).value = 0;
        this.getField(“bravo”).display = display.hidden;
    }

    Je ne sais pas pourquoi cela ne marchait pas avec le précédent…

    en réponse à : Validation de valeur d’un champ de saisie #69280
    michel c.
    Participant

    Merci beaucoup, tout fonctionne implacablement bien maintenant.
    J’ai en plus trouvé sur un autre fil un moyen de faire ce qu’il me manquait : faire apparaitre en rouge les champs non remplis.
    Je ne connaissais rien à la programmation avant de me mettre aux formulaires pdf et je trouve cela très intéressant.
    Avez vous un ouvrage à conseiller (en français) pour que je puisse m’y mettre sérieusement ?

    en réponse à : Validation de valeur d’un champ de saisie #69278
    michel c.
    Participant

    Bonsoir, j’espère ne pas être trop pénible avec mes questions, mais je voulais savoir pourquoi ce script :

    Code:
    if (this.getField(“b1”).isBoxChecked(0)) {
        this.getField(“aa1”).display = display.visible;
    }

    else {this.getField(“aa1”).display = display.hidden;
    }

    fonctionne correctement avec une seule checkbox b1 mais pas avec les autres ?

    • Je voudrais que si la checkbox a1a est cochée ; les checkbox b1 ne puissent pas être cochées et le champ aa1 apparaisse pour masquer le texte. (ça c’est ok)
    • et sinon, si une des 4 checkbox b1 est cochée, l’avertissement soit masqué par le champ aa1
    • [/list]En gros je souhaite que l’avertissement soit visible si aucune case n’est cochée sur la ligne…
      .
      .
      Je pensais avoir tout bon mais quand ça veut pas…Merci pour votre patience

      fichier

    en réponse à : Validation de valeur d’un champ de saisie #69276
    michel c.
    Participant

    Message écrit par erreur, je viens de découvrir mon erreur après avoir relu mon message…

    en réponse à : Validation de valeur d’un champ de saisie #69275
    michel c.
    Participant

    Merci pour la réponse, étant débutant en javascript, je tatonne pas mal et j’apprend un peu plus tous les jours…
    Je n’avais pas pensé au calcul de valeur par le maximum entre la note calculée et la note proposée.
    Merci encore pour ton aide précieuse.

    en réponse à : Validation de valeur d’un champ de saisie #69273
    michel c.
    Participant

    Là j’ai un truc qui fonctionne à peu près ; il faut juste que je vois comment déclencher l’action : il ne faut pas que le document puisse être imprimé avec une valeur erronée :

    Code:
    var noteproposee= this.event.value;
    var nNotauto = Number(this.getField(“note20”).value);

        if (noteproposee < nNotauto || event.value > 20) {
    app.alert({cMsg:”La valeur saisie n’est pas conforme, merci de recommencer.”, nIcon:2});
        this.getField(“note20p”).value = Math.ceil(this.getField(“note20”).value*2)/2
        }

    en réponse à : Validation de valeur d’un champ de saisie #69272
    michel c.
    Participant

    Avec ce code la boite d’alerte s’affiche mais si on la ferme, une saisie précédente incorrecte peut rester.

    Code:
    var noteproposee= this.event.value;
    var nNotauto = Number(this.getField(“note20”).value);

    if (noteproposee < nNotauto || event.value > 20) {
    app.alert({cMsg:”La valeur saisie n’est pas conforme, merci de recommencer.”, nIcon:2});
    }

    J’aimerais qu’en cas de saisie incorrecte, une valeur calculée par ce code remplace la valeur erronée :

    Code:
    this.getField(“note20p”).value = Math.ceil(this.getField(“note20”).value*2)/2

    merci

    en réponse à : Validation de valeur d’un champ de saisie #69271
    michel c.
    Participant

    Merci  pour le conseil, j’ai supprimé le lien vers le document.
    Je n’arrive pas à faire fonctionner le script. Qu’il soit déclenchée par une action (souris vers le bas) ou dans la validation de la valeur, rien n’y fait. Quelle que soit la valeur saisie, le message d’alerte n’apparait pas. Je vais continuer à chercher.
    Merci

    en réponse à : Validation de valeur d’un champ de saisie #69268
    michel c.
    Participant

    Bonjour, effectivement c’est peut être plus simple en partageant le contenu.Ce document ne pouvant être public, voici un lien vers un document identique avec des zones masquées.
    document

    Il s’agit du champ nommé note20p ; dans ce document temporaire, j’ai utilisé un script pour le calcul d’une valeur arrondie au demi point supérieur car je n’arrivais pas à faire autrement mais il faudrait que l’examinateur puisse proposer la note qu’il souhaite et que celle ci valide les conditions suivantes :

    • valeur supérieure ou égale au champ “note20”
    • valeur inférieure ou égale à 20
    • uniquement une valeur entière ou avec 5 dixième comme valeur décimale acceptée uniquement
    • la valeur obtenue est ensuite utilisée pour le calcul du champ “note60”
    • [/list]Merci

    en réponse à : calculs à l’aide de boutons radio #69266
    michel c.
    Participant

    Je viens de réussir sans avoir à faire de script.
    http://meca05.fr/edu/documentation/files/test2.pdf

    a+

Affichage de 35 réponses de 397 à 431 (sur un total de 431)