Donnez vie à vos documents numériques !
 

TOTAL en fonction de cases cochées. – RÉSOLU

abracadabraPDF Forums PDF – Général TOTAL en fonction de cases cochées. – RÉSOLU

  • Ce sujet est vide.
  • Créateur
    Sujet
  • #44423
    bruninho
    Membre

    Bonjour,

    Je réalise actuellement un formulaire avec des options (cases à cocher).
    Et dans chaque option, j’ai un champ NOMBRE qui va permettre d’établir une valeur à l’option en question.
    Cette valeur est calculée selon le modèle « « Nombre fixe 1 + (NOMBRE*nombre fixe 2) »

    Et au final, je dois établir un prix TOTAL en fonction des options/cases cochées.

    Dans mon exemple :

    Nombre fixe 1 = 1000
    Nombre fixe 2 = 100
    Nombre fixe 3 = 500
    Nombre fixe 4 = 50

    J’ai essayé d’entrer le code ci-dessous dans mon CHAMP TOTAL. Mais, ça ne me donne pas le résultat souhaité.
    Est-ce que quelqu’un pourrait me donner un coup de main ? Sachant que je suis très loin de maîtriser les scripts.

    if (this.getField(“CHAMP-A”).isBoxChecked(0))
    {this.getField(“CHAMP-A”).value = Math.round(1000+this.getField(“NOMBRE-A”).value*100)}
    else
    {this.getField(“CHAMP-A”).value = 0}

    if (this.getField(“CHAMP-B”).isBoxChecked(0))
    {this.getField(“CHAMP-B”).value = Math.round(500+this.getField(“NOMBRE-B”).value*50)}
    else
    {this.getField(“CHAMP-B”).value = 0}

    {event.value = Math.round (this.getField(“CHAMP-A”).value)+(this.getField(“CHAMP-A”).value)}

    Merci d’avance.

Affichage de 12 réponses de 1 à 12 (sur un total de 12)
  • Auteur
    Réponses
  • #54517
    Merlin
    Maître des clés

    Salut,

    Je pense que les quelques corrections en rouge devraient faire que ça fonctionne.
    :Smiley01:

    if (this.getField(“CHAMP-A”).isBoxChecked(0))
      {this.getField(“CHAMP-A”).value = Math.round((1000+this.getField(“NOMBRE-A”).value)*100);}
    else
      {this.getField(“CHAMP-A”).value = 0;}

    #54518
    bruninho
    Membre

    Merci de l’aide.
    Mais, cela ne fonctionne pas (cf test ci-joint).
    De plus, j’ai un bug dans les cases cochées. (Case A se décoche quand on coche la case B).

    [attachment deleted by admin]

    #54519
    Merlin
    Maître des clés

    Effectivement, vu comme ça le script était incohérent, celui-ci fonctionne :

    if (this.getField(“CHAMP-A”).isBoxChecked(0))
      {totalA = Math.round((1000+this.getField(“NOMBRE-A”).value)*100);}
    else {totalA = “0”;}

    if (this.getField(“CHAMP-B”).isBoxChecked(0))
      {totalB = Math.round((500+this.getField(“NOMBRE-A”).value)*50);}
    else {totalB = “0”;}

    event.value = totalA + totalB;

    D’autre part, le problème des cases est “normal” :
    – boutons-radio : une seule sélection possible
    – cases-à-cocher : plusieurs sélections possibles

    Donc il faut que tu changes de type de champ (cela ne modifie pas le script).

    :Smiley15:

    #54520
    bruninho
    Membre

    Super… je commence à en voir le bout. Merci beaucoup.

    Par contre, un “bug” est apparu (cf test ci-joint).
    Le total est bon quand je clique les 2 cases ou quand je clique la 2ème.
    Mais il n’est pas bon quand je clique seulement la première case (le résultat est multiplié par 10).  :Euuuh:

    Et pour le bouton radio, je ne peux pas, car je dois pouvoir sélectionner toutes les cases ou seulement une partie.

    Merci encore de ton aide Merlin

    [attachment deleted by admin]

    #54521
    bruninho
    Membre

    Merlin,

    Je viens d’essayer en ajoutant une 3ème OPTION (Option-C)
    Et je viens de voir que cela ajoute un “0” au résultat de l’Option-B et 2 “0” au résultat de l’Option-A.

    #54522
    alex
    Participant

    Bonjour à tous,
    Pour moi ça fonctionne, il faut ajouter des nombres sinon A+B+C donne une chaîne de caractères. Je reviens plus tard pour une solution plus générale.

    [attachment deleted by admin]

    #54523
    Merlin
    Maître des clés

    Oui, bravo !
    :bravo:

    Comme une grosse buse j’ai ajouté des guillemets autour des zéros, j’imagine que c’est pour ça que mon script ne fonctionne pas correctement…
    :oh:  :geek:

    #54524
    bruninho
    Membre

    Merci à vous 2.  :bravo:
    ça me dépanne vraiment !

    #54525
    bruninho
    Membre

    Bonjour,

    Dans la suite de ce post, j’ai dû modifier mon formulaire et la liste des options s’est allongée.
    Dans l’exemple résolu, il y avait 3 options soit le code suivant dans le champ TOTAL :


    if (this.getField(“CHAMP-A”).isBoxChecked(0))
      {
      totalA = Math.round(500+this.getField(“NOMBRE-A”).value*50);
      }
    else {totalA = 0;}

    if (this.getField(“CHAMP-B”).isBoxChecked(0))
      {
      totalB = Math.round(500+this.getField(“NOMBRE-B”).value*50);
      }
    else {totalB = 0;}

    if (this.getField(“CHAMP-C”).isBoxChecked(0))
      {
      totalC = Math.round(500+this.getField(“NOMBRE-C”).value*50);
      }
    else {totalC = 0;}

    event.value = totalA + totalB+ totalC;

    Or, j’ai plus de 40 options. Donc, je fais un copier coller pour avoir 40 TOTAUX (A1, A2…).

    Et j’ai le message d’erreur suivant : “SyntaxError: missing ) after condition”
    Et ce message ne cible qu’une des options (pas sur les 40 bouts de code).

    Je ne comprends plus. Car si j’en supprime une partie (par moment, ça passe !!!)
    Help  :priere:

    #54526
    Merlin
    Maître des clés

    Quelle est ta version d’Acrobat ?
    (Parce-qu’il faut savoir que la Console est archi-buggée dans la version X et que les messages d’erreurs n’y sont pas fiables…)

    Sinon, a-priori la cause est indiquée dans le message : il manque une parenthèse fermante quelque part.
    Une autre cause possible de ce message c’est le manque d’une paire ou d’un seul guillemet quelque part.

    :Smiley15:

    #54527
    bruninho
    Membre

    J’ai ACROBAT PRO 10.1.6.
    Je vais tester avec la version 11.

    Car j’ai tout inspecté et pas d’oubli de guillemet ou parenthèse… sachant que c’était en plus du copier-coller.

    Je teste et je vous redis si ça fonctionne avec la 11.
    En tout cas… merci pour le tuyau

    #54528
    Merlin
    Maître des clés

    J’ai un très mauvais souvenir d’ennuis de ce genre avec Acrobat X. Ou qui parfois refusait des scripts qui ne posaient pourtant pas de problèmes avec d’autres versions…
    A tel point qu’au final je faisais tout ce qui était JavaScript avec la version 9.

    La version XI est censée avoir résolu tous ces problèmes : rien de particulier à signaler jusqu’ici.
    :Smiley01:

Affichage de 12 réponses de 1 à 12 (sur un total de 12)
  • Vous devez être connecté pour répondre à ce sujet.