Donnez vie à vos documents numériques !
 

michel c.

Toutes mes réponses sur les forums

Affichage de 25 réponses de 1 à 25 (sur un total de 287)
  • Auteur
    Réponses
  • 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 2 mois 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 2 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 2 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 2 mois et 1 semaine par michel c..
    • Cette réponse a été modifiée le il y a 2 mois et 1 semaine par michel c..
    • Cette réponse a été modifiée le il y a 2 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 #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 2 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 2 mois et 2 semaines par michel c..
    • Cette réponse a été modifiée le il y a 2 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 3 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.

Affichage de 25 réponses de 1 à 25 (sur un total de 287)