SAS allows up to 10 footnotes on a report in the majority of organisations at least one is used to identify the program used to generate the report with some indication of run date etc. Others are used to clarify some information on the report. Clearly the number of footnotes is variable so any macro has to cope with any number between zero and 10.
%do i=1 %to %wordcount(list=&footer,sep=%str(^));
footnote&i j=l bold "%scan(&footer,&i,%str(^))";
%end;
The code below assumes the calling macro receives a variable footer containing a string seperated by ^ with the required footnotes NB If blank footnotes are needed then the %wordcount needs to be replaced by %wordcount_blank

%output_gentab(outsubpath=&outsubpath,outfile=RT04_DEMOG,tableno=Table 2.1,
category_label=Characteristics,
catwidth=4cm,
poptitle=Safety Analysis Set,
footer=
this is a footnote^%str(Program Name   :progpath^Date of Table Production: &sysdate9 ),
title4=Patient Demographics,
trtcd=cohort);

In the example above 3 footnotes will be generated as follows:

footnote1 "this is a footnote";
footnote2 "Program Name: progpath";
footnote3 "Date of Table Production: 12-Feb-2011";

Each will be bolded and left justified  j=l bold


Assigning a variable number of footnotes in a macro call

Show the full path of the program in batch job

If the job runs as a batch job then the following footnote will display the full path of the running program

%sysfunc(getoption(sysin))

Use in conjunction with the example above

%output_gentab(outsubpath=&outsubpath,outfile=RT04_DEMOG,tableno=Table 2.1,
category_label=Characteristics,
catwidth=4cm,
poptitle=Safety Analysis Set,
footer=
this is a footnote^Program Name: %sysfunc(getoption(sysin))^Date of Table Production: &sysdate9 ),
title4=Patient Demographics,
trtcd=cohort);

NB In interactve note the %sysfunc(getoption(sysin)) is blank