Syntaxe de programmation dans l'instruction SELON

- - Dernière réponse : yg_be
Messages postés
8335
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
25 août 2019
- 13 juil. 2019 à 15:31
Bonjour,

Les zones de mon fichier AS400 sont :
XM01AM, XM02AM, XM03AM...... Jusqu'à XM90AM. Chaque zone a pour valeur un chiffre compris entre 0 et 9 qui correspondront a une couleur différente dans une table alimentée par programmation.

Dans un programme en WINDEV23 je boucle sur mon fichier AS400 pour lire tous les enregistrements.
Je construit la zone de mon fichier que je veux récupérer.

Ci-dessous mon code :

i est un entier = 1
POUR i = 1 À 90

// Construction du nom du champs du fichier que je dois lire
chChampsFichier est une chaîne = ""
chNombre est une chaîne = NumériqueVersChaîne(i)
SI i < 10 ALORS
chChampsFichier = "XM" + "0" + chNombre + "AM"
SINON
chChampsFichier = "XM" + chNombre + "AM"
FIN

//info ({chChampsFichier}) ==> ca me retourne bien la valeur stockée dans mon fichier AS400 pour la zone XM01AM par exemple.

SELON XM01AM
CAS 1 : Table1[enIndiceLigne, i]..CouleurFond = CyanPastel
CAS 2 : Table1[enIndiceLigne, i]..CouleurFond = JaunePastel
FIN
FIN

Je souhaiterais savoir quelle est la syntaxe à utiliser pour éviter de mettre en dur le nom de ma zone de fichier dans l'instruction "SELON" (sachant que je dois faire la même chose pour les 90 zones de mon fichier)

Si quelqu'un à une solution je suis preneur. :)

D'avance merci pour votre aide.
Afficher la suite 

1 réponse

Messages postés
8335
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
25 août 2019
413
0
Merci
bonjour, peut-être en créant un tableau avec les 90 noms?
par ailleurs, peut-être plus simple:
SELON XM01AM 
CAS 1 : Couleur = CyanPastel 
CAS 2 : Couleur = JaunePastel 
FIN	
Table1[enIndiceLigne, i]..CouleurFond = Couleur
Commenter la réponse de yg_be