Syntaxe de programmation dans l'instruction SELON

Fermé
debutant60 - 12 juil. 2019 à 16:03
yg_be Messages postés 23338 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 19 novembre 2024 - 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.

1 réponse

yg_be Messages postés 23338 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 19 novembre 2024 Ambassadeur 1 551
13 juil. 2019 à 15:31
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
0