Je suis assez nouveau pour le codage et SAS en général. J'ai essayé de créer un ensemble de graphiques KPI qui correspondent au nombre de lignes, mais le code de boucle ci-dessous crée deux des mêmes graphiques GPKI pour la dernière ligne. pourquoi est-ce le cas? Toute aide est la bienvenue.Pourquoi SAS GKPI continue de créer 2 graphiques GKPI pour la dernière rangée?
Merci
%Macro scanloop (scanfile,field1,field2,field3);
data _null_;
if 0 then set &scanfile nobs=X;
call symput ('Count',X);
stop;
run;
%DO I=1 %To &count;
Data _null_;
set &scanfile (firstobs=&I);
call symput('Client', &field1);
call symput('LossRatio', &field2);
call symput('Target', &field3);
stop;
run;
proc gkpi mode=raised;
speedometer actual=&LossRatio bounds=(0 .2 .4 .6 .8 1)/
target=&Target label="&field1 KPI" nolowbound format="percent8.0"
afont=(f="Albany AMT" height=.5cm)
bfont=(f="Albany AMT" height=.4cm) ;
Run;
%end;
%MEND SCANLOOP;
%scanloop (work.Test, Client,LossRatio,Target);run;
Est-ce vraiment le moyen de faire ces cartes? Ils ne pourraient pas être faits en utilisant une déclaration BY à la place, peut-être? Ce type de macro est terriblement inefficace et sujet aux erreurs. – Joe