Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SAS AF et formulaires Discussion :

Pb de Fenêtre (écran de daisie) dans une boucle do


Sujet :

SAS AF et formulaires

  1. #1
    Membre à l'essai
    Pb de Fenêtre (écran de daisie) dans une boucle do
    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:
    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();


    Voici le message d'erreur :
    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.


    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
    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();


    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
     
    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.


    Merci !

  2. #2
    Expert confirmé
    Bonjour.
    Le message vient de #(2) dans la définition du 2e %WINDOW (dans la boucle). Il faut écrire #2, comme dans le 1er %WINDOW.
    Olivier
    Bon courage.
    Olivier

  3. #3
    Membre à l'essai
    Merci !

###raw>template_hook.ano_emploi###