Donnez vie à vos documents numériques !
 

michel c.

Toutes mes réponses sur les forums

Affichage de 99 réponses de 199 à 297 (sur un total de 431)
  • Auteur
    Réponses
  • 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 et 4 mois par michel c..
    • Cette réponse a été modifiée le il y a 1 année et 4 mois par michel c..
    • 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 à : 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 et 5 mois 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 7 mois par michel c..
    • Cette réponse a été modifiée le il y a 1 année et 7 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 7 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 8 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 8 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 8 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 11 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 2 années 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

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

    Bonjour, j’ai un peu tout passé en revue, j’en ai profité pour ajouter des aides interactives mais j’ai un bug que je n’arrive pas à corriger.

    Lorsque je clique sur Raz, l’aide de la question 1 (Aide.1.1) s’affiche alors que je voudrais qu’elle soit masquée.

    C’est peut être le dernier bug. En tout cas, celui-ci est gênant.

    Si quelqu’un pouvait m’aider, ça fait un moment que je suis dessus sans avoir la moindre piste.

    Merci

    LIEN

    • Cette réponse a été modifiée le il y a 2 années et 1 mois par michel c..
    • Cette réponse a été modifiée le il y a 2 années et 1 mois par michel c..
    • Cette réponse a été modifiée le il y a 2 années et 1 mois par michel c..
    en réponse à : Afficher / masquer grâce à checkBox #72404
    michel c.
    Participant

    Merci !

    en réponse à : Afficher / masquer grâce à checkBox #72392
    michel c.
    Participant

    Bonjour, j’ai fini par trouver ma réponse sur le net :

    var nDisplay = event.target.isBoxChecked(0) ? display.visible : display.hidden;

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

    this.getField("Aide."+ind1+".2").display = nDisplay;

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

    J’ai réussi à mettre en place une fonction Remise à 0 qui fonctionne.

    Je suis en train de vérifier les bugs éventuels et ajouter quelques petites fonctionalités mais c’est en bonne voie.

    Merci à tous

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

    J’ai compris mes erreurs (elles étaient multiples).

    Pour le coup j’ai résolu 2 problèmes : le script Default et EditReps

    Je potasse un peu le script Raz qui fonctionne encore mal.

    Je vais essayer tout seul comme un grand.

    LIEN

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

    Le dernier fichier (j’ai essayé de faire un peu le ménage dans les scripts mais j’ai toujours des erreurs).

    LIEN

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

    J’ai renommé les champs pour qu’ils aient tous 2 points et j’ai utilisé les indices pour extraire l’indice1 (nombre situé entre les 2 points) et l’indice2 (nombre situé après le dernier point)

    J’ai modifié mon script EditReps qui est beaucoup plus simple.

    Je comptais faire pareil pour le script Raz.

    Mais, je ne comprend pas pourquoi ça ne fonctionne pas….

     

    LIEN

    • Cette réponse a été modifiée le il y a 2 années et 1 mois par michel c..
    • Cette réponse a été modifiée le il y a 2 années et 1 mois par michel c..
    • Cette réponse a été modifiée le il y a 2 années et 1 mois par michel c..
    en réponse à : Raz et remplissage automatique #72370
    michel c.
    Participant

    Merci pour tes 2 suggestions. La 1ère (utilisation d’un indice compris entre les 2 points du nom du champ) me permettra je pense d’y arriver (j’ai encore des erreurs mais je pense qu’elles sont dues à des champs qui portent des noms incorrects)

    Pour la 2ème suggestion, je l’ai implémentée au script Raz mais j’ai toujours quelques listes déroulantes qui ne s’initialisent pas (Q.8.1 ; Q.9.1 par exemple)

    Sinon, j’ai viré les checkboxe et je les ai remplacées par des menus déroulants (vrai ou faux) ; j’étais en train de devenir maboul alors j’ai contourné le problème.

    LIEN

    Merci encore

    • Cette réponse a été modifiée le il y a 2 années et 1 mois par michel c..
    • Cette réponse a été modifiée le il y a 2 années et 1 mois par michel c..
    en réponse à : Raz et remplissage automatique #72357
    michel c.
    Participant

    J’ai une petite idée pour résoudre pas mal de petits trucs mais il me manque un bout de code.

    Je sais que le code event.target.name.substr(4)) affiche le nom du champ cible après avoir retiré les 4 1ers caractères mais je me demandais si l’on pouvait extraire des caractères situés au milieu du nom du champ.

    Par exemple si je veux extraire le chiffre compris entre les 2 points d’un champ qui se nommerait R.5.3 (ici le chiffre 5) mais il faudrait que ça fonctionne pour le cas d’un nombre à 2 chiffres comme R.12.10 (pour extraire le nombre 12)

     

    Pour solutionner les valeurs par défaut que je souhaite définir sur les checkbox dès qu’elles sont cochées ou décochées, j’ai testé ceci :

    function Default() {

    var a = event.target.name;

    if (this.getField(a).type == "checkbox") {
    if (this.getField(a).value == "yes") {this.getField(a).defaultValue = "yes";}
    if (this.getField(a).value == "no") {this.getField(a).defaultValue = "no";}
    }

    if (this.getField(a).type != "checkbox") {this.getField(a).defaultValue = this.getField(a).value;}

    for (var i = 0; i < this.numFields; i++) {
    var oFld = this.getField(this.getNthFieldName(i));
    if (oFld.type == "combobox") {this.resetForm(oFld.name);}

    }
    }

    Je n’ai pas de message d’erreur mais ça ne marche pas…

     

    Merci

    • Cette réponse a été modifiée le il y a 2 années et 1 mois par michel c..
    • Cette réponse a été modifiée le il y a 2 années et 1 mois par michel c..
    en réponse à : Raz et remplissage automatique #72354
    michel c.
    Participant

    Merci, j’ai mis ce script en modifiant 2 ou trois petites choses dans la fonction Raz.

    ça fonctionne à 2 détails près : après avoir cliqué sur Raz, le champ R1.2 affiche la valeur 5 (alors que celle-ci ne figure pas dans la liste déroulante), certains champs s’affichent toujours et certaines listes ne sont pas effacées de leurs valeurs.

    Je vais me pencher dessus.

    LIEN

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

    Merci pour le temps que tu passes pour m’aider avec ce qui ressemble de plus en plus à une usine à gaz (mais je commence à être habitué).

    J’ai essayé ce que tu propose mais cela ne fonctionne pas mais peut être que je n’étais pas très clair pour expliquer ce que je veux faire.

    • Mon document comporte des Titres, sous titres, textes divers à la page 1. Ceux-ci seront toujours visibles et non modifiables par l’élève.(1)
    • Il y a les intitulés des questions (champs Question1 ; Question2 ….) et parfois des détails pour certaines questions (champs Question3.1 ; Question3.2 …) → Seule la question 1 sera toujours visible (mais non modifiable par l’élève)
    • Les champs Q1.2 ; Q1.2 Q2.1 … sont les champs que l’élève va utiliser pour répondre. Seuls les champs Q1… sont toujours visibles pour l’élève (2)
    • Lorsque l’élève répond, à une question, après avoir cliqué sur vérifier, les réponses fausses apparaissent en rouge et tous les champs réponses passent en readonly true. Il clique ensuite sur recommencer et les champs réponses se déverrouillent et s’affichent en blanc
    • Si toutes les réponses sont exactes, alors la question suivante s’affiche (par exemple après la question 2 ; les champs Question.3 ; Question3.1 à QUestion3.4 et les champs réponses Q3.1 à Q3.4)
    • Le menu administrateur permet l’édition des question des titres, des champs de réponses justes (R…) (1)
    • Les champs de “réponses juste” (R…)  mettent les valeurs saisies dans les champs  comme valeur par default (action de format → script Default) (3)
    • Le menu administrateur permet aussi la remise à 0 du formulaire en effaçant tous les champs réponses et en masquant toutes les questions sauf la 1ère (2)
    • Il permet aussi d’afficher le corrigé de tout le document (très utile car le document élève et le corrigé ne font qu’un) (4)

    Et pour corser le tout, ce document me servira de base pour en faire d’autres et doit fonctionner quelque soit le nombre de questions et le nombre de champs réponses par question et le type de champ réponse….

    En vert ce que j’ai déjà réussi à faire

    En Orange ce qui ne fonctionne pas tout à fait

    En rouge ce que je n’ai pas fait ou ce qui ne fonctionne pas du tout.

    (1) Pour y arriver il faudrait que je filtre les noms de champs avec le texte situé avant le point→ ainsi les champs nommés Titre seront toujours en lecture seule et les champs commençant par Q ou par R seront modifiables si la croix est cochée. J’ai fait plusieurs essais pour le script EditReps. Je l’ai effacé car j’avais un truc extrêmement compliqué et qui ne fonctionnait pas.

    (2) Je ne vois pas trop comment faire pour qu’en cliquant sur Raz seule la question 1 soit visible

    (3) ça ne fonctionne pas pour les checkbox

    (4) Je ne me suis pas encore penché dessus

     

    Merci encore pour toute votre aide.

    LIEN vers l’usine à gaz

    • Cette réponse a été modifiée le il y a 2 années et 1 mois par michel c..
    en réponse à : Raz et remplissage automatique #72334
    michel c.
    Participant

    Merlin wrote:
    « Cacher ou masquer les checkBox (R7.1 à R7.5) avec le script EditReps »« Oui, mai je cherche un script qui fonctionne quelque soit le numéro de champ R… » Dans ce cas, si on suppose par exemple que le nombre maximal est de 100 : for (var i = 1 ; i<101 ; i++) {if (this.getField("R" +i) != null) {this.getField("R" +i).display = display.hidden;}}

    Ça marche parfaitement ! Merci
    J’ai essayé de m’en inspirer pour définir par defaut les Checkbox cochées avec ceci Dans le script Default :

    for (var i = 1 ; i<101 ; i++) {this.getField("R" +i).defaultValue = this.getField("R" +i).value;}Mais j’ai une erreur : Doc:Open:7: TypeError: this.getField(...) is nullLorsque je coche ou décoche une checkbox R…

    Merlin wrote:
    « Remettre à 0 les liste déroulantes avec le bouton Raz » for (var i = 0; i < this.numFields; i++) {var oFld = this.getField(this.getNthFieldName(i));if (oFld.type == "combobox") {oFld.value = oFld.defaultValue;}}

    Pour celui-ci ça marche mais la console me renvoie une erreur :

    Field:Mouse Up:5: InvalidSetError: InvalidSetError: A property set is not valid or possible.
    Field.[52]:5:Field:Mouse Up


    Voici le dernier fichier avec les modifications de Merlin : LIEN

    • Cette réponse a été modifiée le il y a 2 années et 1 mois par michel c..
    en réponse à : Raz et remplissage automatique #72328
    michel c.
    Participant

    Oui, mai je cherche un script qui fonctionne quelque soit le numéro de champ R…

    Dans ce document les checkbox sont les champs R7….. mais dans un autre document ce sera peut être les champs R2….. et R8…..

    L’idée serai d’avoir des scripts qui fonctionnent sans que je les modifie pour gagner du temps ensuite lorsque je crée d’autres documents.

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

    J’avance doucement, il y a encore 2 ou trois petites choses que je n’arrive pas à faire :

    • Cacher ou masquer les checkBox (R7.1 à R7.5) avec le script EditReps
    • Définir la valeur par defaut des mêmes checkboxes avec le script Default
    • Remettre à 0 les liste déroulantes avec le bouton Raz (ça je crois savoir comment m’y prendre)
    • Remettre en position readonly true tous les champs de réponses après avoir cliqué sur le bouton Raz (là je crois savoir aussi)
    • Corriger automatiquement le document après clic sur le bouton Corriger (là pas sûr que je sache)

    Merci pour votre aide en tout cas

    LIEN

     

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

    Merci, entre temps j’ai trouvé une autre solution : une check box (Menu.5) qui lorsqu’elle est cochée affiche ou non les champs à éditer.

    Pour cela il faut que les champs concernés Aient ce script en action de format :

    var a = event.target.name;
    console.println(a);
    this.getField(a).defaultValue = this.getField(a).value;

    Pour que la valeur saisie devienne la valeur par défaut

    et ce script en action de calcul :

    console.println(event.target.name);
    console.println(this.getField("Menu.5").value);
    if (this.getField("Menu.5").value == 1) {this.getField(event.target.name).display = display.visible;}
    if (this.getField("Menu.5").value != 1) {this.getField(event.target.name).display = display.hidden;}

    Pour que ces champs puissent soient visibles ou cachés.

    Je ne sais pas si cette méthode est valable (je vais les placer en script de document comme vous me l’avez suggéré.

    J’ai fait cela que sur la 1ère page.

    Je n’arrive pas encore à faire fonctionner les scripts proposés. Je vais réessayer

     

    LIEN

    • Cette réponse a été modifiée le il y a 2 années et 1 mois par michel c..
    en réponse à : Raz et remplissage automatique #72315
    michel c.
    Participant

    Pardon, voici la pièce jointe (c’est dans le script de document HideAdm)

    Je voudrais que celui-ci cache tous les champs qui commencent par “R.”

    LIEN

    Pour le script de validation à placer, je me demandais comment utiliser la console pour propulser le même script dans tous les champs qui commencent par “R.”

    Merci

    • Cette réponse a été modifiée le il y a 2 années et 1 mois par michel c..
    en réponse à : Raz et remplissage automatique #72312
    michel c.
    Participant

    Je rencontre un problème sur un bout de code :

    J’ai n questions (nombre variable d’un document à un autre)

    et pour chaque qustion j’ai nChamps réponses. → R.n….. (nombre de champs réponse variable d’une question à une autre)

    Je voudrais mettre en place un bouton qui me permettrait de masquer tous les champs réponses pour chaque question

    J’ai fait ceci en me servant des derniers éléments que je commence à comprendre grâce à vous mais ça ne fonctionne pas.

    for (var b=1 ; b<=3 ; b++) {this.getField("Menu."+b).display=display.hidden;}
    var nbChRep=0;
    var nbQestions=0;
    for (var i=0; i<this.numFields; i++) {
    if (this.getNthFieldName(i).indexOf("Question.")==0) nbQestions++;
    }
    console.println("Nombre de questions : "+nbQestions);
    for (var a=1; a<=nbQestions; a++) {for (var i=0; i<this.numFields; i++) {
    if (this.getNthFieldName(i).indexOf("R."+a+".")==0) nbChRep++;
    for (var b=1; b<=nbChRep; b++) {this.getField("R."+a+"."+b).display=display.hidden;}

    }

     

    }

     

    Merci

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

    Pour que la valeur par défaut soit celle saisie, j’ai pensé à mettre en script de calcul ce code :

    var a = event.target.name;
    this.getField(a).defaultValue = this.getField(a).value;

    Qu’en pensez vous ?

    en réponse à : Utiliser le même script sans le modifier #72304
    michel c.
    Participant

    Le dernier fichier en date (un peu plus pratique encore à l’usage)

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Utiliser le même script sans le modifier #72299
    michel c.
    Participant

    Merci pour votre aide. J’ai pu modifier et même améliorer un peu plus mon document grâce à vous.

    J’ai placé les réponses exactes dans des champs masqués en vis à vis des champs de réponse. Ainsi ce sera plus facile de créer les formulaires que je souhaite.

    J’ai l’impression que ce n’est pas trop mal là. Je n’ai pas vu de bug en tout cas.

    • Cette réponse a été modifiée le il y a 2 années et 1 mois par michel c..
    en réponse à : Utiliser le même script sans le modifier #72290
    michel c.
    Participant

    J’ai réussi à faire un peu mieux (j’ai des modifications minimes à faire sur mon script). Je pense qu’il est possible de faire mieux mais je bloque toujours sur le moyen de compter le nombre de champs de réponses pour chaque question.

    Il faudrait un code qui me permettrait de compter tous les champs qui commencent par “Q”+n+”.”

    Si quelqu’un a une idée. En attendant, je vais me coucher. apparemment la nuit porte conseil.

    Merci

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

    Bonjour, l’idée c’est de faire un questionnaire et lorsque l’élève répond juste, le script affiche la question suivante en pleine largeur.

    Je voudrais donc que l’affichage soit conditionné par l’exactitude de la réponse.

    Si l’élève clique sur vérifier et que sa réponse est fausse, il faudrait que l’affichage reste en place.

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

    J’ai trouvé pour adapter à la largeur : this.zoomType = zoomtype.fitW;

    Je cherche maintenant comment afficher la partie de la page située en dessous d’une hauteur définie en mm.

    en réponse à : Nombre aléatoire #72275
    michel c.
    Participant

    C’était donc ça…

    en réponse à : BONNE ANNÉE 2023 ! #72274
    michel c.
    Participant

    Merci et bonne année à toi aussi.

    en réponse à : Nombre aléatoire #72271
    michel c.
    Participant

    Merci beaucoup, ça marche… bien mieux

    en réponse à : Validation de valeur champ multiligne #72259
    michel c.
    Participant

    Merci beaucoup, ça fonctionne parfaitement maintenant.

    en réponse à : Validation de valeur champ multiligne #72251
    michel c.
    Participant

    Merci, le script fonctionne, sauf pour la 1ère ligne pour laquelle le saut de ligne n’est pas remplacé par un espace.

    Voici le message d’erreur que j’obtiens sur la console :

    Doc:Open:5: InvalidSetError: InvalidSetError: A property set is not valid or possible.
    Field.[52]:5:Doc:Open

    Sur adobe acrobat, il n’y a pas d’erreur et tout fonctionne. Mais comme notre lycée ne veut pas acheter trop de logiciels avec des abonnement annuels, nous utilisons PDF X-Change editor

    Merci

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Validation de valeur champ multiligne #72250
    michel c.
    Participant

    Un des scripts que j’ai récupéré ici permet de générer des listes déroulantes à partir d’un champ texte multiligne.

    Je laisse la première ligne vide pour n’avoir aucune entrée affichée.

    Un script permettant de mettre en position “1” chaque liste.

    Celui-ci crée une erreur si la position demandée a comme valeur d’export une valeur nulle (“”) cette erreur disparait si il y a un espace au lieu de rien.

     

    en réponse à : Incorporer des icones #72213
    michel c.
    Participant

    Merci beaucoup, ça fonctionne

    en réponse à : Incorporer des icones #72204
    michel c.
    Participant

    J’ai réussi par une “bidouille” : j’ai crée un nouveau fichier à partir d’une page blanche, j’ai copié/collé tous les champs (après avoir supprimé le champ BB et icone.6), j’ai crée les scripts de document. Lorsque j’ai incorporé les icônes, tout fonctionnait.

    Par contre, je rencontre un nouveau problème :

    Je voudrais que mes élèves aient la possibilité de voir leurs erreurs.

    J’ai mis un bouton “vérifier” qui lorsqu’il est cliqué met en rouge les listes comportant des erreurs tout en mettant les listes en lecture seule

    et un bouton recommencer qui remet en blanc toutes les listes et réactive les droits en écriture des listes.

    ça à l’air de fonctionner mais j’ai une erreur sur la console : Field:Calculate:1: TypeError: this.getField(...) is null

    Je ne vois pas d’où cela pourrait venir…

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Incorporer des icones #72190
    michel c.
    Participant

    Lorsque je saisis dans la console this.removeIcon("BB"); ; cela me renvoie cette erreur : “undefined”

    Concernant la proposition de Merlin, je ne sais pas trop dans quel script l’incorporer ni à quel endroit.

    Est-ce dans le script qui permet d’incorporer les icones ? J’ai fait un essai mais ça ne fonctionne pas…

    en réponse à : Incorporer des icones #72185
    michel c.
    Participant

    Merci, ça fonctionne. Par contre, comment faire pour supprimer une icône du document?

    Si je me contente de supprimer par exemple l’image BB et l’image icone.6, lorsque je clique ensuite sur initialiser j’ai une erreur  : Field:Mouse Up:1: TypeError: this.getField(...) is null

    Merci

    en réponse à : Mettre en position 1 plusieurs listes déroulantes #72155
    michel c.
    Participant

    Je viens de comprendre d’où vient l’erreur :

    Mes listes déroulantes sont générées à l’aide de un script (qui m’avait été proposé par BB ou Merlin, je ne sais plus et que je n’ai pas intégré au document en pièce jointe) :

    var lesLignes=this.getField("entreesListe").value.split("\r");
    for (var a=0; a<lesLignes.length; a++) {lesLignes[a]=lesLignes[a].split("\/");}
    for (var a = 1; a < 33; a++) {if (this.getField("motif."+a) != null) {this.getField("motif."+a).setItems(lesLignes);}}

    Dans un champ de texte (entreesListe) je saisis ligne par ligne chaque élément des listes déroulantes que je veux intégrer aux listes motif.1 à motif.32

    Comme je laisse la première ligne vide (sans aucun caractère), la valeur d’export par défaut n’existe pas non plus ce qui me crée cette erreur.

    Si je remplace la 1ère entrée par n’importe quoi tant qu’il y a une valeur d’export en face, cela fonctionne.

    Je pense qu’il faudrait modifier le script permettant de générer les listes déroulantes pour que si une ligne ne comporte aucun caractère, la valeur attribuée soit un espace ou un tiret mais je ne sais pas faire…

    en réponse à : Mettre en position 1 plusieurs listes déroulantes #72154
    michel c.
    Participant

    Effectivement, je viens de faire un essai avec adobe acrobat DC, cela fonctionne…

    Y a-t-il un autre moyen de faire la même chose ?

    en réponse à : Variable persistante #72037
    michel c.
    Participant

    Je viens de réessayer par curiosité (j’utilise maintenant la solution proposée par Merlin). ça fonctionne bien mais lorsque je ferme le logiciel et que je veux rétablir la liste par défaut que j’ai affectée avant la fermeture j’ai cette erreur : ReferenceError: DVD is not defined

    Mon script pour réaffecter la valeur stockée : this.getField("entreesListe").value = DVD;

    en réponse à : Variable persistante #72027
    michel c.
    Participant

    Arf, effectivement c’est beaucoup plus simple…. Je ne connaissais pas cette commande.

    Merci.

    J’ai appris pas mal de choses ces derniers jours grâce à vous.

    en réponse à : Impression #72024
    michel c.
    Participant

    Le formulaire est lourd car il y a beaucoup de champs et de pages je suppose.

    Chez moi et au boulot, il n’y a pas de bug et l’exécution est très rapide (aussi bien avec PDF XChange Editor qu’avec adobe acrobat reader DC), aucun ralentissement mais mon pc est assez récent. Celui du boulot et moins performant et moins récent mais ça n’est pas lent non plus.

    Peux tu poster les messages d’erreurs renvoyés par la console s’il y en a ?

    Si tu as une idée ou des pistes pour améliorer le formulaire, je suis preneur.

    Merci

     

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

    Je crois avoir trouvé.

    L’erreur venait du script ListeDefaut qui contient un format non conforme à une fonction je pense.

    J’ai ajouté cette action avant la fermeture du document : this.addScript("ListeDefaut", "function listedefault () {}");

    Et j’ai fait en sorte que la liste par defaut soit stockée dans un champ caché (DVar). Lors du clic sur le bouton pour effacer tous les champs; je récupère la valeur contenue dans ce champ pour l’intégrer au script ListeDefaut. Une fois le resetForm effectué, je rétablis la liste par défaut avec le contenu de ListeDefaut que j’intègre également dans le champ DVar.

    Je ne sais pas si c’est très académique mais j’ai l’impression qu’il n’y a pas de faille.

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

    J’ai quand même un souci lors de l’ouverture du document : Doc:Open:1: ReferenceError: DVD is not defined

    J’ai un peu modifié le script pour le faire correspondre à mes besoins mais je ne vois pas ou ça cloche.

    Je vais continuer à bidouiller un peu…

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

    Effectivement, c’est mieux car j’avais un bouton qui permettait d’effacer tous les champs de mon document mais je voulais que l’utilisateur puisse rétablir ce champ avec la valeur qu’il avait lui même défini par défaut. Du coup, ma solution précédente ne fonctionnait pas car le champ masqué s’effaçait aussi.

    Un grand merci

    en réponse à : Variable persistante #72013
    michel c.
    Participant

    Je viens de trouver la solution à ce que je souhaitais faire sans passer par une variable persistante.

    Il suffisait d’avoir un champ caché pour sauvegarder la valeur par défaut…

    J’aurais du y penser avant de poser la question….

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

    Ah et y a-t-il un moyen de la rendre persistante après avoir quitté l’application?

    Ce que j’ai en tête c’est qu’un utilisateur puisse définir une liste (champ de texte multi lignes) par défaut. Que cette valeur par défaut puisse être stockée à sa demande (en cliquant sur un bouton) et qu’en cliquant sur un autre bouton, ce champ texte puisse retrouver son contenu qui a été défini comme étant par défaut même après avoir quitté et relancé l’application.

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

    Alors là, un grand merci, je commençais à désespérer. Ça fonctionne nickel.

    Je vais me plonger dans le script pour essayer d’apprendre quelques trucs, mais en le regardant en diagonale, ce n’est pas de mon niveau…

    La précédente méthode ne marchait pas chez moi, même avec acrobat Reader (version gratuite)

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

    Je viens de penser à une autre option : mettre une checkbox (CB.n) devant chaque champ agoto.n qui serait cochée si on souhaite imprimer la fiche de cet élève puis ce script affecté au bouton “imprimer” :

    var pp = this.getPrintParams();
    var printRange = [];
    if (this.getField("CB.1").value = 1) {printRange.push([1,1]);}
    if (this.getField("CB.2").value = 1) {printRange.push([2,2]);}
    if (this.getField("CB.3").value = 1) {printRange.push([3,3]);}

    .

    .

    .
    if (this.getField("CB.32").value = 1) {printRange.push([32,32]);}
    this.print(pp);

    Mais ça ne fonctionne pas, lorsque je clique sur imprimer, toutes les pages sont imprimées…

    • Cette réponse a été modifiée le il y a 2 années et 3 mois par michel c..
    en réponse à : Calcul à deux chiffres max après la virgule #71991
    michel c.
    Participant

    Tu ne peux pas partager ton document, ce serait plus facile.

    en réponse à : Calcul à deux chiffres max après la virgule #71988
    michel c.
    Participant

    Je me lance :

    if (nResult1<0) {oResult1.value = 0;} if (nResult1>=0) {oResult1.value=nResult1}

     

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

    Je l’ai exécuté depuis la console.

    Je n’ai plus le message d’erreur, du coup lorsque je clique sur le bouton, la console me renvoie le message suivant :

    Début du process : 20/11/2022 – 16:05:29
    Pages à imprimer : 20,32
    Fin du process : 20/11/2022 – 16:05:29
    Durée :

    Mais par contre l’impression ne se lancait pas.

    J’ai réactivé la ligne // this.print({bUI: false});

    Après ça l’impression se lançait mais pour toutes les pages.

    Du coup, j’ai essayé de remplacer cette ligne par : this.print({bUI: true, nStart: "+i+", nEnd: "+i+"});

     

    var t=this.templates;
    var bDialog={
    DoDialog: function(){return app.execDialog(this);},
    validate: function(bDialog) {
    oRslt=bDialog.store();
    for (var i=0; i<t.length; i++) {
    if (i<10) eval("theCB"+i+"=oRslt[\"cb0"+i+"\"];");
    else eval("theCB"+i+"=oRslt[\"cb"+i+"\"];");
    }
    testOK1=1;
    var condition="if (";
    for (var i=0; i<t.length; i++) {
    if (i!=0) condition+=" && ";
    condition+="theCB"+i+"==false";
    }
    condition+=") testOK1=0;";
    eval(condition);
    var alertReturn=(testOK1);
    if(!alertReturn) app.alert("\nSélectionnez au moins une page à imprimer.");
    return alertReturn;
    },
    description: {
    name: "Dialog",
    align_children: "align_top",
    elements: [
    {
    type: "view",
    align_children: "align_left",
    elements: [
    {
    type: "cluster",
    name: "Fiches à imprimer",
    align_children: "align_top",
    elements: [
    {
    type: "view",
    char_width: 10,
    char_height: 3,
    elements: [
    {
    type: "view",
    align_children: "align_top",
    elements: [
    {
    type: "view",
    width: 80,
    elements: [
    {
    type: "check_box",
    item_id: "cb00",
    name: "Plan de salle"
    },
    {
    type: "check_box",
    item_id: "cb01",
    name: this.getField("agoto.1").value
    },
    {
    type: "check_box",
    item_id: "cb02",
    name: this.getField("agoto.2").value
    },
    {
    type: "check_box",
    item_id: "cb03",
    name: this.getField("agoto.3").value
    },
    {
    type: "check_box",
    item_id: "cb04",
    name: this.getField("agoto.4").value
    },
    {
    type: "check_box",
    item_id: "cb05",
    name: this.getField("agoto.5").value
    },
    {
    type: "check_box",
    item_id: "cb06",
    name: this.getField("agoto.6").value
    },
    {
    type: "check_box",
    item_id: "cb07",
    name: this.getField("agoto.7").value
    },
    {
    type: "check_box",
    item_id: "cb08",
    name: this.getField("agoto.8").value
    },
    {
    type: "check_box",
    item_id: "cb09",
    name: this.getField("agoto.9").value
    },
    {
    type: "check_box",
    item_id: "cb10",
    name: this.getField("agoto.10").value
    },
    ]
    },
    {
    type: "view",
    width: 80,
    elements: [
    {
    type: "check_box",
    item_id: "cb11",
    name: this.getField("agoto.11").value
    },
    {
    type: "check_box",
    item_id: "cb12",
    name: this.getField("agoto.12").value
    },
    {
    type: "check_box",
    item_id: "cb13",
    name: this.getField("agoto.13").value
    },
    {
    type: "check_box",
    item_id: "cb14",
    name: this.getField("agoto.14").value
    },
    {
    type: "check_box",
    item_id: "cb15",
    name: this.getField("agoto.15").value
    },
    {
    type: "check_box",
    item_id: "cb16",
    name: this.getField("agoto.16").value
    },
    {
    type: "check_box",
    item_id: "cb17",
    name: this.getField("agoto.17").value
    },
    {
    type: "check_box",
    item_id: "cb18",
    name: this.getField("agoto.18").value
    },
    {
    type: "check_box",
    item_id: "cb19",
    name: this.getField("agoto.19").value
    },
    {
    type: "check_box",
    item_id: "cb20",
    name: this.getField("agoto.20").value
    },
    {
    type: "check_box",
    item_id: "cb21",
    name: this.getField("agoto.21").value
    },
    ]
    },
    {
    type: "view",
    width: 80,
    elements: [
    {
    type: "check_box",
    item_id: "cb22",
    name: this.getField("agoto.22").value
    },
    {
    type: "check_box",
    item_id: "cb23",
    name: this.getField("agoto.23").value
    },
    {
    type: "check_box",
    item_id: "cb24",
    name: this.getField("agoto.24").value
    },
    {
    type: "check_box",
    item_id: "cb25",
    name: this.getField("agoto.25").value
    },
    {
    type: "check_box",
    item_id: "cb26",
    name: this.getField("agoto.26").value
    },
    {
    type: "check_box",
    item_id: "cb27",
    name: this.getField("agoto.27").value
    },
    {
    type: "check_box",
    item_id: "cb28",
    name: this.getField("agoto.28").value
    },
    {
    type: "check_box",
    item_id: "cb29",
    name: this.getField("agoto.29").value
    },
    {
    type: "check_box",
    item_id: "cb30",
    name: this.getField("agoto.30").value
    },
    {
    type: "check_box",
    item_id: "cb31",
    name: this.getField("agoto.31").value
    },
    {
    type: "check_box",
    item_id: "cb32",
    name: this.getField("agoto.32").value
    },
    ]
    },
    ]
    },
    ]
    },
    ]
    },
    {
    alignment: "align_right",
    type: "ok_cancel",
    },
    ]
    },
    ]
    }
    };
    if("ok"==bDialog.DoDialog()) {
    //
    d0=new Date();
    debut=util.printd("dd/mm/yyyy – HH:MM:ss",d0);
    console.show();
    console.clear();
    console.println("Début du process : "+debut);
    //
    var lesPages=[];
    for (var i=0; i<t.length; i++) eval("if (theCB"+i+"==true) lesPages.push("+i+");");
    console.println("Pages à imprimer : "+lesPages);
    for (var i=0; i<t.length; i++) t.hidden=true;
    for (var i=0; i<lesPages.length; i++) t[lesPages].hidden=false;
    if (lesPages[lesPages.length-1]!=t.length-1) t[t.length-1].hidden=true;
    this.print({bUI: true, nStart: "+i+", nEnd: "+i+"});
    for (var i=0; i<t.length; i++) { t.hidden=true; t.hidden=false; } // df=new Date(); fin=util.printd("dd/mm/yyyy – HH:MM:ss",df); console.println("Fin du process : "+fin); temps=(df.valueOf()-d0.valueOf())/1000/60; var lesMinutes=parseInt(temps); var lesSecondes=(temps-lesMinutes)*60; var lesSecondes=parseInt(lesSecondes*10)/10; var leTemps=""; if (lesMinutes>0) {
    if (lesMinutes==1) var leTemps="1 minute";
    else var leTemps=lesMinutes+" minutes";
    }
    if (lesSecondes>0) {
    if (lesSecondes<2) var leTemps=leTemps+" "+lesSecondes+" seconde";
    else var leTemps=leTemps+" "+lesSecondes+" secondes";
    }
    var leTemps=leTemps.replace(/^\s+|\s+$/gm,"");
    console.println("Durée : "+leTemps);
    //
    }

    Mais là  seulement la 1ère page s’imprime.

    Je vais continuer de creuser…

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

    Par contre je ne vois pas ou placer ce script.

    J’ai essayé plusieurs choses et j’ai à chaque fois le même message d’erreur :

    Début du process : 20/11/2022 – 08:16:30
    Field:Mouse Up:256: TypeError: t is undefined

    en réponse à : Impression #71969
    michel c.
    Participant

    Je viens de penser à 2 façons de contourner le problème mais je ne sais pas si c’est possible.

    1. Serait il possible qu’après avoir cochée les pages à imprimer, le script supprime du document celles qui n’ont pas été cochées, lance l’impression de la totalité des pages puis annule l’opération de suppression des pages.
    2. Sinon même chose mais juste après l’impression, le document est automatiquement sauvegardé sous un autre nom pour ne pas écraser le fichier original et ne pas se retrouver avec des pages en moins.

    Merci

    en réponse à : Impression #71968
    michel c.
    Participant

    Je vais potasser un peu ça ou alors essayer de trouver une astuce pour que ça fonctionne en imprimant une plage de pages.

    en réponse à : Impression #71960
    michel c.
    Participant

    bebarth wrote:

    bonjour, Essaye avec :... eval("if (theCB"+i+"==true) {console.println(\"Nom Page \"+"+(i+1)+");this.print({bUI: false, nStart: "+i+", nEnd: "+i+"});}"); ... mais normalement lorsqu’on n’indique pas nEnd, seule la page nStart est imprimée ! @+

    Merci !
    Là ça fonctionne bien mieux avec le soft que l’on utilise au boulot.

    Seules les pages demandées sont imprimées. Elles ne sont toujours pas regroupées dans une seule impression ce qui empêche de faire du recto-verso et qui oblige à saisir le code du photocopieur pour chaque page.

    Par contre avec adobe reader DC, ça reste bloqué sur la console qui affiche : “Les pages à imprimer sont :” et c’est tout, rien ne se passe après.

     

    print_test-1.6_BB.pdf

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

    Merci pour la mise en page en 3 colonnes de la dialog box. Je n’aurais pas trouvé tout seul.

    Par contre, il y a toujours un bug lors de l’impression mais celui-ci n’est pas présent avec adobe reader DC (ce qui est dommage car au lycée nous avons acheté la licence pour le logiciel PDFXChange Editor)

    Lorsque je sélectionne par exemple la page 1 et la page 3, cela lance 2 impressions.

    Sur la 1ère il y a les pages 1 ; 2 ; 3 ; 4 et 5 et sur la 2ème impression, les pages 3 ; 4 et 5

    J’ai le même bug pour chaque impression demandée, sauf si je demande uniquement la page 5.

    Si je demande l’impression de toutes les pages, alors j’aurais 5 impressions lancées :

    • toutes les pages
    • les pages 2 ; 3 ; 4 et 5
    • les pages  3 ; 4 et 5
    • les pages  4 et 5
    • la page 5

    Avec adobe reader j’ai une impression pour chaque page demandée. C’est mieux mais pas très pratique car à chaque impression je dois saisir le code du photocopieur. Je ne sais pas si il est possible d’avoir toutes les pages cochées en une seule impression.

    Merci

    en réponse à : Impression #71940
    michel c.
    Participant

    Oui, effectivement, je cherche comment avoir les éléments de la dialog box organisés différemment (en 2 ou 3 colonnes ce serait bien).

    Si tu as la réponse, je suis preneur.

    Merci

    en réponse à : Impression #71933
    michel c.
    Participant

    J’ai réussi à résoudre certains trucs :

    J’ai un décalage entre la page choisie et la page imprimée : c’est bon

    • J’arrive à choisir le format de la page et l’imprimante
    • J’ai toujours ce problème d’impression d’une plage de pages et non pas des pages spécifiées.

    Par exemple si je choisis d’imprimer la page de l’élève 20 (page 21) ; celle de l’élève 25 (page 26) et celle de l’élève 30 (page 31), alors ça me lance l’impression des pages 21 à 33 puis l’impression des pages 26 à 33 et enfin l’impression des pages 31 à 33.

    Il faudrait pour bien faire que j’ai uniquement ces 3 pages de lancées en une seule impression (à chaque impression nous devons saisir le code de l’imprimante)

    Je pense qu’il y a une solution dans ce code que j’ai trouvé sur le net et qu’il faut que j’adapte :

    var pp = this.getPrintParams();

    var printRange = [];

    printRange.push([0,0]); // print page 1

    printRange.push([2,2]); // print page 3

    printRange.push([4,4]); // print page 5

    printRange.push([7,7]); // print page 8

    pp.printRange = printRange;

    this.print(pp);

    Pas sur que j’y arrive rapidement

    Merci

    print_test-1.3_BB

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

    Pour cela il faut que je note sur un post-it le nom des élèves dont je souhaite imprimer la fiche avec le numéro de page qui correspond.

    Là je coche directement les noms des élèves dont je souhaite imprimer les fiches. Et comme il y a environ 30 élèves par classe et parfois un enseignant a 10 classes, à l’approche du conseil de classe, le gain de temps est assez énorme.

    en réponse à : Impression #71922
    michel c.
    Participant

    J’ai adapté ta solution à mon document, mais j’ai quelques soucis :

    • J’ai un décalage entre la page choisie et la page imprimée
    • Je n’arrive à choisir le format de la page ni l’imprimante
    • J’ai un problème d’impression : ça imprime une plage de pages et non pas des pages spécifiées.

    Merci

    print_test-1.2_BB

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

    A priori il faut que j’utilise plutôt une liste qu’une liste déroulante afin pouvoir faire une sélection multiple.

    • Cette réponse a été modifiée le il y a 2 années et 3 mois par michel c..
    en réponse à : Caractère spécial #71904
    michel c.
    Participant

    Entre temps j’ai fait ceci en superposant 2 images. On peut faire comme cela ou c’est plutôt à éviter ?

    Je vais potasser un peu buttonImportIcon

     

    Merci

     

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Caractère spécial #71901
    michel c.
    Participant

    J’arrive à mettre l’action sur l’image, à charger 3 images différentes pour le survol, le bouton haut et le bouton bas, mais je ne vois pas trop comment faire pour avoir une autre image lorsque le bouton est “enclenché”.

    C’est à dire avoir une image différente en fonction de l’état des champs que je souhaite afficher/cacher et que ces images soient incorporées au document.

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Caractère spécial #71896
    michel c.
    Participant

    Chez moi ça affiche un point quand le champ a été cliqué, le symbole ne s’affiche qu’au survol du curseur. Je suppose que c’est un problème de police de caractère manquante… Mais souvent la bonne réponse vient de l’abandon de la « mauvaise » question : tu essaies de réinventer la roue en faisant se comporter des champs de texte comme des boutons. Alors pourquoi ne pas utiliser des champ de formulaire de type « boutons » ? L’énorme avantage c’est que dans un bouton on peut utiliser une image comme label, on n’est pas limité à du texte. Et ça t’éviterait d’avoir à gérer deux champs de texte l’un par-dessus l’autre.

     

    Euh je ne sais pas faire… On peut insérer une image comme label d’un bouton à la place du texte ?

    Edit : je viens de trouver (voir pj). Il faut juste que je charge une autre image (oeil barré) en modifiant le script lorsque l’utilisateur veut cacher si je comprend bien.

    Il faut donc que je trouve la commande pour charger une image via un script?

    Par contre, il faudra que l’image soit présente dans les fichiers des utilisateurs ?

    Merci

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

    J’ai bien intégré l’unicode dans mon script, cependant, bien que le symbole s’affiche correctement sur mon pc perso, il ne s’affiche pas au boulot.

    Ou plutôt, il s’affiche à l’ouverture du document, mais dès que je clique sur les boutons, il disparait et n’apparait plus ensuite.

    Je précise que j’utilise PDFXChange editor et non pas Adobe acrobat DC

    Mais même sur adobe acrobat reader DC (version gratuite), l’icone ne s’affiche pas.

     

     

    • Cette réponse a été modifiée le il y a 2 années et 3 mois par michel c..
    Attachments:
    You must be logged in to view attached files.
    en réponse à : Cacher/montrer avec un bouton unique #71854
    michel c.
    Participant

    Une petite question en passant : écrire : if (this.getField("test."+indice).display == display.visible) this.getField("test."+indice).display = display.hidden;

    équivaut à écrire : if (this.getField("test."+indice).display == display.visible) {this.getField("test."+indice).display = display.hidden;}

    Les accolades sont facultatives ?

    en réponse à : Cacher/montrer avec un bouton unique #71852
    michel c.
    Participant

    Il me manque encore pas mal de bases….

    Merci

    en réponse à : Cacher/montrer avec un bouton unique #71847
    michel c.
    Participant

    Voici le fichier

    Attachments:
    You must be logged in to view attached files.
Affichage de 99 réponses de 199 à 297 (sur un total de 431)