Bonjour à tous,
je souhaite générer des rapports sur des chemins différents, j'ai utilisé pour cela un chemin déjà existant et qui fonctionne. Je récupèrer pour cela l'identifiant (agr) avec la function call symput, ensuite je fais une boucle en vue de parcourir ma liste et chaque element de la liste devenant l'argument de la macro %lignetest qui se chargerait d'éditer le path du fichier à générer.
Tout se passe comme je l'aurais souhaité, à la seule deception que c'est toujours mon 1 er fichier qui est généré dans les différentes destinations. Je ne comprends pas l'origine de ce probleme. Merci d'avance pour votre aide.
Voici mon code:
%macro macropath();
data _NULL_;
set Mylib.Liste_Fr;
call symput("fin",_n_); /*nombre de lignes de la table c'est la variable numérique 'fin'*/
CALL SYMPUT(COMPRESS("agr_ligne"||_N_),agr); /*Créer autant de macro-variables qu’il y a d’observations dans une table.*/
run;
%do i = 1 %to &fin;
%let save_nom = &&agr_ligne&i; /*Nom de macro-variable indicé */
%lignetest (&save_nom);
%end;
%mend;
%macropath ();
%macro lignetest(charAGR);
%let p1 = G:\DG1 BOEKHOUDING\Healthaccount\BMF_Outputs\BMF Outputs 2018-1\Hospital\CalculBMF\&charAGR\B4_&charAGR;
%let p2 = _A_B4_2018_1.pdf;
%let p1p2 = &p1&p2;
%let lepath = %sysfunc(quote(&p1p2)); /*mettre des quotes aux extrêmes de la macro-variable*/
%lerapport(&lepath);
%mend;
Partager