Donnez vie à vos documents numériques !
 

Calcul avec condition bouton radio

abracadabraPDF Forums PDF – Général Calcul avec condition bouton radio

  • Ce sujet est vide.
  • Créateur
    Sujet
  • #45460
    Ju_MDE
    Membre

    Bonjour,

    Après quelques recherches infructueuses sur ma question je me tourne vers vous.

    J’espère avoir publié au bon endroit, je suis actuellement entrain de travailler sur un document PDF interactif, en gros j’ai différents calculs de prix à faire selon des quantités et des surfaces notamment.

    Pour les calculs pas trop de soucis, la ou j’ai un petit soucis c’est dans l’utilisation de bouton radio. En faite j’ai trois bouton radio, un n’influant pas sur les calculs et les deux autres si ils sont sélectionné doivent additionner 15 à la somme d’un calcul établi précédemment. C’est la ou je bloque, j’ai bien tenté de bricoler quelque chose avec ce que j’ai pu trouver sur le net mais rien de concluant.

    Je vous joint le code dans l’état dans lequel il est actuellement :

    Code:
    if (this.getField(“quantiterollup”).value == 1)
    this.getField(“prixrollup”).value = 80;

    else if (this.getField(“quantiterollup”).value == 2)
    this.getField(“prixrollup”).value = 140;

    else if (this.getField(“quantiterollup”).value == 3)
    this.getField(“prixrollup”).value = 190;

    else if (this.getField(“quantiterollup”).value == 4)
    this.getField(“prixrollup”).value = 240;

    else if (this.getField(“quantiterollup”).value == 5)
    this.getField(“prixrollup”).value = 290;

    if (this.getField(“Aexpedier”).isBoxChecked(0) && this.getField(“Livraisonanonyme”).isBoxChecked(0))
    {this.getField(“prixrollup”).value = this.getField(“prixrollup”).value + 15}

    J’espère avoir exprimer de manière compréhensible mon problème. N’hésitez pas à me demander d’éventuelles précision.

    Je vous remercie d’avance pour l’attention porté à mon problème !

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

    Bonjour et bienvenue.

    Utiliser des conditions à la place d’un calcul est rarement avantageux, j’utiliserais plutôt un script de ce genre (non testé), placé en script de calcul personnalisé dans le champ prixrollup.
    Il faudra aussi s’assurer que le champ quantiterollup soit bien au format Nombre pour prévenir toute erreur NaN (Not a Number).

    Par ailleurs il faudrait peut-être utiliser des cases-à-cocher (décochables, plusieurs choix possibles) plutôt que des boutons-radio (un seul choix possible et non-décochables par l’utilisateur).

    Code:
    // mise en variable de la valeur du champ
    var nQuantite = this.getField(“quantiterollup”).value;
    // condition : si les 2 boutons sont cochés
    if (this.getField(“Aexpedier”).value != “Off” && this.getField(“Livraisonanonyme”).value != “Off”) {
    // calcul de base
    event.target.value = 80 * nQuantite;
    }
    // sinon (si un seul ou zéro bouton est coché)
    else {
    // calcul de base plus quinze
    event.target.value = (80 * nQuantite) + 15;
    }
    #60978
    bebarth
    Maître des clés

    bonjour,
    ça marche très bien, effectivement avec des cases à cocher plus menu déroulant.
    le script est à placé en script de calcul personnalisé.
    @+
    :bonjour:

    #60979
    Ju_MDE
    Membre

    Bonjour,

    Tout d’abord merci pour votre aide précieuse, je pense comprendre les différentes étapes que vous avez pu m’indiquer, là ou j’ai un soucis c’est qu’en faite le prix est dégressif et multiplié la quantité par 80 ne correspond donc pas totalement au résultat que je souhaiterais avoir, d’ou l’usage de condition plutôt que du calcul. Est-il possible de “mixer” les conditions employés précédemment et votre méthode ?

    Merci de l’attention porté à mon problème ! :)

    #60980
    Ju_MDE
    Membre

    Et j’ai également un autres soucis c’est que la personne qui remplie le formulaire doit en faite choisir entre les 3 boutons, à récupérer (qui n’ajoute pas de frais), à livrer (+15e) et à livrer en anonymes (+15e également) or si je comprend bien dans votre réponse il faut que à livrer et à livrer en anonymes soit tous les deux cocher pour ajouter les 15 euros. Je ne me trompe pas ?

    Merci encore !

    #60981
    bebarth
    Maître des clés

    voici un fichier qui devrait répondre à ton problème.
    @+
    :bonjour:

    #60982
    Ju_MDE
    Membre

    Merci beaucoup, je vais approfondir ça demain !

    Si je suis confronté à un nouveau problème, je reviendrai vers vous avec plaisir !

    #60983
    bebarth
    Maître des clés

    très bien !!!
    Voici une variante avec l’opérateur switch que je préfère utiliser lorsqu’il y a plusieurs conditions if… else… à la suite.
    @+
    :bonjour:

    #60984
    Merlin
    Maître des clés

    Et j’ai également un autres soucis c’est que la personne qui remplie le formulaire doit en faite choisir entre les 3 boutons, à récupérer (qui n’ajoute pas de frais), à livrer (+15e) et à livrer en anonymes (+15e également) or si je comprend bien dans votre réponse il faut que à livrer et à livrer en anonymes soit tous les deux cocher pour ajouter les 15 euros. Je ne me trompe pas ?

    Auquel cas il faut remplacer :

    if (this.getField(“Aexpedier”).value != “Off” && this.getField(“Livraisonanonyme”).value != “Off”) {

    par :

    if (this.getField(“Aexpedier”).value != “Off” || this.getField(“Livraisonanonyme”).value != “Off”) {

    #60985
    Merlin
    Maître des clés

    en fait le prix est dégressif et multiplier la quantité par 80 ne correspond donc pas totalement au résultat que je souhaiterais avoir

    Il faudrait connaitre ces prix, ou bien la règle de dégressivité.

    #60986
    Ju_MDE
    Membre

    Bebarth j’ai adapté le fichier que tu m’as fournis à mon pdf, ça marche parfaitement !

    Merci beaucoup !

    Je vais essayer de me confronter au reste du PDF maintenant !

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