Bonjour,
Dans une macro, Je veux demander une liste de noms, puis pour chaque nom, une liste de variétés. Ne connaissant pas le nombre de noms et le nombre de variétés pour chaque noms au préalable, les demandes de chacun de ces noms et noms de variétés doivent s'effectuer dans une double boucle.
Si rentre tout ceci dans un seul écran de saisie, je rencontre des problèmes de calcul du numéro de ligne pour afficher la question correspondant à la jème variété du ième nom.
Je me suis dit qu'il serait plus simple de poser une question par écran de saisie et de lancer la série de questions sur les noms de variétés dans une boucle DO.
Mais...
Voici le code:
Voici le message d'erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 %macro cro(); %window essai color=gray COLUMNS=40 rows=10 icolumn=30 irow=15 #2 @5 "Nombre de fruit :" @23 np 2 required=yes #4 @10 "Nom du premier fruit :" @33 v1 15 required=yes; %display essai; %do u=2 %to &np; %window essaio color=gray COLUMNS=40 rows=10 icolumn=30 irow=15 #(2) @10 "Nom du &u ème fruit :" @32 v&u 15 required=yes; %display essaio; %end; %mend cro; %cro();
Si je donne le même nom de 'window' :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 ERROR 22-322: Expecting an integer constant. ERROR 200-322: The symbol is not recognized and will be ignored. ERROR: %WINDOW statement not processed due to errors. ERROR: Unable to open window macro file ESSAIO. ERROR: The macro CRO will stop executing.
le message d'erreur est (sachant que j'ai rentré 3 à la première question i.e. np = 3):
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 %macro cro(); %window essai color=gray COLUMNS=40 rows=10 icolumn=30 irow=15 #2 @5 "Nombre de fruit :" @23 np 2 required=yes #4 @10 "Nom du premier fruit :" @33 v1 15 required=yes; %display essai; %do u=2 %to &np; %window essai color=gray COLUMNS=40 rows=10 icolumn=30 irow=15 #(2) @10 "Nom du &u ème fruit :" @32 v&u 15 required=yes; %display essai; %end; %mend cro; %cro();
Merci !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 ERROR 22-322: Expecting an integer constant. ERROR 200-322: The symbol is not recognized and will be ignored. ERROR: %WINDOW statement not processed due to errors. ERROR 22-322: Expecting an integer constant. ERROR 200-322: The symbol is not recognized and will be ignored. ERROR: %WINDOW statement not processed due to errors.
Partager