Syntaxe de programmation dans l'instruction SELON

debutant60 -  
yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   -
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

  1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 588
     
    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