OVH Cloud OVH Cloud

Pb d'indirection

4 réponses
Avatar
steph
Bonjour,
j'ai un champ Boite à outil de 3 volets. Le champ se nomme : ChamBoite
J'aimerai en rendre actif certains et grisé d'autres.
Théoriquement on fait ChampBoite[1]..etat=actif pour rendre actif le volet
n°1
Mais voila, le numéro est stocké dans une variable de type chaine (ou
numérique cela ne change rien à priori!) nommée "NumeroVolet", et j'utilise
donc l'indirection en écrivant ceci :
{"ChampBoite["+ NumeroVolet + "]}..état=actif

mais cela ne marche pas il me dit qu'il " Une erreur est survenue dand la
fenetre, l'élement 'Champboite[1]..etat' est inconnu
Merci d'avance de votre aide

4 réponses

Avatar
JC FLAJOULOT
> j'ai un champ Boite à outil de 3 volets. Le champ se nomme : ChamBoite
J'aimerai en rendre actif certains et grisé d'autres.
Théoriquement on fait ChampBoite[1]..etat¬tif pour rendre actif le volet
n°1
Mais voila, le numéro est stocké dans une variable de type chaine (ou
numérique cela ne change rien à priori!) nommée "NumeroVolet", et


j'utilise
donc l'indirection en écrivant ceci :
{"ChampBoite["+ NumeroVolet + "]}..état¬tif

mais cela ne marche pas il me dit qu'il " Une erreur est survenue dand la
fenetre, l'élement 'Champboite[1]..etat' est inconnu
Merci d'avance de votre aide



Bonjour,

Pourquoi dans ce cas employer une indirection ?
Alors que le code suivant fonctionne très bien :
eI est entier
eI = 2 // par exemple

ChampBoîte[eI]..Etat = Grisé

Sincères salutations
--
Jean-Claude FLAJOULOT

(otez _no_Spam pour me contacter en privé)
Sécurité Pointage & Biométrie
http://www.sp-et-b.com
Avatar
Romain PETIT
JC FLAJOULOT a pensé très fort :

Mais voila, le numéro est stocké dans une variable de type chaine (ou
numérique cela ne change rien à priori!) nommée "NumeroVolet", et j'utilise
donc l'indirection en écrivant ceci :
{"ChampBoite["+ NumeroVolet + "]}..état¬tif





Pourquoi dans ce cas employer une indirection ?
ChampBoîte[eI]..Etat = Grisé



Et si la solution de JC ne convient pas (si tu dois absolument passer
par une indirection) :

{"ChampBoite", indchamp}[NumeroVolet]..etat

A+

--
Romain PETIT
http://cerbermail.com/?IJmancZl88
(cliquez sur le lien ci-dessus pour me contacter en privé)
Avatar
ted
"JC FLAJOULOT" écrivait
news:cg8527$8na$:

Salut,


en effet pas besoin d'indirection....

ChampBoîte[eI]..Etat = Grisé




Mais en cas de besion, il ne faut pas faire :

{"ChampBoite["+ NumeroVolet + "]}..état¬tif





Mais :

{"ChampBoite"}[NumeroVolet ]..Etat¬tif

Pour les champs indicés, tableaux... la règle est que les crochets sont
en dehors de l'indirection.
Et mieux encore :

{"ChampBoite",indChamps}[NumeroVolet]..Etat¬tif

On peut préciser le type de l'indirection cela permet d'avoir plus rapide
en exécution, moins ambigue à la lecture (dans qlq mois, ou qlq années ou
par qlq'un d'autre), moins ambigue pour le moteur du wlangage dans le cas
ou des rubriques, fenêtres, champs, variables porteraient le même nom.


--
En esperant t'avoir aidé.
ted
Avatar
steph
Merci beaucoup de votre aide
Bonne prog
A+