BookmarkSubscribeRSS Feed
GPatel
Pyrite | Level 9

I have following SAS code that creates two excel links using SAS VIYA JOB EXECUTION.

However, each excel link outputs the same (last) record of the dataset 'all'. 

Need help/suggestions to fix this issue.

 

 

data all;
format inspectiondate date9.;
name='Johny'; Month_Year='01-2021'; Rpt_Dt='Inspection_Tasks_2021_01'; InspectionDate='01JAN2021'd;
output;
name='Jacob'; Month_Year='02-2021'; Rpt_Dt='Inspection_Tasks_2021_02'; InspectionDate='01FEB2021'd;
output;
run;


%global actlist Insp_Rpts ;


Proc SQL ;
Select distinct Month_year into: actlist separated by '~' from all ;
Select distinct Rpt_Dt into: Insp_Rpts separated by '~' from all ;
quit;

%put actlist = &actlist. ;
%put Insp_Rpts = &Insp_Rpts. ;
 

%MACRO RW;

Proc SQL ;
Select distinct Month_year into: actlist separated by '~' from all ;
Select distinct Rpt_Dt into: Insp_Rpts separated by '~' from all ;
quit;

%global actlist Insp_Rpts ;

%put actlist = &actlist. ;
%put Insp_Rpts = &Insp_Rpts. ;

%let i=1;
%do %while(%length(%scan(&Insp_Rpts,&i,"~")));
%let act=%scan(&Insp_Rpts,&i,"~");

Proc SQL NoPrint; Select min(InspectionDate) FORMAT=MMDDYY10. into:MIN_DATE SEPARATED by ' ' from all
where Rpt_Dt ="&act."; Quit; %put Min_DATE = &Min_DATE. ;
Proc SQL NoPrint; Select max(InspectionDate) FORMAT=MMDDYY10. into:MAX_DATE SEPARATED by ' ' from all
where Rpt_Dt ="&act."; Quit; %put Max_DATE = &Max_DATE. ;


 
Proc SQL NoPrint;
Select Min(inspectionDate) format=mmddyy10. into:Stdt SEPARATED by ' ' From work.all where Rpt_Dt ="&act.";;
Quit;

Proc SQL NoPrint;
Select Max(inspectionDate) format=mmddyy10. into:Enddt SEPARATED by ' ' From work.all where Rpt_Dt ="&act.";;
Quit;

%Put Stdt = &Stdt. EndDt = &Enddt. ;

%let i=%eval(&i+1);

ods escapechar='~';
ods _all_ close;

%put act_A = &act.; /* *************** */




filename f_xlxp filesrvc parenturi="&SYS_JES_JOB_URI"
name="NR.xml"
contenttype='application/vnd.ms-excel'
contentdisp='attachment; filename="&act.xlsx" ' ;
ods excel file=f_xlxp style=Plateau ;

%LET Curr_date = %left(%qsysfunc(date(),mmddyy10.)) ;
%let bold_style=~S={font_size=15pt font_weight=bold foreground=blue}~;

title1 j=left color=blue height=14pt "Sample Report ";

Proc print data=all(where=(Rpt_Dt ="&act.")) noobs label sumlabel style(header)={background=#33adff color=white just=center } ;

Title color=blue "&act";
run;

ods excel close;
ods _all_ close;
ods listing;


data _null_;
file _webout;
put '<HTML>';
put "<HEAD><TITLE>Sample Report</TITLE></HEAD>";
put '<BODY>';
put "<P> <font size= 4.5 bgcolor= Black color = Red >Sample Report can be downloaded by clicking on the link below.";
put "<P><font size= 4.5 bgcolor= Black color = Red > <a href=""&_FILESRVC_F_XLXP_URI/content"" target=""_SASDLResults"">Click here to download the report</a>";
put '</BODY>';
put '</HTML>';
Run;
%end;
%mend;
%RW;