Donnez vie à vos documents numériques !
 

Case à cocher qui conditionne à calcul puis à afficher un résultat à part…?

abracadabraPDF Forums PDF – Général Case à cocher qui conditionne à calcul puis à afficher un résultat à part…?

  • Ce sujet est vide.
  • Créateur
    Sujet
  • #46096
    Armand
    Membre

    Bonjour,
    je bloque sur des affichages de calcul conditionné à la case à cocher sélectionnée :
    je dispose de 4 situations, 1 seule case à cocher et obligatoire :
    Si la case à cocher est sélectionnée, le champs calcul du montant total (différent dans les 4 situations) doit apparaitre en fin de document.
    Désolé c’est pas très clair, mais je vous mets le document en pièce jointe, vous comprendrez de suite, ce que j’essaye de vous expliquer.
    Si vous avez une idée !!
    merci
    armandb

Affichage de 4 réponses de 1 à 4 (sur un total de 4)
  • Auteur
    Réponses
  • #65885
    Pradow
    Membre

    Salut, ce que je ferais à ta place :

    Mets des radio buttons à la place de checkbox, c’est peut-être moins esthétique mais cela correspondra mieux à ton besoin.
    Si vraiment tu veux tes checkbox, j’a une solution un peu imparfaite mais qui fonctionnera :
    sur chaque bouton, tu mets un évènement “bouton relâché” –> script JS

    Code:
    var cases_desactivees = []
    //On regarde pour chaque case si elle est activée ou non
    for (k=5;k<=8;k++) {  if (this.getField("C"+k).value == "Off") {cases_desactivees.push("C"+k)}}if (cases_desactivees.length !=4){ // Cas où il y a une case activée, on désactive toutes les autres cases
      for (elem in cases_desactivees) {      this.getField(elem).readonly = True; //Eventuellement si tu trouves ça plus joli, tu peux faire this.getField(elem).display = 1 pour cacher toutes les cases non activées
      }
    }else { //Cas où toutes les cases sont désactivées  for (elem in cases_desactivees) {      this.getField(elem).readonly = False; //this.getField(elem).display = 0
      }}

    Donc là, on empêche l’utilisateur de remplir deux checkbox.
    Pour obtenir ta somme, ça va être un peu embêtant mais voila ce que tu peux ajouter, le mieux ce serait à l’intérieur de la boucle for du début, tu ajoutes les code suivant après le if :

    Code:
    else {  somme = 0
      if (k==5) {      somme+=100+Number.parseInt(this.getField(“1proba”))+16+Number.parseInt(this.getField(“ttproba”))  }  if (k==6) {      somme+=50+Number.parseInt(this.getField(“1produit”))+16+Number.parseInt(this.getField(“ttprod”))  }  if (k==7) {      //Remplir avec le calcul de la somme
      }  if (k==8) {      //Idem
      }  this.getField(“cotise”).value = somme;
    }

    Dis-moi si ça t’a aidé, si tu veux des précisions.

    #65886
    bebarth
    Maître des clés

    bonjour,
    Voici une proposition.
    J’espère que ça te convient.
    @+
    :bonjour:

    #65887
    Armand
    Membre

    Merci pour vos retours, cela ma super bien aidé!!!
    oui Pradow, des boutons radio auraient pu le faire effectivement. En parrallèle, Bebarth a proposé une solution.

    Cependant, je viens de faire ma mise en page en ajoutant les champs, pas de soucis; et j’ai voulu mettre une limite plafond au montant
    de la cotisation calculé au chiffre d’affaires (“CA4”). Le champs de calcul est B4, et j’ai fais ceci:

    if (this.getField(“CA4”).value * 1.5/100<350) {
        this.event.target.value = this.getField(“CA4”).value * 1.5/100;
    } else {
        this.event.target.value = 350;
    }

    cela fonctionne, mais lorsque l’on demande le total dans le champs “total 4” , qui correspond à un calcul addition de champs ,
    celui-ci ne prends pas en compte B4 (ou une fois sur 5) alors qu’il est bien dans l’addition. Seul ce truc ne fonctionne pas… Auriez vous une idée ?
    je remets le pdf si besoin,

    merci pour votre temps,

    Armandb

    #65888
    bebarth
    Maître des clés

    bonjour,
    Je pense qu’il faut juste redéfinir l’ordre de calcul des champs !
    @+
    :bonjour:

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