Donnez vie à vos documents numériques !
 

Afficher/masquer de champs suivants un champs total. – RÉSOLU

abracadabraPDF Forums PDF – Général Afficher/masquer de champs suivants un champs total. – RÉSOLU

  • Ce sujet est vide.
  • Créateur
    Sujet
  • #44555
    jsamica
    Membre

    Bonjour,

    Sur l’exemple ci-joint je souhaite afficher des champs selon un total en lecture seule.
    Des champs doivent s’afficher si le total est supérieur à 15000.

    Tout marche trés bien s’il s’agit d’un champs a saisir, cependant sur un champs en lecture seul rien ne se passe lorsque le total depasse 15000

    Jsuis sur que c’est pas grand chose mais je vois pas. Une idée ?

    Merci.
    :bonjour:

    [attachment deleted by admin]

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

    Je crois qu’il y a erreur sur la pièce jointe…
    (qui renvoie sans cesse des erreurs dans la Console…)

    :geek:

    #55155
    jsamica
    Membre

    Salut Merlin,

    Oui effectivement, je ne sais pas qui ce qui c’est passé.

    Voici l’exemple.

    Merci.
    :Smiley03:

    [attachment deleted by admin]

    #55156
    jsamica
    Membre

    Bonjour à tous,
    Je me permet de relancer le sujet, quelqu’un peut m’aider svp ?

    Sur un champs qui n’est pas en lecture seule, le problème ne se pose pas, cela fonctionne très bien.
    Sur un champs en lecture seule, j’ai essayé toutes les actions possibles (souris enfoncé, champs activé…),
    Le mieux étant le champ activé ou désactivé, les champs cachés s’affichent (valdg) lorsque l’on passe la souris sur le champs en lecture seule.

    J’ai donc essayé de mettre mon script dans validation de champs. Cela marche mieux mais il reste des problèmes.
    Pouvez vous m’éclairer svp ?  :priere:

    Merci
    :bonjour:

    [attachment deleted by admin]

    #55157
    Merlin
    Maître des clés

    Le script de calcul est placé en script de « validation ».
    L’évènement « validation » a lieu immédiatement après l’action « champ désactivé », qui elle-même arrive immédiatement après l’action « champ activé ».
    Toutes choses qui ne peuvent pas arriver à un champ en lecture seule.

    Il faut donc placer le script comme script de Calcul.
    :idee:
    :Smiley01:

    PS : je suis en train de préparer un article sur les évènements JavaScript, les conditions et l’ordre dans lequel ils s’enchainent…
    :Smiley03:

    #55158
    jsamica
    Membre

    Super cool, mille merci Merlin
    Effectivement j’ai du mal sur ces notions…

    :bonjour:

    #55159
    jsamica
    Membre

    Du coup, j’ai intégré le code suivant dans le script de calcul personnalié

    Code:
    a = this.getField(« ligne1.6 »).value;
    b = this.getField(« ligne2.6 »).value;
    c = this.getField(« ligne3.6 »).value;
    d = this.getField(« ligne4.6 »).value;
    e = this.getField(« ligne5.6 »).value;
    somtotal = a+b+c+d+e;

    event.target.value = somtotal ;

    if (event.target.value {
    this.getField(« valdg »).display = display.hidden;
    }
    else if (event.target.value >= « 15000 »)
    {
    this.getField(« valdg »).display = display.visible;
    }
    else if (event.target.value >= « 50000 »)
    {
    this.getField(« valpdg »).display = display.visible;
    }

    Je  ne pense, pas que la partie affichage/masquage des champs ne se fasse dans ce meme script.
    de plus il y a certain bug (printscreen ci joint)
    Peux tu me renseigner stp ?

    Merci
    :bonjour:

    [attachment deleted by admin]

    #55160
    alex
    Membre

    Voici une manière de faire qui contourne bien des obstacles (formats des nombres mal définis ou pas du tout, calcul de la somme évitant les aléas de gestion des évènements de certaines versions)… Un seul et unique script de calcul donc, lancé par chacune des actions sur les membres de la somme…
    Cette technique permet de panacher des modes de calculs de lignes éventuellement différents et d’avoir des sous-totaux intermédiaires et finaux mis à jour même pour des calculs complexes.

    [attachment deleted by admin]

    #55161
    Merlin
    Maître des clés

    Supprime ce qui est en rouge :

    a = this.getField(« ligne1.6 »).value;
    b = this.getField(« ligne2.6 »).value;
    c = this.getField(« ligne3.6 »).value;
    d = this.getField(« ligne4.6 »).value;
    e = this.getField(« ligne5.6 »).value;
    somtotal = a+b+c+d+e;
    event.target.value = somtotal ;
    if (event.target.value {
    this.getField(« valdg »).display = display.hidden;
    }
    else if (event.target.value >= « 15000 »)
    {
    this.getField(« valdg »).display = display.visible;
    }
    else if (event.target.value >= « 50000 »)
    {
    this.getField(« valpdg »).display = display.visible;
    }

    « if » + « else if » ça teste une condition ou sinon une autre jusqu’à ce qu’une condition soit remplie et ça s’arrête là.

    « if » + « if » + « if » ça teste une condition, et une autre, et une autre, etc.
    Indépendamment du résultat de chacune.

    Mais je laisse la parole à Alex…
    :joker:

    #55162
    alex
    Membre

    Tu as raison Merlin, pour gérer l’affichage, d’un point de vue logique ceci suffit:
    if (somtotal {
    this.getField(« valdg »).display = display.hidden;
    }
    else
    {
    this.getField(« valdg »).display = display.visible;
    }

    [attachment deleted by admin]

    #55163
    Merlin
    Maître des clés

    Attention qu’il y a des valpdg et des valdg
    :Smiley03:

    #55164
    alex
    Membre

    Exact ! Je n’ai pas vu venir le pdg à 50000!
    if (somtotal {
    this.getField(« valdg »).display = display.hidden;
    }
    else
    {
    this.getField(« valdg »).display = display.visible;
    }
    if (somtotal {
    this.getField(« valpdg »).display = display.hidden;
    }
    else
    {
    this.getField(« valpdg »).display = display.visible;
    }

    #55165
    alex
    Membre

    Ci-joint exemple de base à la manière de @jsamica (pas de champs pdg pour moi).

    [attachment deleted by admin]

    #55166
    jsamica
    Membre

    Bonjour,
    Un grand merci Alex et Merlin,
    Je comprends mieux certaines subtilités !!

    Je vais aussi regarder  :Euuuh:  le code d’Alex son exemple, qui est inclus directement dans le doc

    Encore merci les mecs  :bravo:
    :bonjour:

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