PC SOFT

PROFESSIONAL NEWSGROUPS
WINDEVWEBDEV and WINDEV Mobile

Home → WINDEV 2024 → Zone Répétée et Interrupteur : impossible d'accéder aux propriétés d'une des options de l'interrupteur
Zone Répétée et Interrupteur : impossible d'accéder aux propriétés d'une des options de l'interrupteur
Started by Christophe PRADEL, Apr., 28 2017 12:28 PM - 6 replies
Registered member
136 messages
Popularité : +12 (14 votes)
Posted on April, 28 2017 - 12:28 PM
Bonjour,
Après avoir cherché sur le Forum et ailleurs, je me tourne vers vous pour savoir si quelqu'un connait une voie de contournement de ce que je considère comme un bug.

Contexte
----------
J'ai une zone répétée ZR_ZoneRepetee qui contient un interrupteur INT_Interrupteur contenant 3 options

Je cherche, par programmation, à pouvoir agir sur l'état "Grisé" indépendamment pour chaque option et pour chaque occurrence de la ZR

Ce qui marche
----------------
Griser le deuxième interrupteur (et seulement celui-ci) entièrement (toutes les options) :
ZR_ZoneRepetee[2].INT_Interrupteur..Grisé = Vrai


Griser l'option 2 de tous les interrupteurs :
ZR_ZoneRepetee.INT_Interrupteur[2]..Grisé = Vrai


Ce qui ne marche pas
------------------------
Griser l'option 2 du troisième interrupteur :
ZR_ZoneRepetee[3].INT_Interrupteur[2]..Grisé = Vrai


J'ai une erreur à l'exécution (pas à la compilation) :

Erreur à la ligne 2 du traitement Clic sur BTN_Grise
Le champ INT_Interrupteur ne supporte pas l'opérateur [ ].

-------------------------------------------------------------------------

Il est manifestement faux de dire que l'interrupteur ne supporte pas l'opérateur [ ], vu que le cas 2 marche bien

Je serais bien passé par les attributs de la ZR, mais malheureusement on ne peut pas y cibler une des options de l'interrupteur


A votre écoute pour toute suggestion

Bonne journée
Posted on April, 28 2017 - 4:21 PM
Christophe PRADEL a exposé le 28/04/2017 :
Bonjour, Après avoir cherché sur le Forum et ailleurs, je me tourne vers vous
pour savoir si quelqu'un connait une voie de contournement de ce que je
considère comme un bug.

Contexte
----------
J'ai une zone répétée ZR_ZoneRepetee qui contient un interrupteur
INT_Interrupteur contenant 3 options

Je cherche, par programmation, à pouvoir agir sur l'état "Grisé"
indépendamment pour chaque option et pour chaque occurrence de la ZR

Ce qui marche
----------------
Griser le deuxième interrupteur (et seulement celui-ci) entièrement (toutes
les options) :
ZR_ZoneRepetee[2].INT_Interrupteur..Grisé = Vrai


Griser l'option 2 de tous les interrupteurs :
ZR_ZoneRepetee.INT_Interrupteur[2]..Grisé = Vrai


Ce qui ne marche pas
------------------------
Griser l'option 2 du troisième interrupteur :
ZR_ZoneRepetee[3].INT_Interrupteur[2]..Grisé = Vrai


J'ai une erreur à l'exécution (pas à la compilation) :

Erreur à la ligne 2 du traitement Clic sur BTN_Grise
Le champ INT_Interrupteur ne supporte pas l'opérateur [ ].

-------------------------------------------------------------------------

Il est manifestement faux de dire que l'interrupteur ne supporte pas
l'opérateur [ ], vu que le cas 2 marche bien

Je serais bien passé par les attributs de la ZR, mais malheureusement on ne
peut pas y cibler une des options de l'interrupteur


A votre écoute pour toute suggestion

Bonne journée


bonjour,

avez-vous essayé de passer par les attributs ?

--
Cordialement JeAn-PhI
Registered member
280 messages
Popularité : +22 (28 votes)
Posted on April, 30 2017 - 6:00 AM
Bonjour,
Peut-être envisager quelque chose comme :
SI ZR_ZoneRepetee=3 ALORS ZR_ZoneRepetee.INT_Interrupteur[2]..Grisé = Vrai


--
Cordialement.
Je vous souhaite une bonne journée depuis le Vietnam.

Olivier.
http://www.impulse-web.com
Registered member
2,566 messages
Popularité : +222 (260 votes)
Posted on May, 01 2017 - 7:07 AM
Bonjour,

Au lieu de créer 3 options dans ton champ interrupteur, tu crées 3 champs interrupteurs, et pour le coup tu peux passer par les attributs, du coup tu auras en code :
//Griser les options de la ligne 2
ZR_Interrupteur[2].ATT_Option1 = Grisé
ZR_Interrupteur[2].ATT_Option2 = Grisé
ZR_Interrupteur[2].ATT_Option3 = Grisé

//Griser l'option 2 de toutes les lignes
POUR i = 1 _A_ ZR_Interrupteur..Occurrence
ZR_Interrupteur[i].ATT_Option2 = Grisé
FIN

//Griser l'option 2 de la ligne 3
ZR_Interrupteur[3].ATT_Option2 = Grisé






--
Cordialement,

Philippe SAINT-BERTIN
Géode Informatique
Registered member
136 messages
Popularité : +12 (14 votes)
Posted on May, 04 2017 - 4:48 PM
Je pense que la solution proposée par Philippe SB est jouable.
Je vais l'essayer

Reste qu'il s'agit bien pour moi d'un bug !
Registered member
1,143 messages
Popularité : +50 (142 votes)
Posted on May, 18 2021 - 3:15 PM
Bonjour,

Si ça peut aider, voici le code que j'utilise dans ce cas de figure :
sMaCchaine est chaîne=ZoneRépétée1[ZoneRépétée1].INT_MesCases
nPosition est un entier=Val(Gauche(indice,1))*2
sMaCchaine[(nPosition-1) À nPosition]="1;"
ZoneRépétée1[ZoneRépétée1].INT_MesCases = sMaCchaine


--
Thierry TILLIER
Développeur Windev-Webdev
Formation Windev : https://coursdinfo.teachable.com/
Formation bureautique : https://coursdinfo.net
Tuto WINDEV sur ma chaîne Youtube
Registered member
136 messages
Popularité : +12 (14 votes)
Posted on May, 18 2021 - 7:03 PM
Bonjour Thierry

Merci pour l'info.
Ca marche très bien pour cocher ou décocher une des options de l'interrupteur, mais pour agir sur l'état grisé, je n'y suis par arrivé