abracadabraPDF › Forums › PDF – Général › Afficher/masquer de champs suivants un champs total. – RÉSOLU
- Ce sujet est vide.
- CréateurSujet
- 13 juin 2013 à 12:38 #44555
jsamica
MembreBonjour,
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]
- CréateurSujet
- AuteurRéponses
- 13 juin 2013 à 19:03 #55154
Merlin
Maître des clésJe crois qu’il y a erreur sur la pièce jointe…
(qui renvoie sans cesse des erreurs dans la Console…):geek:
14 juin 2013 à 07:25 #55155jsamica
MembreSalut Merlin,
Oui effectivement, je ne sais pas qui ce qui c’est passé.
Voici l’exemple.
Merci.
:Smiley03:[attachment deleted by admin]
17 juin 2013 à 08:04 #55156jsamica
MembreBonjour à 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]
17 juin 2013 à 17:58 #55157Merlin
Maître des clésLe 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:18 juin 2013 à 07:28 #55158jsamica
MembreSuper cool, mille merci Merlin
Effectivement j’ai du mal sur ces notions…:bonjour:
18 juin 2013 à 14:37 #55159jsamica
MembreDu 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]
18 juin 2013 à 17:37 #55160alex
ParticipantVoici 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]
18 juin 2013 à 17:44 #55161Merlin
Maître des clésSupprime 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:18 juin 2013 à 17:52 #55162alex
ParticipantTu 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]
18 juin 2013 à 18:04 #55163Merlin
Maître des clésAttention qu’il y a des valpdg et des valdg…
:Smiley03:18 juin 2013 à 18:10 #55164alex
ParticipantExact ! 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;
}18 juin 2013 à 18:17 #55165alex
ParticipantCi-joint exemple de base à la manière de @jsamica (pas de champs pdg pour moi).
[attachment deleted by admin]
19 juin 2013 à 07:19 #55166jsamica
MembreBonjour,
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: - AuteurRéponses
- Vous devez être connecté pour répondre à ce sujet.