@PaigeMiller - Sorry I don't know where the </> icon is. I am new to this forum and SAS. So maybe I am missing something basic here. But I have pasted the full log below I want to be able to call this macro in the below proc report so it creates the COMPUTE STATEMENT based on the number I pass to the macro. proc report data=TEST_RPT style(column)={tagattr='wraptext:no' } style(header)={just=l fontfamily=arial fontweight=bold foreground=black background=tan fontsize=2.5} style(column)={fontfamily=coolvetica fontsize=2}; column CLR1-CLR&mcolcnt. CLFR1-CLFR&mcolcnt. &mcols. ; define CLFR1-CLFR&mcolcnt. /display noprint; define CLR1-CLR&mcolcnt. /display noprint; %j(14); run; ==========MACRO=================================== The macro is as below %macro j(num); compute NAME&num.; if CLFR&num.=1 AND CLR&num.=1 then call define ("NAME&num.",'style','style={font_weight=bold background=&clr1.}'); if CLFR&num.=2 AND CLR&num.=1 then call define ("NAME&num.",'style','style={font_weight=bold background=&clr2.}'); if CLFR&num.=3 AND CLR&num.=1 then call define ("NAME&num.",'style','style={font_weight=bold background=&clr3.}'); if CLFR&num.=4 AND CLR&num.=1 then call define ("NAME&num.",'style','style={font_weight=bold background=&clr4.}'); endcomp; %mend; %j(14); ===================LOG========================================= 1 The SAS System 1 ;*';*";*/;quit;run; 2 OPTIONS PAGENO=MIN; 3 %LET _CLIENTTASKLABEL='Program (7)'; 4 %LET _CLIENTPROCESSFLOWNAME='Process Flow'; 8 %LET _SASPROGRAMFILE=''; 9 %LET _SASPROGRAMFILEHOST=''; 10 11 ODS _ALL_ CLOSE; 12 OPTIONS DEV=ACTIVEX; 13 GOPTIONS XPIXELS=0 YPIXELS=0; 14 FILENAME EGSR TEMP; 15 ODS tagsets.sasreport13(ID=EGSR) FILE=EGSR 16 STYLE=HTMLBlue 17 STYLESHEET=(URL="file:///C:/Program%20Files/SASHome/SASEnterpriseGuide/7.1/Styles/HTMLBlue.css") 18 NOGTITLE 19 NOGFOOTNOTE 20 GPATH=&sasworklocation 21 ENCODING=UTF8 22 options(rolap="on") 23 ; NOTE: Writing TAGSETS.SASREPORT13(EGSR) Body file: EGSR 24 25 GOPTIONS ACCESSIBLE; 26 options mprint; 27 28 %macro j(num); 29 30 compute NAME&num.; 31 if CLFR&num.=1 AND CLR&num.=1 then call define ("NAME&num.",'style','style={font_weight=bold background=&clr1.}'); 32 if CLFR&num.=2 AND CLR&num.=1 then call define ("NAME&num.",'style','style={font_weight=bold background=&clr2.}'); 33 if CLFR&num.=3 AND CLR&num.=1 then call define ("NAME&num.",'style','style={font_weight=bold background=&clr3.}'); 34 if CLFR&num.=4 AND CLR&num.=1 then call define ("NAME&num.",'style','style={font_weight=bold background=&clr4.}'); 35 36 endcomp; 37 38 %mend; 39 40 41 %j(14); NOTE: Line generated by the invoked macro "J". 41 compute NAME&num.; if CLFR&num.=1 AND CLR&num.=1 then call define ("NAME&num.",'style','style={font_weight=bold _______ 180 41 ! background=&clr1.}'); if CLFR&num.=2 AND CLR&num.=1 then call define ("NAME&num.",'style','style={font_weight=bold 41 ! background=&clr2.}'); if ERROR 180-322: Statement is not valid or it is used out of proper order. MPRINT(J): compute NAME14; NOTE: Line generated by the invoked macro "J". 41 compute NAME&num.; if CLFR&num.=1 AND CLR&num.=1 then call define ("NAME&num.",'style','style={font_weight=bold __ 180 41 ! background=&clr1.}'); if CLFR&num.=2 AND CLR&num.=1 then call define ("NAME&num.",'style','style={font_weight=bold 41 ! background=&clr2.}'); if 2 ERROR 180-322: Statement is not valid or it is used out of proper order. MPRINT(J): if CLFR14=1 AND CLR14=1 then call define ("NAME14",'style','style={font_weight=bold background=&clr1.}'); NOTE: Line generated by the invoked macro "J". 41 compute NAME&num.; if CLFR&num.=1 AND CLR&num.=1 then call define ("NAME&num.",'style','style={font_weight=bold 41 ! background=&clr1.}'); if CLFR&num.=2 AND CLR&num.=1 then call define ("NAME&num.",'style','style={font_weight=bold __ 180 41 ! background=&clr2.}'); if ERROR 180-322: Statement is not valid or it is used out of proper order. MPRINT(J): if CLFR14=2 AND CLR14=1 then call define ("NAME14",'style','style={font_weight=bold background=&clr2.}'); NOTE: Line generated by the invoked macro "J". 41 compute NAME&num.; if CLFR&num.=1 AND CLR&num.=1 then call define ("NAME&num.",'style','style={font_weight=bold 41 ! background=&clr1.}'); if CLFR&num.=2 AND CLR&num.=1 then call define ("NAME&num.",'style','style={font_weight=bold 41 ! background=&clr2.}'); if __ 180 ERROR 180-322: Statement is not valid or it is used out of proper order. MPRINT(J): if CLFR14=3 AND CLR14=1 then call define ("NAME14",'style','style={font_weight=bold background=&clr3.}'); NOTE: Line generated by the invoked macro "J". 41 CLFR&num.=3 AND CLR&num.=1 then call define ("NAME&num.",'style','style={font_weight=bold background=&clr3.}'); if __ 180 41 ! CLFR&num.=4 AND CLR&num.=1 then call define ("NAME&num.",'style','style={font_weight=bold background=&clr4.}'); endcomp; ERROR 180-322: Statement is not valid or it is used out of proper order. MPRINT(J): if CLFR14=4 AND CLR14=1 then call define ("NAME14",'style','style={font_weight=bold background=&clr4.}'); NOTE: Line generated by the invoked macro "J". 41 CLFR&num.=3 AND CLR&num.=1 then call define ("NAME&num.",'style','style={font_weight=bold background=&clr3.}'); if 41 ! CLFR&num.=4 AND CLR&num.=1 then call define ("NAME&num.",'style','style={font_weight=bold background=&clr4.}'); endcomp; _______ 180 ERROR 180-322: Statement is not valid or it is used out of proper order. MPRINT(J): endcomp; 42 43 GOPTIONS NOACCESSIBLE; 44 %LET _CLIENTTASKLABEL=; 45 %LET _CLIENTPROCESSFLOWNAME=; 46 %LET _CLIENTPROJECTPATH=; 47 %LET _CLIENTPROJECTPATHHOST=; 48 %LET _CLIENTPROJECTNAME=; 49 %LET _SASPROGRAMFILE=; 50 %LET _SASPROGRAMFILEHOST=; 51 52 ;*';*";*/;quit;run; 53 ODS _ALL_ CLOSE; 54 55 56 QUIT; RUN; 57
... View more