Donnez vie à vos documents numériques !
 

michel c.

Toutes mes réponses sur les forums

Affichage de 99 réponses de 100 à 198 (sur un total de 397)
  • Auteur
    Réponses
  • en réponse à : Exécution de fonction par bouton #74228
    michel c.
    Participant

    Bonjour afin d’apporter une enième modif, j’ai un petit bout de code qui me manque :

    J’ai n boutons qui se nomment Verifier.1 ; verifier.2……verifier.n le nombre n peuf varier en fonction du type d’exercice que je mettrais en place.

    J’aimerais lancer une fonction (qui s’appele VerifFinale) pour la valeur de n maximale (le dernier bouton verifier de mon document).

    Quel code me permettrait de lancer cette fonction?

    Merci

    en réponse à : Exécution de fonction par bouton #74224
    michel c.
    Participant

    Merci beaucoup, je pense toucher au but !

    Je cherche d’éventuels bugs que je n’aurai pas vu mais ça commence à prendre forme.

     

    • Cette réponse a été modifiée le il y a 5 mois et 1 semaine par michel c..
    Attachments:
    You must be logged in to view attached files.
    en réponse à : Exécution de fonction par bouton #74219
    michel c.
    Participant

    Une question : j’aimerais proposer 3 choix de couleurs par liste déroulante (les valeurs d’export seront red, blue et green)

    Dans mon script, pour l’affichage des mauvaises réponses en couleur j’ai mis ces lignes :

    var colorErr = this.getField(“Menu.11”).value;

    this.getField(“Q.”+n+”.”+a).fillColor=color.colorErr;

    Mais ça n’a pas l’air de fonctionner.

    Merci

     

    en réponse à : Exécution de fonction par bouton #74218
    michel c.
    Participant

    Je viens de trouver ! Certains champs contenaient encore le code Default(); en action de validation et/ou calcul.

    en réponse à : Exécution de fonction par bouton #74216
    michel c.
    Participant

    J’ai réussi grâce à vous à corriger certains bugs (j’avais mal lu la réponse de BB du 8 mai 2024 à 19:09)

    J’ai un autre souci (j’espère que c’est le dernier) : mes menus déroulants se remettent sur le 1er item tout le temps (alors que je voudrais que ce soit le cas uniquement si je clique sur Raz ou sur Default).

    J’ai passé mes scripts en revue et je ne vois pas trop ou ça cloche. J’ai désactivé pour voir le code this.getField(nomChamp).value=this.getField(nomChamp).getItemAt(0,false); à la ligne 8 du script Default pour voir mais le problème n’est pas là…

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Exécution de fonction par bouton #74214
    michel c.
    Participant

    Bonjour, j’ai peut être une idée mais j’ai besoin d’un bout de code.

    J’ai des champs qui se nomment par exemple “Question.a.b” pour lesquels les nombres a et b sont compris entre 1 et un nombre qui varient en fonction du document.

    Le nombre a détermine le nombre de question dans le document et le nombre b le nombre de “sous-question” pour chacune d’entre elles.

    Comment faire pour extraire ces nombres dans 2 variables.

    Par exemple si

    • à la question 1 j’ai 2 champs qui se nomment”Question.1.0″ et “Question.1.1”
    • à la 2ème j’ai 3 champs qui se nomment”Question.2.0″ ;  “Question.2.1” et “Question.2.2”
    • à la 3ème j’ai 3 champs qui se nomment”Question.3.0″ ;  “Question.3.1” et “Question.3.2”

    il faudrait que je puisse faire

    • une boucle for pour la question 1 ou la variable b est comprise entre 0 et 1
    • une boucle for pour la question 2 ou la variable b est comprise entre 0 et 2
    • une boucle for pour la question 3 ou la variable b est comprise entre 0 et 2

    Le nombre de boucles dépendra de la variable a qui détermine le nombre de questions

    Merci

     

    en réponse à : Exécution de fonction par bouton #74207
    michel c.
    Participant

    Effectivement, je viens de vérifier avec adobe Acrobat DC et ça fonctionne.

    ça ne fonctionne pas avec PDF XChange editor (logiciel pour lequel nous avons la licence…)

    Je vais essayer de voir s’il existe un autre moyen d’arriver à mes fins…

    Erreur

    • Cette réponse a été modifiée le il y a 5 mois et 1 semaine par michel c..
    en réponse à : Exécution de fonction par bouton #74202
    michel c.
    Participant

    Bonjour, ça ne fonctionne pas. Aucun message d’erreur sur la console mais rien ne se passe.

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Exécution de fonction par bouton #74197
    michel c.
    Participant

    Merci, je viens de faire ces modifications. Maintenant j’ai un souci avec ma fonction Raz.

    En gros, je souhaite

    • que tous les champs “R.” soient cachés

    •  que tous les autres champs et boutons dont le 1er indice est supérieur à 1 soient cachés aussi

    • que la couleur de fond de tous les champs “Q.” soit transparent

    Voici mon script :

    function Raz() {
    for (var i=0; i<this.numFields; i++) {
    var nomChamp=this.getNthFieldName(i);
    this.getField("Erreurs").value = 0;
    this.getField("Menu.5").value = 0;

    if (nomChamp.indexOf("TQ.")==0) {this.getField("TQ.").display=display.hidden;}
    if (nomChamp.indexOf("Question.")==0) {this.getField("Question.").display=display.hidden;
    this.getField("Question").fillColor=color.transparent;}
    if (nomChamp.indexOf("Aide.")==0) {this.getField("Aide.").display=display.hidden;}
    if (nomChamp.indexOf("Verifier.")==0) {this.getField("Verifier.").display=display.hidden;}
    if (nomChamp.indexOf("Recommencer.")==0) {this.getField("Recommencer.").display=display.hidden;}
    if (nomChamp.indexOf("R.")==0) {this.getField("R.").display=display.hidden;}

    if (nomChamp.indexOf("TQ.1")==0) {this.getField("TQ.1").display=display.visible;}
    if (nomChamp.indexOf("Question.1")==0) {this.getField("Question.1").display=display.visible;}
    if (nomChamp.indexOf("Aide.1")==0) {this.getField("Aide.1").display=display.visible;}
    if (nomChamp.indexOf("Verifier.1")==0) {this.getField("Verifier.1").display=display.visible;}
    if (nomChamp.indexOf("Recommencer.1")==0) {this.getField("Recommencer.1").display=display.visible;}
    }
    }

    Je ne comprend pas trop pourquoi  ça ne fonctionne pas…

    • Cette réponse a été modifiée le il y a 5 mois et 1 semaine par michel c..
    Attachments:
    You must be logged in to view attached files.
    en réponse à : Exécution de fonction par bouton #74191
    michel c.
    Participant

    Bonjour et merci, ça fonctionne. Pour exclure certains boutons et champs de la fonction EditReps j’ai modifié le script comme ceci :

    for (var i=0; i<this.numFields; i++) {
    var nomChamp=this.getNthFieldName(i);
    if (this.getField("Menu.5").value!="Off") {
    this.getField("R.").display=display.visible;
    if (nomChamp.indexOf("Q.")!=0) {this.getField(nomChamp).readonly=false;}
    }
    else {
    this.getField(nomChamp).readonly=true;
    if (nomChamp.substring(0, 4)=="Menu") {this.getField("Menu.").readonly=false;}
    if (nomChamp.substring(0, 1)=="Q") {this.getField("Q.").readonly=false;}
    if (nomChamp.substring(0, 1)=="R") {this.getField("R.").display=display.hidden;}
    }
    }}

    Je ne sais pas si c’est la meilleure méthode mais ça marche.

    Sinon je me rend compte que j’ai un souci en cliquant sur Raz : s’il n’y a aucune annotation sur le document, la console renvoie l’erreur :

    Doc:Open:6: TypeError: annots is null

    Ce que je ne comprend pas d’ailleurs car dans la fonction EffAnnots il y a cette ligne : if (this.getAnnots != null) qui devrait éviter ce message d’erreur.

    • Cette réponse a été modifiée le il y a 5 mois et 2 semaines par michel c..
    Attachments:
    You must be logged in to view attached files.
    en réponse à : Exécution de fonction par bouton #74179
    michel c.
    Participant

    Bonjour, je viens d’essayer mais ça ne fonctionne pas. Je n’ai aucune erreur à la console mais les scripts font rien…

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Champ texte grisé #74020
    michel c.
    Participant

    Voila, je ne sais pas si c’est ce que tu voulais.

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Propriété d’un champ #73973
    michel c.
    Participant

    Bonjour et merci pour la proposition.

    J’ai testé et ce script en le mettant en script de document pour les champs question et les champs réponse.

    Curieusement il fonctionne pour les champs réponse mais ne fonctionne pas pour les champs question (sans que la console ne renvoie d’erreur).

    Pour l’indice i placé devant question, c’est lié au script que tu m’as proposé il y a quelques jours (reglageChamps) que j’ai dupliqué pour qu’il y ait un script par page.

    Pour la numérotation des champs, je trouvais plus simple comme ça plutôt qu’avoir 2 indices en fin de nom de champ

    Merci

    en réponse à : Propriété d’un champ #73969
    michel c.
    Participant

    Je viens de réussir :

    function CoulQ() {

    var Coul=this.getField("Menu.3").value;

    if (Coul=="Aucune") {this.getField("question.").fillColor = color.transparent;
    for (var i=2 ; i<6 ; i++) {this.getField(i+"question.").fillColor = color.transparent;}
    }

    else if (Coul=="Jaune") {this.getField("question.").fillColor = color.yellow;
    for (var i=2 ; i<6 ; i++) {this.getField(i+"question.").fillColor = color.yellow;}
    }
    else if (Coul=="Vert") {this.getField("question.").fillColor = color.green;
    for (var i=2 ; i<6 ; i++) {this.getField(i+"question.").fillColor = color.green;}
    }

    else if (Coul=="Bleu") {this.getField("question.").fillColor = color.blue;
    for (var i=2 ; i<6 ; i++) {this.getField(i+"question.").fillColor = color.blue;}
    }

    else if (Coul=="Rouge") {this.getField("question.").fillColor = color.red;
    for (var i=2 ; i<6 ; i++) {this.getField(i+"question.").fillColor = color.red;}
    }

    }

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Propriété d’un champ #73967
    michel c.
    Participant

    Merci, j’avais pensé à faire cela mais je craignais que cela interfère avec un autre script (que BB m’a proposé dans son post du 6 février 2024 à 17:51) qui permet de spécifier la hauteur d’un champ par une liste déroulante et de décaler les positions des champs qui sont en dessous.

    Comme ce script ne fonctionne me semble-t-il que sur une page, j’ai dupliqué ce script de document pour qu’il n’y en ait qu’un par page.

    Mais je vais quand même essayer ça demain.

    en réponse à : Propriété d’un champ #73962
    michel c.
    Participant

    Merci pour la réponse, je viens de tester mais j’ai toujours la même erreur dans ce script. Cela concerne les conditions je pense :

    else if (Coul==”Bleu”) {
    for (var i=0; i<this.numFields; i++) {
    if (this.getNthFieldName(i).indexOf(“question.”)==0) {this.getField(“question.”+i).fillColor = color.blue;}
    }
    }

    L’erreur renvoyée : Doc:Open:25: TypeError: this.getField(...) is null

    Un problème je pense sur la numérotation des champs avec la variable i qui doit fournir une valeur hors n° de mes champs question.

    Merci

    • Cette réponse a été modifiée le il y a 8 mois et 1 semaine par michel c..
    Attachments:
    You must be logged in to view attached files.
    en réponse à : Propriété d’un champ #73957
    michel c.
    Participant

    Merci pour la réponse. Je viens essayer de mettre en application cela mais j’ai une erreur (dans le script de document CoulQ) : ce script devrait me permettre de choisir la couleur des champs question sur la 1ère page.

    function CoulQ() {

    var Coul=this.getField(“Menu.3″).value;

    if (Coul==”Aucune”) {
    for (var i=0; i<this.numFields; i++) {
    if (this.getNthFieldName(i).indexOf(“question.”)==0) {this.getField(“question.”+i).fillColor = color.transparent;}
    }
    }

    if (Coul==”Jaune”) {
    for (var i=0; i<this.numFields; i++) {
    if (this.getNthFieldName(i).indexOf(“question.”)==0) {this.getField(“question.”+i).fillColor = color.yellow;}
    }
    }

    if (Coul==”Vert”) {
    for (var i=0; i<this.numFields; i++) {
    if (this.getNthFieldName(i).indexOf(“question.”)==0) {this.getField(“question.”+i).fillColor = color.green;}
    }
    }

    if (Coul==”Bleu”) {
    for (var i=0; i<this.numFields; i++) {
    if (this.getNthFieldName(i).indexOf(“question.”)==0) {this.getField(“question.”+i).fillColor = color.blue;}
    }
    }

    if (Coul==”Rouge”) {
    for (var i=0; i<this.numFields; i++) {
    if (this.getNthFieldName(i).indexOf(“question.”)==0) {this.getField(“question.”+i).fillColor = color.red;}
    }
    }

    }

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Propriété d’un champ #73951
    michel c.
    Participant

    Merci beaucoup.

    Encore une petite question : comment modifier cette ligne :

    for (var i=0; i<this.numFields; i++) { // numFields = Nombre de champs dans le document

    Pour obtenir le nombre de champs dont le préfixe (les 3 premiers caractères) serait par exemple “ABC”

     

    Merci

    en réponse à : Propriété d’un champ #73946
    michel c.
    Participant

    Super, merci beaucoup.

    Je suis en train de me faire un document avec des petits bouts de codes comme celui-ci qui me bloquent souvent.

    Je m’aperçois que je reste cantonné à ce que je maîtrise et du coup je progresse peu.

    Dans cette ligne, je ne comprend pas bien la condition: if (this.getNthFieldName(i).indexOf("question.")==0) indMax++;

    On incrémente la valeur indMax si …. et je ne comprend pas la suite….

    • Cette réponse a été modifiée le il y a 8 mois et 1 semaine par michel c..
    en réponse à : Propriété d’un champ #73943
    michel c.
    Participant

    Je vais apporter une modification à ce document (la modif ne concerne pas le script que tu propose mais un autre que je vais faire pour apporter une fonctionnalité supplémentaire) et il y a un truc que je n’arrive pas à faire.

    Dans le document il y a les champs nommés question.0 à question.9 et la même chose pour les champs réponses.

    Mais il pourrait y avoir plus ou moins de champs.

    J’aimerais faire une boucle for mais avant j’aimerais intégrer dans une variable l’indice le plus élevé de ces champs.

    for (var a=0 ; a<=indMax ; a++) ….

    Comment faire pour avoir l’indice max?

    J’espère que ma question est assez claire?

    Merci

    • Cette réponse a été modifiée le il y a 8 mois et 1 semaine par michel c..
    en réponse à : Propriété d’un champ #73937
    michel c.
    Participant

    Je vais étudier ce script, j’ai fais beaucoup de recherches sur la fonction Rect pour apprendre comment spécifier les dimensions d’un champ sans comprendre pour le moment.

    Je vais revenir poster quelques questions une fois que j’aurais cherché déjà à comprendre par moi-même.

    En tout cas merci beaucoup pour ce script, tu n’imagines pas le temps que cela va me faire gagner pour l’édition de mes documents.

    en réponse à : Propriété d’un champ #73926
    michel c.
    Participant

    Si les champs du dessus on trop de lignes, ceux du bas sont supprimés.

    C’est pour me permettre de gagner du temps lors de la mise en page de documents qui sont standards. Supprimer des champs est rapide, par contre positionner en y des champs, les dimensionner pour optimiser l’espace entre les champs est assez long.

    J’ai déjà réussi à faire en sorte de mettre un champ en monoligne ou multiligne en fonction du nombre de lignes spécifié dans la liste déroulante en vis à vis.

    Demain j’essayerai de dimensionner les champs en fonction du nombre de ligne spécifié dans la liste déroulante.

    • Cette réponse a été modifiée le il y a 8 mois et 2 semaines par michel c..
    • Cette réponse a été modifiée le il y a 8 mois et 2 semaines par michel c..
    • Cette réponse a été modifiée le il y a 8 mois et 2 semaines par michel c..
    Attachments:
    You must be logged in to view attached files.
    en réponse à : Propriété d’un champ #73920
    michel c.
    Participant

    Je vais chercher de mon côté, l’algorithme commence à  s’organiser dans ma tête.

    Je remet ici la pièce jointe, je viens de faire une petite modif sur le fichier.

    • Cette réponse a été modifiée le il y a 8 mois et 2 semaines par michel c..
    Attachments:
    You must be logged in to view attached files.
    en réponse à : Propriété d’un champ #73917
    michel c.
    Participant

    Sinon, j’ai une autre solution pour arriver à mes fins c’est de mettre en vis à vis de chaque champ texte une liste déroulante dans laquelle je spécifierais le nombre de lignes que je veux dans mon champ. Si ça ne rentre pas, je met une ligne supplémentaire.

    L’idée c’est de créer un fichier de base qui me permet de créer plus rapidement un document avec question (champ jaune) et réponse en dessous (champ vert)

    Pour arriver à coder cette partie, j’ai besoin de connaître le bout de code qui permet d’indiquer si c’est mono-ligne ou multi-ligne et le bout de code pour donner la hauteur de ligne.

    Je vais chercher un peu mais je pense y arriver.

    Ensuite la partie plus complexe sera de décaler automatiquement les champs en dessous en fonction de la hauteur du champ au dessus. Mais je verrai ça dans un 2ème temps. Je pense qu’en connaissant le bout de code permettant d’indiquer la position en y d’un champ j’y arriverai aussi.

     

    en réponse à : Propriété d’un champ #73914
    michel c.
    Participant

    Oui, je me demandais si ça pouvais marcher à partir d’un bouton en désactivant le code permettant de créer une nouvelle page.

    Concernant le boulot que tu as fait, je rejoins Merlin, même si je n’arrive pas à me rendre compte de la difficulté. Il y a tant de choses que je ne maitrise pas dans ce code….

    en réponse à : Propriété d’un champ #73897
    michel c.
    Participant

    Merci, j’ai testé, il y a une erreur à la ligne 23 : Field:Mouse Up:23: ReferenceError: ajoutPage is not defined

    J’ai essayé de remplacer ajoutPage(p, aRect[2], aRect[1]); par : this.newPage(p, aRect[2], aRect[1]);

    J’ai ensuite une erreur à la ligne 33 : Field:Mouse Up:33: TypeError: f is null

    Et là, je ne comprend pas car la variable f est bien déclarée à la ligne 27.

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Propriété d’un champ #73865
    michel c.
    Participant

    J’ai placé ce script en script de document au départ, dans une fonction que j’ai appelé Redim et que j’appelle via un bouton par la commande Redim(); et ça ne fonctionne pas.

    Sinon, je peux exécuter des scripts lors d’actions :

    • Avant la fermeture du document
    • Avant la sauvegarde du document
    • Avant l’impression
    • Après l’impression

    Je viens d’essayer de le placer avant la sauvegarde et j’ai un message d’erreur lors de la sauvegarde : Doc:WillSave:44: TypeError: f is null

    Le logiciel que j’utilise est PDF XChange editor plus

    • Cette réponse a été modifiée le il y a 8 mois et 2 semaines par michel c..
    • Cette réponse a été modifiée le il y a 8 mois et 2 semaines par michel c..
    Attachments:
    You must be logged in to view attached files.
    en réponse à : Propriété d’un champ #73861
    michel c.
    Participant

    De mon coté, le script fonctionne depuis la console, mais je n’arrive pas à le faire tourner à partir d’un bouton.

    Erreur : Doc:Open:46: TypeError: f is null

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Propriété d’un champ #73851
    michel c.
    Participant

    Je ne suis pas sous adobe et je n’ai pas encore trouvé comment ouvrir les fichiers attachés?

    Est il possible d’exécuter ce script grâce à un bouton?

    Merci

     

    en réponse à : Propriété d’un champ #73848
    michel c.
    Participant

    Bonjour, de mon côté lorsque j’exécute ce script depuis la console, j’ai une erreur :

    Console:Exec:21: TypeError: lesMots.replace is not a function

    en réponse à : Propriété d’un champ #73839
    michel c.
    Participant

    Merci, je cherche une autre solution.

    en réponse à : Carcatère présent dans une chaine #73836
    michel c.
    Participant

    Merci beaucoup, ça fonctionne. Plus que quelques bugs à corriger et ce formulaire sera opérationnel.

    en réponse à : Carcatère présent dans une chaine #73814
    michel c.
    Participant

    Merci, j’avais essayé avec indexOf et j’avais une erreur. Et là aussi j’ai une erreur : “Doc:Open:7: ReferenceError: str is not defined”

    Je cherche plusieurs manières pour y arriver mais rien ne marche ….

    La partie du code en question est dans le script de document show2 ; entre les lignes 5 et 16

    J’avoue que je sèche un peu là….Je sais que le code est bon. Mais il y a un bug ou un truc qui ne fonctionne pas : peut être parce qu’un chrono tourne en même temps… (Je précise : Je ne suis pas sous adobe mais sous pdf change Editor). Sous adobe, j’ai le même problème.

    Merci

    Le fichier

    en réponse à : Formule trigonométrie #73800
    michel c.
    Participant

    C’est cela que tu veux faire ?

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Condition sur premier caractère #73779
    michel c.
    Participant

    J’ai réussi en modifiant la fin des scripts se trouvant affectés aux champs num et den :

    if (this.getField("numOk").value <0) {var Numerat="-"+decomposition(this.getField("numOk").value).toString().replace(/[,]/g," x ");} if (this.getField("numOk").value >0) {var Numerat=decomposition(this.getField("numOk").value).toString().replace(/[,]/g," x ");}

    if (Numerat.length == 1) {this.getField("num").value = "1 × "+Numerat;}
    if (Numerat.length != 1) {this.getField("num").value = Numerat;}

    et

    if (this.getField("denOk").value <0) {var Denom="-"+decomposition(this.getField("denOk").value).toString().replace(/[,]/g," x ");} if (this.getField("denOk").value >0) {var Denom=decomposition(this.getField("denOk").value).toString().replace(/[,]/g," x ");}

    if (Denom.length == 1) {this.getField("den").value = "1 × "+Denom;}
    if (Denom.length != 1) {this.getField("den").value = Denom;}

    Ainsi s’il n’y a qu’un seul caractère la valeur du champ sera affectée du préfixe “1 × ”

    Et ça marche

     

    • Cette réponse a été modifiée le il y a 9 mois et 2 semaines par michel c..
    en réponse à : Condition sur premier caractère #73778
    michel c.
    Participant

    En fait, ça ne fonctionne pas quand les champs num et den ne comportent qu’un seul caractère.

    Je suis en train de chercher une solution.

    en réponse à : Condition sur premier caractère #73768
    michel c.
    Participant

    Ça a l’air de marcher. Merci beaucoup

    en réponse à : Calcul IMC #73767
    michel c.
    Participant

    J’ai été devancé. Bon réveillon à tous.

    en réponse à : Calcul IMC #73758
    michel c.
    Participant

    Voila le script :

    var m = this.getField("masse").value;
    var t = this.getField("taille").value;
    var imc = m/(t*t);
    this.getField("imc").value = imc;

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Affichage aléatoire #73737
    michel c.
    Participant

    Je viens de constater qu’il y a encore des doublons pour les réponses sous forme de liste. De plus lors de la création de la liste par ordre alphanumérique, est il possible d’avoir le 10 après le 9 et non entre le 1 et le 2 ou c’est trop complexe?

    Merci

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Affichage aléatoire #73733
    michel c.
    Participant

    Merci beaucoup, c’est nickel. Je suis en train d’apporter quelques améliorations, mais j’ai déjà une très bonne base grâce à toi.

    Peux tu m’expliquer les quelques lignes qui permettent d’afficher une question aléatoirement mais avec une plus grande fréquence pour les réponses erronées.

    var aleatoire=Math.floor(Math.random()*nb);
    var laQuestion="-";
    while (reponses[aleatoire][1]>moyenne || laQuestion=="-") {
    var aleatoire=Math.floor(Math.random()*nb);
    var laQuestion=lesReponses[aleatoire][0];
    var laReponse=lesReponses[aleatoire][1];
    }

    Je voudrais savoir ce qui se passe si l’utilisateur ne répond pas et affiche une nouvelle question. Est ce que la question qu’il a sautée reviendra plus fréquemment également.

    Merci

     

    • Cette réponse a été modifiée le il y a 10 mois par michel c..
    • Cette réponse a été modifiée le il y a 10 mois par michel c..
    Attachments:
    You must be logged in to view attached files.
    en réponse à : Affichage aléatoire #73729
    michel c.
    Participant

    Pour les réponses de type champ texte, je crois avoir réussi en modifiant le script du bouton valider.

    Par contre, lorsque l’on répond par la liste déroulante, cela ne marche pas, les valeurs exportées dans la liste ne sont pas les bonnes et je ne sais pas pourquoi.

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Affichage aléatoire #73727
    michel c.
    Participant

    Merci pour cette version, je n’y serais pas arrivé tout seul.

    J’ai modifié le document pour permettre 2 types de réponses : Champ texte ou liste déroulante

    et dans chaque cas, un problème survient :

    Pour la liste de réponse, est il possible d’éliminer les doublons dans la liste de réponse et de classer les éléments de la liste par ordre alphanumérique ?

    Pour les réponses type Champ Texte, comme la vérification est en action de frappe, si la réponse saisie contient plusieurs caractères, cela va afficher le message d’erreur dès la frappe du 1er caractère.

    Dernier souci, j’ai remarqué que lorsque je génère les questions, cela fonctionne seulement si je sauvegarde, ferme puis ouvre le document.

    J’essaye de trouver des solutions pour les 2 premiers problèmes. Pour le dernier, je ne pense pas y arriver.

    Merci

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Affichage aléatoire #73719
    michel c.
    Participant

    Merci, j’ai un message d’erreur à la console lors du clic demarrer : à la ligne 15 : Field:Mouse Up:15: TypeError: reponses[aleatoire] is undefined

    Je ne comprend pas pourquoi d’ailleurs, la variable aleatoire est déclarée à la ligne 13

    Je cherche comment y remedier

    • Cette réponse a été modifiée le il y a 10 mois par michel c..
    en réponse à : Affichage aléatoire #73710
    michel c.
    Participant

    Merci, j’ai essayé de modifier ce que tu propose pour que les questions/réponses soient éditables dans un champ texte (question et réponse sont séparées par un “/”).

    Mais je n’arrive pas à faire apparaître aléatoirement la question ni à avoir les valeurs exportées dans les réponses.

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Décomposition en facteurs premiers #73702
    michel c.
    Participant

    Merci

    en réponse à : Copier presse papier #73638
    michel c.
    Participant

    OK merci.

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

    C’est curieux, ça marche dans ton fichier mais quand j’intègre ce script dans mon fichier d’origine ça ne fonctionne pas)

    Il faut cliquer sur démarrer, cela génère une équation

    Ensuite on clique sur vérification 1 (Je n’ai pas intégré de vérification intermédiaire donc peu importe ce que l’on a saisi)

    L’aide 4 affiche la décomposition en facteur de nombres premiers

    J’ai intégré la modification que tu proposes sur le bouton vérification 2b

    Par exemple si j’ai comme décomposition :

    Décomposition du numérateur : -2 x 3 x 5
    Décomposition du dénominateur : 5 x 7

    et que j’inscris comme réponse 6/-7

    NB : j’ai rajouté un affichage sur la console pour comparer ma réponse avec celle qui est exacte → console.println("RepUser="+RepUser+" ; Reponse="+Reponse)

    Quand je clique sur vérification 2b (là ou se trouve le script) :

    Cela m’indique que mon résultat est faux (Console → RepUser=6/-7 ; Reponse=-6/7)

    Si j’inscris alors -6/7

    Cela m’indique aussi que mon résultat est faux alors que ma réponse est la même que la réponse attendue (Console → RepUser=-6/7 ; Reponse=-6/7)

    Lien

    en réponse à : Boucle while #73585
    michel c.
    Participant

    Merci, 2 questions cependant : pourquoi appelle-t-on 2 fois la fonction ?

    nbAleatoires();
    while (b*f-e*c<=0 || a*f-c*d<=0) nbAleatoires();

    En créant une fonction on peut se passer de déclarer les variables avec la valeur 0 ?

    • Cette réponse a été modifiée le il y a 10 mois et 4 semaines par michel c..
    • Cette réponse a été modifiée le il y a 10 mois et 4 semaines par michel c..
    en réponse à : Réduction fraction #73580
    michel c.
    Participant

    J’ai trouvé ceci comme solution, je ne sais pas si c’est très académique mais ça a l’air de marcher.

    function simplify(str) {

    var result="";
    var data=str.split("/");
    var numOne=Number(data[0]);
    var numTwo=Number(data[1]);
    for (var i=Math.max(numOne,numTwo); i>1; i--) {
    if (numOne%i==0 && numTwo%i==0) {
    numOne/=i;
    numTwo/=i;}
    }
    if (numTwo===1) result=numOne.toString();
    else result=numOne.toString()+"/"+numTwo.toString();
    return result;
    }
    var Reponse = "";
    var Reponse1 = "";
    var Reponse2 = "";
    var Numerateur = this.getField ("RepEt.2b").value;
    var Denominateur = this.getField ("RepEt.1b").value;
    if (Numerateur>=0 & Denominateur>=0) {Reponse = simplify (Numerateur+"/"+Denominateur);}
    if (Numerateur<0 & Denominateur<0) {Numerateur = Math.abs(Numerateur);Denominateur = Math.abs(Denominateur);
    Reponse1 = simplify (Numerateur+"/"+Denominateur);
    Reponse2 = "-"+simplify (Numerateur+"/-"+Denominateur);
    }

    if (Numerateur<0 & Denominateur>=0 | Numerateur>=0 & Denominateur<0) {Numerateur = Math.abs(Numerateur);Denominateur = Math.abs(Denominateur);
    Reponse1 = "-"+simplify (Numerateur+"/"+Denominateur);
    Reponse2 = simplify (Numerateur+"/-"+Denominateur);
    }

    var RepUser = (this.getField("RepEt.3").value);

    if (RepUser == Reponse | RepUser == Reponse1 | RepUser == Reponse2) {app.alert({cMsg:"Bravo.", nIcon:2});}
    if (Reponse != RepUser & Reponse1!= RepUser & Reponse2!= RepUser) {app.alert({cMsg:"La fraction est insufisament simplifiée, ou fausse.", nIcon:2});}

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Réduction fraction #73577
    michel c.
    Participant

    J’ai essayé ceci mais ça ne fonctionne pas.

    var RepUser = this.getField("RepEt.3").valueAsString;
    var RepUserSplit = RepUser.split("/");
    if (RepUserSplit[0] >=0 && RepUserSplit[1]>=0) var ReponseA = simplify (this.getField ("RepEt.2b"). value+"/"+this.getField ("RepEt.1b"). value);
    if (RepUserSplit[0] <0 | RepUserSplit[1]<0) {var ReponseB = simplify ("-"+this.getField ("RepEt.2b"). value+"/"+this.getField ("RepEt.1b"). value);
    var ReponseC = simplify (this.getField ("RepEt.2b"). value+"/-"+this.getField ("RepEt.1b"). value);

    }

    if (ReponseA == RepUser | ReponseB == RepUser | ReponseC == RepUser) {app.alert({cMsg:"Bravo.", nIcon:2});}
    if (Reponse != RepUser) {app.alert({cMsg:"La fraction est insufisament simplifiée, ou fausse.", nIcon:2});}

    Je cherche encore.

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Réduction fraction #73575
    michel c.
    Participant

    Bonjour, je relance ce fil car j’ai des cas de figure qui me posent problème avec les nombres négatifs.

    Si la bonne réponse est -1/3 ; il faudrait pouvoir accepter comme réponse 1/-3

    J’ai une idée en tête avec une condition if et la création d’une table avec / comme séparateur. Je suis en train d’essayer…

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Raccourcir une condition #73572
    michel c.
    Participant

    Merci pour toutes ces infos

    en réponse à : Raccourcir une condition #73569
    michel c.
    Participant

    Merci beaucoup, tout a l’air de fonctionner ! et j’aurais appris encore des trucs.

    Juste pour avoir plus de détails :

    replace(/\s+/g,””) On supprime tous les espaces. → quelle est le rôle de /, celui de \s celui de +/g…

    Sinon, je ne comprend pas encore bien les tables. Si l’on avait 2*45×8×9 comme valeur saisie dans le champs RepUser2, cette ligne de code :

    var RepUser2=this.getField(“RepUser2″).valueAsString.replace(/\s+/g,””).replace(/[x]/,”*”).split(“*”);

    Transformerait la variable RepUser2 en table qui serait composée de 4 éléments que l’on pourrait rappeler ainsi :

    → RepUser2[0]

    → RepUser2[1]

    → RepUser2[2]

    → RepUser2[3]

    C’est bien ça ?

    en réponse à : Raccourcir une condition #73556
    michel c.
    Participant

    La variable diff est affectée de la valeur du champ Menu.5 ; il s’agit du niveau de difficulté, qui va modifier le type d’équation généré.

    lorsque diff == 6, l’équation peut avoir 2 types :

    • c/(ax+b) =d ; quand la variable OpAl == 1 (dans le script équation)
    • c/(ax-b) =d ; quand la variable OpAl == 2 (dans le script équation)
    • la variable OpAl peut prendre la valeur 1 ou 2 de façon aléatoire et les variables a, b, c et d sont générées aléatoirement également.

    Mon problème c’est que les scripts (affectés aux champs num et den) qui permettent la décomposition des nombres en produit de facteurs premiers font bugger le programme lorsque le numérateur ou le dénominateur sont = 0.

    Je voudrais donc éviter la valeur 0 pour le numérateur et le dénominateur lorsque les variables a, b, c et d sont générées.

    Concrètement,

    • quand OpAl ==1, ma solution de l’équation est x=(c-bd)/ad donc dans ce cas, il ne faut pas que c-b*d =0
    • quand OpAl ==2, ma solution de l’équation est x=(c+bd)/ad donc dans ce cas, il ne faut pas que c+b*d =0

    D’ou ce code :

    if (OpAl == 1) {var OP = "+";
    while (c-b*d == 0) {
    var a=Math.round(Math.random()*7)+2;
    var b=Math.round(Math.random()*9)+1;
    var c=Math.round(Math.random()*8)+1;
    var d=Math.round(Math.random()*9)+1;
    }
    this.getField("NB.1").value = a;
    this.getField("NB.2").value = b;
    this.getField("NB.3").value = c;
    this.getField("NB.4").value = d;

    this.getField("help.0").value = "→ Multiplier l'équation par ("+a+VarEq+"+"+b+") dans un premier temps.";
    console.println("→ Multiplier l'équation par ("+a+VarEq+"+"+b+") dans un premier temps.");}
    if (OpAl == 2) {var OP = "-";
    while (c+b*d == 0) {
    var a=Math.round(Math.random()*7)+2;
    var b=Math.round(Math.random()*9)+1;
    var c=Math.round(Math.random()*8)+1;
    var d=Math.round(Math.random()*9)+1;
    }
    this.getField("NB.1").value = a;
    this.getField("NB.2").value = b;
    this.getField("NB.3").value = c;
    this.getField("NB.4").value = d;

    Qui me permettrait pensais-je d’éviter ces valeurs lors de la génération des variables aléatoires, mais lorsque je teste, j’ai ce message d’erreur : La valeur entrée ne correspond pas au format du champ.

    J’ai essayé de mettre uniquement mon problème dans ce fichier (je pense que ça vient de là).

    • Cette réponse a été modifiée le il y a 11 mois par michel c..
    • Cette réponse a été modifiée le il y a 11 mois par michel c..
    • Cette réponse a été modifiée le il y a 11 mois par michel c..
    Attachments:
    You must be logged in to view attached files.
    en réponse à : Raccourcir une condition #73546
    michel c.
    Participant

    Bonjour, pas testé cette dernière version mais la précédente marchait bien il me semble (j’y ai apporté quelques modifs pour l’adapter à ce que je souhaitais).

    Je met le fichier en pj (attention, c’est une usine à gaz comme à mon habitude)

    Le script est affecté au bouton vérifier de gauche (le 1er) pour le niveau de difficulté 5  → if (diff ==5)

    Sinon, je reconnais que je ne comprend pas cette ligne : var RepUser2=this.getField("RepUser2").valueAsString.replace(/\s+/g,"").replace(/[x]/,"*").split("*");

    Et celle-ci :

    if (RepUser2.length==2 && ((vC2==RepUser2[0] &&
    vC3==RepUser2[1]) || (vC2==RepUser2[1] && vC3==RepUser2[0])))
    OK++;

    Merci

    Equations

    J’ai un autre souci avec ce fichier, pour le niveau de difficulté 6 et le script de document equation.

    Si je remplace la condition if (diff ==6 ) par ce bout de script

    if (diff == 6) {
    this.getField("et.1").value = "Etape 1 : indiquer la valeur de "+VarEq+" sous forme de fraction sans la réduire pour l'instant.";
    //declaration de l'équation aléatoirement
    var OpAl=Math.round(Math.random()*1)+1;
    this.getField("OP").value = OpAl;

    //declaration aléatoire de l'opérateur après terme x & affichage de l'équation
    //++++++++++++++
    if (OpAl == 1) {var OP = "+";
    while (c-b*d == 0) {
    var a=Math.round(Math.random()*7)+2;
    var b=Math.round(Math.random()*9)+1;
    var c=Math.round(Math.random()*8)+1;
    var d=Math.round(Math.random()*9)+1;
    }
    this.getField("NB.1").value = a;
    this.getField("NB.2").value = b;
    this.getField("NB.3").value = c;
    this.getField("NB.4").value = d;

    this.getField("help.0").value = "→ Multiplier l'équation par ("+a+VarEq+"+"+b+") dans un premier temps.";
    console.println("→ Multiplier l'équation par ("+a+VarEq+"+"+b+") dans un premier temps.");}
    if (OpAl == 2) {var OP = "-";
    while (c+b*d == 0) {
    var a=Math.round(Math.random()*7)+2;
    var b=Math.round(Math.random()*9)+1;
    var c=Math.round(Math.random()*8)+1;
    var d=Math.round(Math.random()*9)+1;
    }
    this.getField("NB.1").value = a;
    this.getField("NB.2").value = b;
    this.getField("NB.3").value = c;
    this.getField("NB.4").value = d;

    this.getField("help.0").value = "→ Multiplier l'équation par ("+a+VarEq+"-"+b+") dans un premier temps.";
    console.println("→ Multiplier l'équation par ("+a+VarEq+"+"+b+") dans un premier temps.");}
    this.getField("eqET0").value = c+"/("+a+VarEq+OP+b+") = "+d;
    this.getField("help.1").value = "→ Diviser l'équation par "+d+" puis isoler "+VarEq;
    this.getField("RepEt.1").readonly = false;
    this.getField("RepEt.2").readonly = false;
    this.getField("eqET0").display = display.visible;
    this.getField("RepEt.1").display = display.visible;
    this.getField("RepEt.2").display = display.visible;
    this.getField("verif.0").display = display.visible;
    }

    Cela me génère une erreur : La valeur entrée ne correspond pas au format du champ.

    Merci

    • Cette réponse a été modifiée le il y a 11 mois par michel c..
    • Cette réponse a été modifiée le il y a 11 mois par michel c..
    en réponse à : Raccourcir une condition #73539
    michel c.
    Participant

    Oui, ça a marché.

    Merci

    en réponse à : Raccourcir une condition #73536
    michel c.
    Participant

    Finalement, je ne comprend pas pourquoi ça ne marche plus. En fait toutes les réponses sont validées, exactes ou pas ….

     

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Envoi d’un formulaire à l’aide d’un bouton #73514
    michel c.
    Participant

    Je pense qu’il y a une faute de frappe, ou bien une scie que je ne connais pas (scie à anneaux)…

    en réponse à : Nombre aléatoire compris entre 2 valeurs #73432
    michel c.
    Participant

    Super. merci beaucoup

    en réponse à : Nombre aléatoire compris entre 2 valeurs #73424
    michel c.
    Participant

    Merci, ça fonctionne pour générer des nombres aléatoirement mais certains sortent de la plage min max

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Raccourcir une condition #73414
    michel c.
    Participant

    Merci beaucoup, ça fonctionne. par contre j’ai du remplacer .valueAsString par .value

    en réponse à : Nombre aléatoire sous condition #73400
    michel c.
    Participant

    Merci beaucoup, j’aurais du y penser…

    en réponse à : Nombre aléatoire sous condition #73396
    michel c.
    Participant

    Merci mais ça n’a pas l’air de fonctionner.

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Effacer les commentaires #73378
    michel c.
    Participant

    Merci

    en réponse à : Effacer les commentaires #73374
    michel c.
    Participant

    Par contre, juste une question, comment empêcher l’apparition du message d’erreur sur la console lorsqu’il n’y a aucune annotation à supprimer ? Par exemple si l’utilisateur clique 2 fois sur le bouton par mégarde.

    Merci

    Doc:Open:3: TypeError: annots is null

     

    en réponse à : Effacer les commentaires #73368
    michel c.
    Participant

    Merci, je crois avoir trouvé la liste des différents types d’annotations à cette page.

    Je viens de faire un essai, ça fonctionne !

     

    • Cette réponse a été modifiée le il y a 1 année par michel c..
    • Cette réponse a été modifiée le il y a 1 année par michel c..
    • Cette réponse a été modifiée le il y a 1 année par michel c..
    Attachments:
    You must be logged in to view attached files.
    en réponse à : Effacer les commentaires #73361
    michel c.
    Participant

    Merci. Et en quoi ça consiste, y a-t-il un code que l’on peut mettre dans un script ?

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

    Bonjour, j’ai modifié les champs pour que cela fonctionne avec mes numéros mais je ne comprend pas pourquoi lorsque je coche une case le numéro qui apparait n’est pas le bon. Merci

    Arf, je viens de comprendre. ça marche du coup.

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

    Bonjour, j’ai modifié les champs pour que cela fonctionne avec mes numéros mais je ne comprend pas pourquoi lorsque je coche une case le numéro qui apparait n’est pas le bon.

    Merci

    • Cette réponse a été modifiée le il y a 1 année par michel c..
    Attachments:
    You must be logged in to view attached files.
    en réponse à : Remplissage automatique champs #73262
    michel c.
    Participant

    Merci

    en réponse à : Code pour calculer heures, minutes, secondes #73086
    michel c.
    Participant

    Merci, je viens de refaire complètement mon document. Il n’y a plus de champs end.0 (voir pièce jointe du message précédent).

    Je n’arrive pas à faire ce que je veux avec un champ de saisie unique pour le temps.

    J’ai donc crée 3 champs pour cette saisie : heures minutes et secondes.

    ça marche bien sauf une erreur d’arrondi (voir message précédent)

    Merci

    en réponse à : Code pour calculer heures, minutes, secondes #73081
    michel c.
    Participant

    Ce que je veux faire c’est la même chose que dans la pièce jointe sauf que pour la saisie du temps, au lieu de saisir le nombre d’heures dans un champ (H.+i), le nombre de minutes dans un autre (M.+i) et le nombre de secondes dans un 3ème (S.+i), j’aimerais tout saisir dans un seul sous la forme H:MM:ss

    Par contre j’ai une erreur de calcul (là c’est des maths).

    Je ne comprend pas pourquoi pour l’exemple que j’ai mis sur 2000m de distance avec un temps de 4min20s,  l’allure moyenne aux 500m est de 1min 4s et 10 centièmes alors que si je la calcule, j’ai 1min et 5s.

    Calculs :

    4min 20s = 260 secondes

    Allure moyenne aux 500m :

    nombre de minutes : partie entière de (260 * (500/2000*60))

    nombre de secondes : partie entière de (60*partie décimale de (260 * (500/2000*60)))

    nombre de centièmes de secondes : 10*partie décimale de (60*partie décimale de (260 * (500/2000*60)))

    Est ce moi qui m’embrouille dans mes formules?

    Merci

    PS : Les 5 colonnes de droites me servent pour les calculs intermédiaires, pour ne pas avoir des lignes de calcul à rallonge dans mon code. Si je pouvais je ne les mettrait pas. Sinon, je leur affichage sera non visible.

     

    • Cette réponse a été modifiée le il y a 1 année et 3 mois par michel c..
    • Cette réponse a été modifiée le il y a 1 année et 3 mois par michel c..
    Attachments:
    You must be logged in to view attached files.
    en réponse à : Code pour calculer heures, minutes, secondes #73073
    michel c.
    Participant

    Bonjour, effectivement, ça ne pouvait pas marcher.

    Je viens de créer un script de document permettant de calculler l’allure moyenne sur 500m qui se présente ainsi :

    function allure() {
    event.value= "";
    for (var a=1 ; a<14 ; a++) {var somme=Time2Num("mm:ss", 500*(this.getField("end.0").value))/this.getField("dist."+a).value;
    HM_Format()
    }}

    Mais cela ne fonctionne toujours pas. J’ai essayé de comprendre la fonction Time2Num que j’ai trouvée sur ce forum et que j’essaye d’adapter mais j’avoue que je ne comprend pas tout.

    Je pense que je pourrais arriver à mes fins si je saisissais les heures minutes secondes dans 3 champs séparés mais ça ne sera pas très pratique.

    Merci

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Code pour calculer heures, minutes, secondes #73067
    michel c.
    Participant

    Effectivement, mais ce n’est pas le bouton Fin de séance qui est affecté au calcul d’allure moyenne. Je ne l’avais pas modifié car ce n’est pas cette partie qui me pose problème. Je l’ai rectifié mais ce qui m’intéresse c’est le calcul d’allure moyenne pour les champs “total.”+i

     

    Merci

    • Cette réponse a été modifiée le il y a 1 année et 3 mois par michel c..
    Attachments:
    You must be logged in to view attached files.
    en réponse à : Code pour calculer heures, minutes, secondes #73061
    michel c.
    Participant

    Bonjour, je viens de retirer les erreurs. Mais je ne comprend toujours pas comment calculer les allures moyennes sur 500m…

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Code pour calculer heures, minutes, secondes #73053
    michel c.
    Participant

    J’ai essayé d’utiliser un fichier trouvé sur ce forum (TimeSheet) et de l’adapter mais j’ai toujours un souci…

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Code pour calculer heures, minutes, secondes #73050
    michel c.
    Participant

    J’ai un souci également pour un calcul de temps.

    J’ai un fichier qui permet d’inscrire ses temps pour des distances diverses : 500m ; 1000 m ; 1500 m ….

    Et je voudrais que mon script calcule automatiquement l’allure moyenne pour 500m.

    Mais je n’y arrive pas.

    Le champ t.+i correspond au temps mis pour parcourir la distance inscrite dans le champs dist.+i

    Le champ t.+i est au format hh:mm:ss mais il pourrait être au format h:mm:ss car le temps n’excèdera jamais les 2h.

    Le champ m.+i est également au format hh:mm:ss mais en réalité j’aimerais que ce soit au format mm:ss:centièmes de secondes mais je ne sais pas faire

    Pour le calcul de l’allure moyenne, j’ai fait bêtement ceci mais ça ne fonctionne pas.

    this.getField("m."+i).value = (this.getField("t."+i).value)*(500)/this.getField("dist."+i).value;

     

    Merci

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Action ouvrir un lien web #73030
    michel c.
    Participant

    Merci beaucoup

    en réponse à : Valeur maximale #73006
    michel c.
    Participant

    Merci, c’est parfait.

    en réponse à : Valeur maximale #73001
    michel c.
    Participant

    Bonjour, une dernière (j’espère) question :

    Serait-il possible de modifier le script proposé :

    for (var laLigne=1; laLigne<=34; laLigne++) {
    var lesValeurs=[];
    for (var i=1; i<=10; i++) {
    if (this.getField("a."+laLigne+"."+i).value!=="") lesValeurs.push([i,this.getField("a."+laLigne+"."+i).value]);
    this.getField("a."+laLigne+"."+i).fillColor=["T"];
    }
    try {
    lesValeurs.sort(function(a,b){return a[1]-b[1]});
    if (this.getField("a."+laLigne+"."+lesValeurs[0][0]).value!=="") this.getField("a."+laLigne+"."+lesValeurs[0][0]).fillColor=this.getField("A."+laLigne).value=="+"?color.red:color.green;
    if (this.getField("a."+laLigne+"."+lesValeurs[lesValeurs.length-1][0]).value!=="") this.getField("a."+laLigne+"."+lesValeurs[lesValeurs.length-1][0]).fillColor=this.getField("A."+laLigne).value=="-"?color.red:color.green;
    } catch(e) {}
    }

    pour que lorsque la valeur maximale et/ou la valeur minimale se retrouve dans plusieurs champs sur une même ligne, tous les champs concernés soient en vert ou en rouge suivant le cas et non pas seulement le dernier saisi?

    Merci

    en réponse à : Document qui ne fonctionne plus… #73000
    michel c.
    Participant

    J’ai compris d’où venait l’erreur : la valeur d’export des 1ers items des listes op1 , op2  et repOpi étaient 0. J’ai mis une valeur entière différente de 0 et des autres valeurs des éléments du menu (j’ai mis 5) et ça fonctionne.

    Le code :

    var positionMenu=this.getField("repOpi").currentValueIndices;
    for (var e=1 ; e<3 ; e++) {this.getField("op"+e).setItems = positionMenu;
    this.getField("op"+e).value=this.getField("repOpi").getItemAt(positionMenu,true);
    }

    fonctionne bien.

     

    J’ai essayé la dernière proposition :

    for (var e=1 ; e<3 ; e++) {
    this.getField("op"+e).defaultValue = 5;
    this.getField("op"+e).value = this.getField("op"+e).defaultValue;}

    Cela fonctionne aussi.

    Merci

    Fichier

    en réponse à : Valeur maximale #72989
    michel c.
    Participant

    J’avais effectivement testé sur mon fichier car je ne trouvais plus le script et je voulais faire une petite modif (intervertir les couleurs rouge et vert)

    Je viens de voir qu’il était dans le champs a.0.0. J’ai pu faire la modif et ça fonctionne nickel.

     

    Merci

    • Cette réponse a été modifiée le il y a 1 année et 4 mois par michel c..
    Attachments:
    You must be logged in to view attached files.
    en réponse à : Valeur maximale #72987
    michel c.
    Participant

    Je viens d’essayer ceci pour que cela soit plus rapide mais ça ne fonctionne pas…

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

    Je viens d’arriver à modifier légèrement le script proposé et ça fonctionne.

    Ça ralentit pas mal mais je ne sais pas si on peut y faire quelque chose…

    Merci beaucoup en tout cas.

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

    J’ai testé le fichier joint, ça ne fonctionnait pas. J’ai apporté du coup une modif en essayant de comprendre mais ça ne fonctionne pas non plus. Je ne comprends pas tout dans le script. Je ne vois pas ou se trouvent les différences pour les valeurs des listes déroulantes (+ et -).

    Merci

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

    En cliquant sur + ; la valeur maximale est la “meilleure” et s’affiche en vert sur la ligne (et la moins bonne est la plus basse s’affiche en rouge) ; par exemple si c’est une voiture, ce serait une caractéristique comme la puissance.

    En cliquant sur – ; la valeur minimale est la “meilleure” et s’affiche en vert sur la ligne (et la moins bonne est la plus élevée s’affiche en rouge) ; par exemple ce pourrait être le prix (moins cher c’est mieux)

    • Cette réponse a été modifiée le il y a 1 année et 4 mois par michel c..
    en réponse à : Valeur maximale #72976
    michel c.
    Participant

    J’ai essayé de modifier le 1er scipt proposé de cette manière :

    function Color(indice) {

    var nprod = Number(getField(“NProd”).value);

    if (this.getField(“A.”+indice).value == “+”) {
    var ligne=event.target.name.split(“.”);
    var laLigne=ligne[1];
    var lesValeurs=[];
    for (var i=1; i<=nprod; i++) {
    lesValeurs.push([i,this.getField(“a.”+laLigne+ “.”+i).value]);
    this.getField(“a.”+laLigne+ “.”+i).fillColor=[“T”];
    }
    lesValeurs.sort(function(a,b){return a[1]-b[1]});
    if (this.getField(“a.”+laLigne+ “.”+lesValeurs[0][0]).value!= “”) this.getField(“a.”+laLigne+ “.”+lesValeurs[0][0]).fillColor=color.red;
    if (this.getField(“a.”+laLigne+ “.”+lesValeurs[9][0]).value!= “”) this.getField(“a.”+laLigne+ “.”+lesValeurs[9][0]).fillColor=color.green;
    }

    if (this.getField(“A.”+indice).value == “-“) {
    var ligne=event.target.name.split(“.”);
    var laLigne=ligne[1];
    var lesValeurs=[];
    for (var i=1; i<=nprod; i++) {
    lesValeurs.push([i,this.getField(“a.”+laLigne+ “.”+i).value]);
    this.getField(“a.”+laLigne+ “.”+i).fillColor=[“T”];
    }
    lesValeurs.sort(function(a,b){return a[1]-b[1]});
    if (this.getField(“a.”+laLigne+ “.”+lesValeurs[9][0]).value!= “”) this.getField(“a.”+laLigne+ “.”+lesValeurs[0][0]).fillColor=color.green;
    if (this.getField(“a.”+laLigne+ “.”+lesValeurs[0][0]).value!= “”) this.getField(“a.”+laLigne+ “.”+lesValeurs[9][0]).fillColor=color.red;
    }

    }

    Mais ça ne fonctionne pas : message d’erreur → Doc:Open:15: TypeError: lesValeurs[9] is undefined

     

     

    en réponse à : Valeur maximale #72975
    michel c.
    Participant

    Merci pour la réponse. Cela fonctionne sauf pour la selection du + ou – dans la liste déroulante, cela ne change rien, c’est toujours la valeur mini qui apparait en vert.

    J’essaye de modifier des trucs dans le code proposé, mais il y a des lignes que je ne comprend pas :

    var laLigne=ligne[1];
    var lesValeurs=[];

    this.getField("a."+laLigne+ "."+i).fillColor=["T"];
    lesValeurs.sort(function(a,b){return a[1]-b[1]});

    if (this.getField("a."+laLigne+ "."+lesValeurs[0][0]).value!= "") this.getField("a."+laLigne+ "."+lesValeurs[0][0]).fillColor=color.red;
    if (this.getField("a."+laLigne+ "."+lesValeurs[9][0]).value!= "") this.getField("a."+laLigne+ "."+lesValeurs[9][0]).fillColor=color.green;

    Merci

    en réponse à : Valeur maximale #72970
    michel c.
    Participant

    Bonjour et merci pour ces précisions, ça m’a permis de pas mal avancer.

    J’ai bien réussi à faire fonctionner le script proposé par BB.

    Ce fichier permettra de comparer différents produits (entre 2 et 10) en fonction de plusieurs critères. L’idée c’est que la meilleure caractéristique par critère s’affiche en vert et la plus mauvaise en rouge pour chaque critère.

    Cependant la meilleure caractéristique est parfois la valeur la plus haute pour certains critères et la valeur la plus basse pour d’autres (par exemple le poids ou le prix)

    J’ai apporté une première modification en ajoutant une liste déroulante (+ ou -) pour définir si c’est la valeur la plus haute qui définit si le produit est meilleur ou pas. ça fonctionne bien pour la meilleure caractéristique en vert mais pas pour la pire en rouge…

    Je vais essayer aussi d’apporter une autre modif pour que la fonctionnalité fonctionne lorsque l’on a moins de 10 produits à comparer.

    Pour l’instant je n’y arrive pas trop mais je cherche.

    Merci

    • Cette réponse a été modifiée le il y a 1 année et 4 mois par michel c..
    Attachments:
    You must be logged in to view attached files.
    en réponse à : Pdf Interactif Protégé #72619
    michel c.
    Participant

    Oui, voila

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Pdf Interactif Protégé #72616
    michel c.
    Participant

    Bonjour, la protection des pdf par mot de passe via le site d’adobe (https://www.adobe.com/acrobat/online/password-protect-pdf.html) a l’air plus efficace. En tout cas le site smallpdf n’arrive pas à faire sauter la protection.

    • Cette réponse a été modifiée le il y a 1 année et 7 mois par michel c..
    en réponse à : Usage de la console #72615
    michel c.
    Participant

    ça fonctionne. Merci beaucoup !

    en réponse à : Usage de la console #72609
    michel c.
    Participant

    Bonjour, cela me renvoie une erreur : Console:Exec:3: SyntaxError: expected expression, got '||'
    d\.\d/.test(oFld.name))) || (/\R\.\d\.\d/.test(oFld.name))) || (/\Q\.\d\.\d/.test(oFld.name)))) {
    ............................................................^

     

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Mélanger des lettres #72486
    michel c.
    Participant

    C’est parfait. Merci

    en réponse à : Renommer les noms de champs #72453
    michel c.
    Participant

    Parce-que sinon ça renomme tous les champs enfants de Q.1 dans le document, et je suppose que ce n’est pas ce que tu veux faire.

     

    Effectivement ce n’est pas ce que je veux faire et malheureusement je crée mes formulaires avec un autre logiciel qu’adobe Acrobat et celui-ci ne dispose pas de cette fonctionnalité.

    • Cette réponse a été modifiée le il y a 1 année et 8 mois par michel c..
    en réponse à : Champs heures et date #72446
    michel c.
    Participant

    Bonjour :

    this.getField("Date").value = util.printd("dd/mm/yyyy", new Date());

    à placer en script de calcul affecté au champ “Date”

    et

    this.getField("Date").value = util.printd("hh:mm", new Date());

    à placer en script de calcul affecté au champ “Heure”

    en réponse à : Raz et remplissage automatique #72419
    michel c.
    Participant

    Autre question, est il possible de faire “remonter” plus d’une variable lors d’un clic sur un bouton pour appeler une fonction qui utilisera ces variables.

    Par exemple le script affecté à un bouton :

    var nomChamp=event.target.name;
    var premierPoint=nomChamp.indexOf(".");
    var dernierPoint=nomChamp.lastIndexOf(".");
    var ind1=nomChamp.substring(premierPoint+1,dernierPoint);
    var ind2=nomChamp.substring(dernierPoint+1);
    var prefixe = nomChamp.substring(0, premierPoint);

    NomDeLaFonction(nomChamp,ind1,ind2);

    Et en script de document :

    NomDeLaFonction(nomChamp,ind1,ind2) {

    Code utilisant les variables nomChamp, ind1 et ind2

    }

    Merci

    en réponse à : Raz et remplissage automatique #72418
    michel c.
    Participant

    Merci, j’ai appliqué les changements que tu préconisais dans tes messages de 12h30 et 13h02.

    Pour les autres, j’ai essayé mais il y avait des erreurs et comme j’ai de fortes lacunes dans ce que tu proposes, je n’ai pas pu corriger.

    Pour les 100 x 100 boucles « f » ; je les ai supprimées comme tu le disais dans la fonction raz, sauf pour la dernière partie ou j’ai du en conserver une avec un nombre plus modeste :

    for (var i = 1 ; i<50 ; i++) {
    for (var f = 0 ; f<50 ; f++) {
    if (this.getField("Q."+i +"."+f) != null && this.getField("Q."+i +"."+f).type != "combobox") {this.getField("Q."+i +"."+f).value = "";}
    if (this.getField("Q."+i +"."+f) != null && this.getField("Q."+i +"."+f).type == "combobox") {this.resetForm([("Q."+i +"."+f)]);}

    }
    }

    Sans cela, lors du clic sur raz, je n’avais pas d’erreur à la console mais les menus déroulants ne s’initialisaient pas (peut être une erreur dans mon code) ; j’avais écrit ceci :

    if (this.getField("Q.") != null && this.getField("Q.").type != "combobox") {this.getField("Q.").value = "";}
    if (this.getField("Q.") != null && this.getField("Q.").type == "combobox") {this.resetForm(("Q."));}

    Je suis en train de tout revérifier pour voir si je n’ai pas d’erreur ou de bug que je n’avais pas vu….

    Merci encore

    LIEN

Affichage de 99 réponses de 100 à 198 (sur un total de 397)