Donnez vie à vos documents numériques !
 

Rockabilly

Toutes mes réponses sur les forums

Affichage de 37 réponses de 1 à 37 (sur un total de 37)
  • Auteur
    Réponses
  • en réponse à : Appliquer un script sur 16 champs sur 22 #71250
    Rockabilly
    Participant

    C’est parfait. Une réponse très simple et je vais m’en souvenir pour les prochaines fois.

    Merci Bebarth

    en réponse à : Numéro aléatoire sans répétition #64959
    Rockabilly
    Participant

    bonjour,
    Je t’ai fait un nouveau ficher avec lequel tu peux retirer les numéros aléatoires.
    Petit plus qui n’était pas obligatoire, je reclasse les numéro dans l’ordre dans le champ “Invisible” même si ça ne sert à rien vu qu’il l’est…
    J’ai mis les scripts en fonctions, ce qui évite de les copier/coller dans tous les champs à chaque modification. Ici il n’y a que 8 patients, mais imagine si tu veux adapter ton fichier pour 200 !!!  :geek:
    @+
    :bonjour:

    Merci encore pour ton aide. J’avais réussi à arriver aux mêmes résultats avec peine et misère et avec des bugs.
    Tes scripts sont plus simples et infaillibles.
    :bravo:  :bonjour:

    en réponse à : Numéro aléatoire sans répétition #64954
    Rockabilly
    Participant

    Bonjour.
    Je n’ai pas suivi la question de près, mais par-contre ça, ça pique les yeux !
    Voir : http://www.academie-francaise.fr/abreviations-des-adjectifs-numeraux
    :Smiley03:

    Ça fait trop longtemps que je n’ai pas écrit en français  :Ooops:

    en réponse à : Numéro aléatoire sans répétition #64953
    Rockabilly
    Participant

    bonjour,
    Voila ! Dans le fichier joint il y a un champ “Invisible” qui est… invisible et qui, une fois réinitialisé, est égale à “1,2,3,4,5,6,7,8”.
    Puis le script dans chaque bouton (qui pourrait être en script de document) :

    Code:
    var str = this.event.target.name;
    var n = str.indexOf(“.”);
    var indice = parseInt(str.substring(n+1));
    var str = this.getField(“Invisible”).value;
    try {
        var laTable = str.split(“,”);
        var n=Math.floor(Math.random()*laTable.length);
        var nb=laTable[n];
        this.getField(“Number.”+indice).value=nb;
        laTable.splice(n, 1);
        this.getField(“Invisible”).value=laTable.toString();
    } catch(e) {this.getField(“Number.”+indice).value=this.getField(“Invisible”).value}
    this.event.target.readonly=true;

    Ici, j’ai mis les boutons en lecture seule une fois que l’on a appuyé dessus, et un bouton de réinitialisation de tous les champs.
    @+
    :bonjour:

    Merci bebarth, ça fonctionne à merveille.
    En fait, j’ai un bouton à côté de chaque patient pour annuler son numéro si le patient se retire et le remettre dans le champ invisible.
    J’utilise ce code pour remettre le numéro dans le champ:

    Code:
    var s1 = getField(“Number.1”).valueAsString;
    this.getField(“Invisible”).value = this.getField(“Invisible”).value + “,” + s1;

    Cependant j’ai remarqué que le dernier numéro ne disparait jamais du champ invisible, alors si j’annule la dernière randomisation le numéro se retrouve 2 fois ou si j’annule disons le sixième patient, j’ai le dernier numéro et celui du sixième patient. Donc si je re-randomise, il est possible que 2 patients aient le même numéro.

    en réponse à : Numéro aléatoire sans répétition #64950
    Rockabilly
    Participant

    Bonjour bebarth
    En effet, il y a un bouton devant chaque champ “Number.” puisque chaque patient sera recruté un-à-un plutôt qu’en groupe.
    Lorsqu’on appuie sur le premier bouton, un nombre aléatoire entre 1 et 8 apparait (dans un champ masqué) et selon le numéro tiré, le patient sera dans le groupe avec ou sans traitement.
    Lorsque le deuxième patient est recruté (qui peut être dans 10 jours par exemple) on appuie sur le deuxième bouton et un numéro sera tiré, mais il doit être différent du premier numéro tiré. Dépendemment du numéro, le patient sera dans le groupe avec ou sans traitement.

    Une fois que le bouton est pressé, je fais disparaitre le bouton pour justement empêcher qu’on puisse le ré-appuyer.

    Il y a en effet des cases à cocher pour indiquer si le patient est dans le groupe avec ou sans traitement, mais celles-si seront cochées selon le numéro tiré.

    Il n’y a que 8 patients et chacun d’eux doit recevoir un numéro.

    Merci pour ton aide

    en réponse à : Numéro aléatoire sans répétition #64948
    Rockabilly
    Participant

    Merci pour on aide bebarth.
    Le problème de mon formulaire est que j’ai un bouton pour chaque numéro plutôt que 1 bouton pour randomiser les 8 patients en un seul clic.
    J’ai “essayé” de modifier le code pour mettre dans chaque bouton. Donc dans le premier bouton j’ai mis le code où j’ai changé le “Number.”+i à 1:

    Code:
    var laTable=[1,2,3,4,5,6,7,8];
    for (var i=1; i<=8; i++) {
        var n=Math.floor(Math.random()*laTable.length);
        var nb=laTable[n];
        this.getField(“Number.1”).value=nb;
        laTable.splice(n, 1);
    }

    Cela fonctionne. Ensuite j’ai mis ce code dans le 2ième bouton et ça fonctionne:

    Code:
    if (this.getField(“Number.1”).value== “1”)
    {
    var laTable=[2,3,4,5,6,7,8];
    for (var i=2; i<=8; i++) {
        var n=Math.floor(Math.random()*laTable.length);
        var nb=laTable[n];
        this.getField(“Number.2”).value=nb;
        laTable.splice(n, 1);
    }
    }

    if (this.getField(“Number.1”).value== “2”)
    {
    var laTable=[1,3,4,5,6,7,8];
    for (var i=2; i<=8; i++) {
        var n=Math.floor(Math.random()*laTable.length);
        var nb=laTable[n];
        this.getField(“Number.2”).value=nb;
        laTable.splice(n, 1);
    }
    }

    if (this.getField(“Number.1”).value== “3”)
    {
    var laTable=[1,2,4,5,6,7,8];
    for (var i=2; i<=8; i++) {
        var n=Math.floor(Math.random()*laTable.length);
        var nb=laTable[n];
        this.getField(“Number.2”).value=nb;
        laTable.splice(n, 1);
    }
    }

    if (this.getField(“Number.1”).value== “4”)
    {
    var laTable=[1,2,3,5,6,7,8];
    for (var i=2; i<=8; i++) {
        var n=Math.floor(Math.random()*laTable.length);
        var nb=laTable[n];
        this.getField(“Number.2”).value=nb;
        laTable.splice(n, 1);
    }
    }

    if (this.getField(“Number.1”).value== “5”)
    {
    var laTable=[1,2,3,4,6,7,8];
    for (var i=2; i<=8; i++) {
        var n=Math.floor(Math.random()*laTable.length);
        var nb=laTable[n];
        this.getField(“Number.2”).value=nb;
        laTable.splice(n, 1);
    }
    }

    if (this.getField(“Number.1”).value== “6”)
    {
    var laTable=[1,2,3,4,5,7,8];
    for (var i=2; i<=8; i++) {
        var n=Math.floor(Math.random()*laTable.length);
        var nb=laTable[n];
        this.getField(“Number.2”).value=nb;
        laTable.splice(n, 1);
    }
    }

    if (this.getField(“Number.1”).value== “7”)
    {
    var laTable=[1,2,3,4,5,6,8];
    for (var i=2; i<=8; i++) {
        var n=Math.floor(Math.random()*laTable.length);
        var nb=laTable[n];
        this.getField(“Number.2”).value=nb;
        laTable.splice(n, 1);
    }
    }

    if (this.getField(“Number.1”).value== “8”)
    {
    var laTable=[1,2,3,4,5,6,7];
    for (var i=2; i<=8; i++) {
        var n=Math.floor(Math.random()*laTable.length);
        var nb=laTable[n];
        this.getField(“Number.2”).value=nb;
        laTable.splice(n, 1);
    }
    }

    Mais pour le 3ième bouton, il faudrait que je mette les 56 possibilités pour changer laTable, ce qui est faisable… mais le 4ième bouton sera pire et rendu au 8ième bouton, ce sera quasi impossible.

    en réponse à : Changer le résultat d’un calcul manuellement #60691
    Rockabilly
    Participant

    Ça fonctionne. J’avais juste oublié d’insérer le script dans les deux champs LVESV.

    en réponse à : Changer le résultat d’un calcul manuellement #60689
    Rockabilly
    Participant

    Le script d’alerte est dans chacun des 2 champs “StressLVEF” et “StressLVEFDec” en Souris Enfoncée et j’ai placé le script dans le calcul et ça ne fonctionne pas.

    en réponse à : Changer le résultat d’un calcul manuellement #60687
    Rockabilly
    Participant

    Merci bebarth.
    J’ai une autre question. Je voudrais faire en sorte que les champs “StressLVEF” et “StressLVEFDec” soient en readonly lorsque l’un ou l’autre des champs “StressLVEDV” et “StressLVESV” est vide.
    Lorsque la réponse apparaitra, les champs deviendront remplissables et l’utilisateur pourra par la suite changer la valeur manuellement.
    Le problème que j’ai est que lorsque je rajoute le code, le message “Voulez-vous vraiment modifier ce champ?” n’apparait plus. J’ai essayé de mettre le code à plusieurs endroit, mais le message n’apparait plus.

    if ((this.getField(“StressLVEVD”).value != “”) && (this.getField(“StressLVESD”).value != “”))
    {
    this.getField(“StressLVEF”).readonly = false;
    this.getField(“StressLVEFDec”).readonly = false;
    }
    else
    {
    this.getField(“StressLVEF”).readonly = true;
    this.getField(“StressLVEFDec”).readonly = true;
    }

    en réponse à : Changer le résultat d’un calcul manuellement #60685
    Rockabilly
    Participant

    En effet, ça fonctionne lorsque je modifie partieEntiere avec partieEntiere1, partieEntiere2, partieEntiere3. Je croyais que les variables n’étaient utilisées que pour le champ dans laquelle elles étaient insérées.

    Une dernière question… en faisant des tests, je viens de remarquer que si le résultat d’un calcul arrive à 92.96 le résultat montrerait 92 pour la partieEntiere et 10 dans la partieDecimale. Je comprends que c’est à cause de la fonction Math.floor du calcul, mais y-a-t’il une possibilité de mettre 93 et 0.

    J’ai essayé de rajouter ce code, mais ça n’a pas fonctionné:

    if (this.getField(“StressLVEDViDec”).value = “10”)
    {
    event.value = partieEntiere3+1;
    this.getField(“StressLVEDViDec”).value = “0”
    }

    en réponse à : Changer le résultat d’un calcul manuellement #60683
    Rockabilly
    Participant

    J’ai réussi a intégrer les décimales dans le calcul.
    Cependant lorsque je remet les autres champs du formulaire, le calcul devient erroné pour une raison quelconque. La source du problème sont les champs “StressLVEDVwhole” et “BSAwhole” et “BSAdecimal”.
    Lorsque j’enlève ces champs, le calcul est exact et instantané.
    De plus, l’apparition du calcul de “Stress LVEDVi” n’est plus instantané, mais en retard d’une touche.
    De ce que je peux comprendre, c’est qu’un calcul dépend d’un autre calcul et qu’il faut re-organiser l’ordre des calculs… mais je n’y arrive pas  :mur:

    Essayez avec les valeur 150.5 et 99.5 dans les champs LVEDV et LVESV respectivement.

    en réponse à : Changer le résultat d’un calcul manuellement #60679
    Rockabilly
    Participant

    Merci bebarth.

    J’ai essayé d’adapter le code dans mon formulaire, mais ça ne fonctionne pas. Les calculs sont un peu plus complexes qu’une addition, mais pas autant. Ce n’est qu’une soustraction suivis d’une divsion.
    Le gros problème est que je dois joindre la partie entière avec la partie décimale (s’il y en a une) pour faire le calcul.

    J’ai joint une maquette, si quelqu’un peut m’aider.

    en réponse à : Changer le résultat d’un calcul manuellement #60675
    Rockabilly
    Participant

    Oui je sais qu’il faudrait débuter par le script que tu as donné, mais je suis plus intéressé par le fait de pouvoir changer manuellement le résultat de l’équation.

    J’ai trouvé un exemple de formulaire sur le forum d’Adobe, mais le formulaire a été créé dans LiveCycle.
    Est-ce que quelqu’un peut m’aider à trouver le code pour changer le résultat en donnant également un avertissement?

    en réponse à : Date non-valide #59598
    Rockabilly
    Participant

    J’ai trouvé le problème… il ne doit pas y avoir de point-virgule (;)  après la condition.

    en réponse à : Date non-valide #59597
    Rockabilly
    Participant

    Encore moi avec la même question, mais j’ai réussi à faire un pas de plus en utilisant else if.

    Code:
    if(this.getField(“WeekDay”).value == “Mon”) 
    {num += -(1000 * 60 * 60 * 24 * 3);} 
     
    else if 
    ((this.getField(“WeekDay”).value == “Tue”) || (this.getField(“WeekDay”).value == “Wed”) || (this.getField(“WeekDay”).value == “Thu”) || (this.getField(“WeekDay”).value == “Fri”)) 
    {num += -(1000 * 60 * 60 * 24);} 
     
    else if 
    (this.getField(“Today”).value == “03/29/2016”); 
    {num += -(1000 * 60 * 60 * 24 * 5);} 
     
    else if 
    (this.getField(“Today”).value == “05/24/2016”); 
    {num += -(1000 * 60 * 60 * 24 * 4);} 
     
    else if 
    (this.getField(“Today”).value == “07/04/2016”); 
    {num += -(1000 * 60 * 60 * 24 * 4);} 

    Le hic est que la console me dit quìl y a une erreur après la première exception, donc je ne peux pas ajouter une autre exception.
    Si j’enlève la deuxième et troisième exception, ça fonctionne bien.
    Quelqu’un peut m’aider pourquoi et comment régler cette erreur?

    en réponse à : Date non-valide #59596
    Rockabilly
    Participant

    J’aurais une nouvelle question.
    Lorsqu’arrivera le 12/29/2015, je voudrais que la date du scan soit le 12/24/2015 plutôt que le 12/28/2015. J’ai essayé plusieurs façons, mais je n’y arrive pas.
    J’ai essayé:
    if(this.getField(“Today”).value == “12/29/2015”){
    m.value = util.printd (“mm”, new Date(num));fld.value = util.printd (“dd”, new Date(num));y.value = util.printd (“yyyy”, new Date(num));
    [font=verdana, arial, sans-serif]}

    [/font]

    en réponse à : Date non-valide #59595
    Rockabilly
    Participant

    Merci bebarth
    Le script a réglé mes 2 problèmes

    en réponse à : Si lundi, remplacer par la date du dernier vendredi #59167
    Rockabilly
    Participant

    Ça fonctionne à merveille. Merci

    en réponse à : Message apparait plus d’une fois #58696
    Rockabilly
    Participant

    Bonjour,
    Les champs de saisie sont au format numérique. Une saisie 0 est interprétée comme une saisie vide et la comparaison n’est pas effectuée dans ce cas d’où le problème.
    Dans la boucle du script de contrôle remplacer la ligne suivante:
    if(sp.value!=””&sp.value!=9&r.value!=””&r.value!=9)
    Par:
    if((sp.value!=””|sp.value==0)&sp.value!=9&(r.value!=””|r.value==0)&r.value!=9)

    Bonjour Alex
    Cela fonctionne bien, mais il semble y avoir un autre problème. Si Rest > Stress, et que l’on accepte la valeur lors de la vérification, le message de vérification revient lorsque l’on touche un autre champ.
    Par exemple, dans la maquette v4 j’ai rajouté deux boites. Si on provoque une situation où Rest > Stress et que l’on accepte, jusque là tout va bien. Mais is après je veux aller cliquer sur Modality (ou changer un chiffre dans le champ TID), le message revient.

    Est-ce possible de faire en sorte que lorsque le message est apparu une fois et que la vérification a été faite, de ne plus revoir le message?
    Merci encore pour ton aide.

    en réponse à : Message apparait plus d’une fois #58693
    Rockabilly
    Participant

    On approche du but.
    C’est le calcul de la variable sommeRP qui était concerné par cette erreur car il passait par la mise à jour des champs RP. Une erreur de débutant….
    J’ai indiqué en commentaire dans le script de controle les modifications que j’ai apporté.
    Reste à faire quelques tests pour les cas particuliers (saisies inconsistantes en particulier).
    On voit dans cet exemple qu’il faut préférer le script unique à une cascade de calculs associés à des champs, enchaînement toujours délicat à gérer.

    J’ai retravaillé le formulaire et j’ai remarqué un problème qui était déjà présent dans ta maquette V4.
    Lorsque l’on rentre la valeur “0” dans la partie Stress et qu l’on insère une valeur plus élevée dans la partie Rest, il n’y a pas de message d’erreur indiquant que Rest>Stress. Cela ne fonctionne que si la valeur de Stress est  >= 1. Comment puis-je intégrer le message d’erreur pour qu’il s’affiche également lorsque la valeur est “0”?

    en réponse à : Message apparait plus d’une fois #58692
    Rockabilly
    Participant

    Tout fonctionne à merveille.

    Une dernière question. J’ai retravaillé la fonction SPNormal et RPNormal qui remplit toutes les cases avec 0. Par contre je sais pertinemment comment les utilisateurs utiliseront cette fonction. Ils cliqueront dessus pour remplir tous les champs, et ensuite ne changeront que les segments affectés. Donc, je voudrais faire en sorte que si la fonction SPNormal (ou RPNormal) est activée et qu’un des champs n’est plus égal à 0, d’enlever le crochet dans la boîte SPNormal. J’ai essayé de plusieurs façons, mais je n’y arrive pas car je ne sais pas où mettre le script. Dois-je le mettre dans le script de bouton normal ou dois-je le mettre dans chacune des cases?

    en réponse à : Message apparait plus d’une fois #58688
    Rockabilly
    Participant

    Merci Alex pour ton aide.
    Je ne sais pas s’il y a un problème avec le script de controle, mais la valeur de Ischemia Defect est calculée en retard. e.g. la valeur de sdsraw égale à 2, le Ischemia Defect ne sera calculé qu’au prochain changement de valeur mais en utilisant le 2 comme valeur même si la valeur est maintenant de 3.

    Modification: Parfois ça fonctionne en synchro et parfois il est en retard.

    Comment puis-je insérer le calcul de SRS et SDS dans la même fonction de contrôle, où SRS est la somme des valeurs de RP (pas les rawRP) et SDS est la différence entre SSS et SRS?
    J’ai essayé en utilisant le même patron de script, mais je n’y arrive pas.

    en réponse à : Message apparait plus d’une fois #58686
    Rockabilly
    Participant

    Je crois que je préfère la première façon que tu avais proposé, i.e. 4 fonctions. De cette façon ce sera plus facile pour moi de faire des modifications au script.
    Je voudrais garder le calcul de SSS, SRS et SDS de façon indépendante que j’avais préalablement oublié d’expliquer:
    – SSS est la somme des 17 champs SP;
    – SRSraw est la somme des 17 champs rawRP;
    – SDSraw est la différence de SSS et rawSRS.

    une unique fonction de calcul pour chacun des champ RP

    J’ai le script individuel que je pourrais mettre dans chaque champs RP, mais j’aimerais pouvoir le rendre en fonction pour les champs RP

    if((this.getField(“rawRP1”).value>=0&this.getField(“rawRP1”).value<=4))
    {
    if((this.getField(“rawRP1”).value < this.getField("SP1").value) && (this.getField("rawRP1").value!=9))
    {this.getField(“RP1”).value.value = this.getField(“rawRP1”).value
    this.getField(“RP1”).required = false;
    }
    else
    if((this.getField(“rawRP1”).value > this.getField(“SP1”).value) && (this.getField(“rawRP1”).value!=9))
    {this.getField(“RP1”).value = this.getField(“SP1”).value
    this.getField(“RP1”).required = false;
    }
    else
    {this.getField(“RP1”).required = true;}}

    en réponse à : Message apparait plus d’une fois #58683
    Rockabilly
    Participant

    Merci pour les conseils de fonctions, mais j’aurai besoin d’aide.
    J’ai réussi à faire fonctionner le script des champs rawRP et du même coup les champs SP.
    Maintenant j’ai essayé de d’écrire un script pour le contrôle des champs rawRP avec les champs SP, mais je crois que j’ai besoin d’aide.
    Voici ce que j’ai qui ne fonctionne pas (de plus lorsque je rajoute cette fonction, l’autre ne fonctionne plus):

    Code:
    function controle()
    {
    console.clear();
    var r = this.getField(“rawRP”+n);
    var s = this.getField(“SP”+n);

    console.println(r.name + ” value = ‘” + r.value + “‘”);
    console.println(s.name + ” value = ‘” + s.value + “‘”);

    //Controle de la saisie
      if(r.value > s.value)
      {
          var nRtn = app.alert(“ERROR: Rest Perfusion should not be greater than Stress Perfusion. Are you sure this is correct?”,1,2);
          if(nRtn == 4)
          {
          //Valid
          r.required = false;
          }
          else if(nRtn == 3)
          {
          r.required = true;
          event.rc = false;
          }
      }
      else
      {
      r.required = false;

      }
    }

    Rockabilly
    Participant

    PDF Expert fonctionne pour insérer une photo.
    Tu dois créer un bouton à l’endroit et de la grosseur désirés, puis insérer le code suivant pour le bouton:

    Code:

    var f = this.getField(“Picture”);
    f.buttonImportIcon();

    en réponse à : Equivalent de A99A et AA99A en script #57819
    Rockabilly
    Participant

    Wow ça fonctionne à merveille. Merci à tous

    en réponse à : Equivalent de A99A et AA99A en script #57813
    Rockabilly
    Participant

    Salut Merlin
    Merci de vouloir m’aider, alors voici une maquette.

    en réponse à : Heure contrôlé change constamment #56553
    Rockabilly
    Participant

    C’était trop simple.  :Ooops: Merci Merlin

    en réponse à : Combo Box conditionnellement requis . – répondu #55804
    Rockabilly
    Participant

    La liste déroulante est vide au départ, mais permet de sélectionner un des choix ou de remplir par d’autres initiales.
    Les autres champs concernés sont tous les autres champs dans la maquette.

    Le script que j’ai écrit et qui ne fonctionne pas est le suivant:
    if (!event.willCommit)

    Code:
    {
    if (event.changeEx == “”)

    {

    if(
    (getField(“ContrastBolus”).value != “”)
    || (getField(“ContrastCT”).value != “”)
    || (getField(“ContrastMix”).value != “”)
    || (getField(“ContrastMixPercent”).value != “”)
    || (getField(“Saline”).value != “”)
    || (getField(“ContrastBolusRate”).value != “”)
    || (getField(“ContrastCTRate”).value != “”)
    || (getField(“ContrastMixRate”).value != “”)
    || (getField(“SalineRate”).value != “”)
    || (getField(“MA”).value != “”)
    || (getField(“kV”).value != “”)
    || (getField(“DLPNonContrast”).value != “”)
    || (getField(“DLPBolus”).value != “”)
    || (getField(“DLPCardiac”).value != “”)
    )
       
    {
    getField(“Tech”).required = true;

    }}}  else {

    if ((event.changeEx == “CLI”) || (event.changeEx == “MH”) || (event.changeEx == “MPK”) || (event.changeEx == “RAT”))
    {
    getField(“Tech”).required = false;

    }
    }

    en réponse à : Phrase qui clignote. – RÉSOLU #54970
    Rockabilly
    Participant

    Voila ma maquette  :Ooops:

    [attachment deleted by admin]

    en réponse à : Phrase qui clignote. – RÉSOLU #54968
    Rockabilly
    Participant

    Je voudrais faire clignoter un champ de texte, mais seulement lorsqu’une boite est cochée. J’ai essayé d’utiliser le script dans l’exemple du pdf texte-clignotant, mais je n’arrive pas à le faire disparaitre lorsque la case n’est pas cochée. Comment puis-je modifier le script?

    Rockabilly
    Participant

    Ouais j’ai allumé en même temps :oh:. J’ai réussi à protéger l’heure déjà remplie.
    Maintenant il faut que je continue de travailler sur le premier problème qui est en fait le principal objet de cette discussion  :mur:

    Rockabilly
    Participant

    La question de fond est: pourquoi les cases-à-cocher du haut controllent l’heure de “Injected @” et de “Imaged @” (si une heure est déjà présente).

    Pour visualiser mon problème, il faut cocher une des 3 cases du haut et au moins une des cases du bas. Attendre 1 minute et re-cocher une des sélections du haut… puis l’heure des 2 champs sera changé alors que ça ne devrait qu’être l’heure du haut qui change. L’heure du bas devrait rester inchangée.

    Pourtant le contraire fonctionne. Si on re-coche une case du bas, seulement l’heure du bas change.

    L’autre problème dont je viens de penser est si cèest possible de ne jamais changer l’heure lorsqu’il y a déjà une heure dans le champ?

    Rockabilly
    Participant

    Bonjour,
    Il y a une erreur de script, la valeur d’export du bouton radio Stannous_IV n’existe pas (afficher la liste des champ pour s’en rendre compte:

    (this.getField(“Stannous_IV”).value == “3”)
    Il serait préférable de lancer un script unique à partir des 3 occurences de ce bouton radio avec un test sur la valeur d’export.
    Je vous envoie le formulaire corrigé demain si vous ne vous en sortez pas.

    Ce n’est pas un bouton radio, mais plutôt des checkbox. Je comprends que le champ Stannous_IV#3 n’existe pas, mais la valeur d’export de “Other” est “3”.
    Mais le problème est plutôt d’éviter que la re-sélection de “Stannous_IV” entraine un changement d’heure de “Imaging_HH” et “Imaging_MM”.
    En poussant encore plus loin, est-il également possible d’éviter un changement d’heure si l’heure est déjà présente, i.e. si une sélection de “Imaged views” est faite et qu’une autre view est sélectionné plus tard, de ne pas changer l’heure déjà en place?

    Je ne sais pas si c’est préférable d’utiliser des boutons radio, mais je n’aime pas vraiment cette option, car une fois qu’une sélection est faite il n’y a plus moyen de l’enlever. C’est pour cette raison que j’utilise toujours des checkbox exclusifs.

    Rockabilly
    Participant

    Bonjour,

    :idee: Le mieux serait de nous joindre ce document.

    Lionel :alien2:

    J’ai joint le document… il s’appelle “Time” dans mon premier poste.

    Rockabilly
    Participant

    J’ai réussi à m’en sortir.
    Tout d’abord, pour la conversion de cm en pieds et pouces, j’ai enlevé tout le code superflu et ça donne ceci:

    var result;

    result = Math.ceil((getField(“Inches”).value) + (getField(“Feet”).value * 12)) * 2.54  ;
           
    event.value = result == 0 ? “” : util.printf(“%.0f”, result);

    et pour le problème de 12 pouces, je n’ai fait que rajouter +0.04 au script et de cette façon on obtient 6′ plutôt que 5’12”; ou 5′ plutôt que 4’12”, etc.

    en réponse à : Seulement montrer les décimales. – RÉSOLU #55230
    Rockabilly
    Participant

    Merci, ça fonctionne à merveille. Je savais que je devais enlever la partie entière, mais je ne savais pas trop comment enlever les décimales. Il fallait seulement y penser de multiplier par 100.

    Pourquoi faire simple quand on peut compliquer ?

    Je sais, si seulement on m’avait demandé de créer ce formulaire avant de le déployer à tous les utilisateurs  :Euuuh:

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