%MACRO BLK_BOOL(dsn=,row=,col=,total=T,indent=0,prefix=,use=,stat=Y,blktitle=,num=,space=2,condense=) / store des="see documentation for a detailed description" ;
%LOCAL n_lst v_lst n row_n m name;
%LET name=BLK_BOOL;
%IF %LENGTH(&BLKTITLE) ne 0 %THEN %DO;
data blktit#
length class $&CW_C;
class="&BLKTITLE";
output;
run;
%END;
%CHK_LIST(list=&ROW);
%DO n=1 %TO &N_LST;
%IF &N gt 1 %THEN %LET total=n; ;
%LET row_n=%SCAN(&V_LST,&N,|);
%TOP_FILT(dsn=&DSN,grp=&PREFIX&ROW_N,by=&COL,grplvl=&N,var=,condense=&CONDENSE);
%TOP_FREQ(dsn=top_filt,grp=&PREFIX&ROW_N,by=&COL);
%TOP_OUTC(dsn=top_freq,head=n,total=&TOTAL,stat=&STAT,indent=&INDENT,grp=&PREFIX&ROW_N,rev=n,use=&USE,by=&COL);
%END;
%IF &TAB_NAME ne %THEN %DO;
data %SUBSTR(&TAB_NAME,1,3)&NUM%SUBSTR(&TAB_NAME,5,4);
set
%IF %LENGTH(&BLKTITLE) ne 0 %THEN blktit#
%IF &SPACE eq 1 %THEN dummy;
%DO n=1 %TO &N_LST;
%IF &SPACE eq 2 %THEN dummy;
row&N._0
%END;
%IF &SPACE eq 1 %THEN dummy;
%IF &SPACE eq 2 %THEN dummy;
%IF &SPACE eq 3 %THEN dummy;
;
run;
%END;
data &PREFIX;
set
%DO m=1 %TO &N_LST;
row&M._0
%END;
dummy
;
run;
%GEN_MAIL(name=&NAME);
%MEND BLK_BOOL;