Donnez vie à vos documents numériques !
 

Répondre à : Plusieurs combo box contrôlent le même effet show/hide… – RÉSOLU

abracadabraPDF Forums PDF – Général Plusieurs combo box contrôlent le même effet show/hide… – RÉSOLU Répondre à : Plusieurs combo box contrôlent le même effet show/hide… – RÉSOLU

#54799
Merlin
Maître des clés

En fait c’est une simple question de logique, comme toujours.
:oh:

Ce script fonctionne :

/////////////////////////////////////////////////////////////////////////
var i1 = this.getField(« InPatient1 »).value;
var i2 = this.getField(« InPatient2 »).value;
var o1 = this.getField(« OutPatient1 »).value;
var o2 = this.getField(« OutPatient2 »).value;
var maValeur = « E078 »;
if (!event.willCommit)
{
if (event.changeEx == maValeur)
{
this.getField(« PremiumCode »).display = display.visible;
this.getField(« E078Board »).display = display.hidden;
}
else
{
if ((i1 == maValeur) || (i2 == maValeur) || (o1 == maValeur) || (o2 == maValeur))
{
this.getField(« PremiumCode »).display = display.visible;
this.getField(« E078Board »).display = display.hidden;
}
else
{
this.getField(« PremiumCode »).display = display.hidden;
this.getField(« E078Board »).display = display.visible;
}
}
}
/////////////////////////////////////////////////////////////////////////

Mais…
Le piège se trouve ligne 15 (en bleu).
Il ne faut pas mettre exactement le même script dans chaque champ-liste, sinon on re-teste la valeur précédente du champ-liste actif, ce qui provoque le décalage.

Donc dans le champ InPatient1 on remplace la ligne 15 par :
if ((i2 == maValeur) || (o1 == maValeur) || (o2 == maValeur))

Dans le champ InPatient2 par :
if ((i1 == maValeur) || (o1 == maValeur) || (o2 == maValeur))

Etc.

Voir l’exemple ci-joint.

:bonjour:

[attachment deleted by admin]