I am speaking within Internet Explorer. I am not the author of the program, here is the script that runs hopefully it is helpful:
data _null_;
%MACRO PORTLIST;
indpct = ind_mktval /net_assets * 100;
asspct = ass_mktval /net_assets * 100;
asothpct = asst_oth /net_assets * 100;
netastpct = net_assets /net_assets * 100;
industrytypenameu = upcase(industrytypename);
amountd = amount;
spdesc1 = trim(spdesc);
by portfolio assclass industrycode;
datetox = input(put(dateto,$8.),yymmdd8.);
matdatex = input(put(matdate,$8.),yymmdd8.);
format mktval epbookval ind_mktval ind_book ass_mktval amount
comma12.0 coupon 5.2 matdatex mmddyy8.
datetox worddate18. indpct asspct asothpct netastpct 4.1 amountd ass_book port_book port_mktval asst_oth net_assets dollar12.0;
if first.portfolio then do;
put @1 '';
put @1 '';
put @1 '';
put @1 '';
put @1 ' ';
put @1 '
';
put @1 '
';
put @1 '';
put @1 '';
put @1 '';
put @1 companyname ' (' fundname ')';
put @1 ' PORTFOLIO OF INVESTMENTS IN SECURITIES ';
put @1 ' ' DATETOX ' ';
put @1 ' | ';
put @1 '
';
put @1 '
';
put @1 '';
put @1 '
';
/* put @1 '
'; */
put @1 ' ';
end;
if first.assclass and assclass = 3 then do;
put @1 '';
put @1 ' ';
put @1 ' ';
put @1 ' LONG-TERM DEBT SECURITIES: | ';
put @1 ' Rating | ';
put @1 ' | ';
put @1 ' Rate(%) | ';
put @1 ' | ';
put @1 ' Maturity | ';
put @1 ' Face Amount($) | ';
put @1 ' | ';
put @1 ' Value($) | ';
put @1 '
';
put @1 '
';
end;
if first.assclass and assclass = 2 then do;
put @1 '';
put @1 ' ';
put @1 ' ';
put @1 ' COMMON STOCKS: | ';
put @1 ' | ';
put @1 ' | ';
put @1 ' | ';
put @1 ' | ';
put @1 ' | ';
put @1 ' Shares | ';
put @1 ' | ';
put @1 ' Value($) | ';
put @1 '
';
put @1 '
';
end;
if first.assclass and assclass = 1 then do;
put @1 '';
put @1 ' ';
put @1 ' ';
put @1 ' INDEXED ASSETS: | ';
put @1 ' | ';
put @1 ' | ';
put @1 ' | ';
put @1 ' | ';
put @1 ' | ';
put @1 ' Shares | ';
put @1 ' | ';
put @1 ' Value($) | ';
put @1 '
';
put @1 '
';
end;
if first.assclass and assclass = 4 then do;
put @1 '';
put @1 ' ';
put @1 ' ';
put @1 ' SHORT-TERM DEBT SECURITIES: | ';
put @1 ' Rating | ';
put @1 ' | ';
put @1 ' Rate(%) | ';
put @1 ' | ';
put @1 ' Maturity | ';
put @1 ' Face Amount($) | ';
put @1 ' | ';
put @1 ' Value($) | ';
put @1 '
';
put @1 '
';
end;
if first.assclass and assclass = 1.5 then do;
put @1 '';
put @1 ' ';
put @1 ' ';
put @1 ' INDEXED ASSETS SHORT-TERM DEBT SECURITIES: | ';
put @1 ' Rating | ';
put @1 ' | ';
put @1 ' Rate(%) | ';
put @1 ' | ';
put @1 ' Maturity | ';
put @1 ' Face Amount($) | ';
put @1 ' | ';
put @1 ' Value($) | ';
put @1 '
';
put @1 '
';
end;
if first.industrycode then do;
/* put @1 ''; */
put @1 '';
put @1 '';
put @1 '';
put @1 ' ';
put @1 ' ' industrytypenameu ' (' indpct '%) | ';
put @1 ' | ';
put @1 ' | ';
put @1 ' | ';
put @1 ' | ';
put @1 ' | ';
put @1 '
';
put @1 '';
put @1 '';
end;
if assclass = 3 or assclass = 4 or assclass = 1.5 then do;
if last.industrycode then do;
put @1' ';
put @1' ';
put @1' ' isrname ' | ';
put @1' ';
put @1' ' spdesc1 ' | ';
put @1' ';
put @1' | ';
put @1' ';
put @1' ' coupon ' | ';
put @1' ';
put @1' | ';
put @1' ';
put @1' ' matdatex ' | ';
put @1' ';
put @1' ' amount ' | ';
put @1' ';
put @1' | ';
put @1' ';
put @1' ' mktval ' | ';
put @1'
';
put @1' ';
put @1' ';
put @1' | ';
put @1' ';
put @1' | ';
put @1' ';
put @1' | ';
put @1' ';
put @1' | ';
put @1' ';
put @1' | ';
put @1' ';
put @1' | ';
put @1' ';
put @1' | ';
put @1' ';
put @1' | ';
put @1' ';
put @1' ' ind_mktval ' | ';
put @1'
';
put @1'';
put @1'
';
end;
else if first.industrycode then do;
put @1' ';
put @1' ';
put @1' ' isrname ' ';
put @1' ';
put @1' ' spdesc1 '
';
put @1' ';
put @1'
';
put @1' ';
put @1'
' coupon '';
put @1' ';
put @1'
';
put @1' ';
put @1'
' matdatex '';
put @1' ';
put @1'
' amount '';
put @1' ';
put @1'
';
put @1' ';
put @1'
' mktval '';
put @1' ';
end;
else do;
put @1' ';
put @1' ';
put @1'
' isrname ' ';
put @1' ';
put @1'
' spdesc1 '
';
put @1' ';
put @1'
';
put @1' ';
put @1'
' coupon '';
put @1' ';
put @1'
';
put @1' ';
put @1'
' matdatex '';
put @1' ';
put @1'
' amount '';
put @1' ';
put @1'
';
put @1' ';
put @1'
' mktval '';
put @1' ';
end;
end;
else do;
if last.industrycode then do;
put @1' ';
put @1' ';
put @1'
' isrname ' ';
put @1' ';
put @1'
';
put @1' ';
put @1'
';
put @1' ';
put @1'
';
put @1' ';
put @1'
';
put @1' ';
put @1'
';
put @1' ';
put @1'
' amount '';
put @1' ';
put @1'
';
put @1' ';
put @1'
' mktval '';
put @1' ';
put @1' ';
put @1' ';
put @1'
';
put @1' ';
put @1'
';
put @1' ';
put @1'
';
put @1' ';
put @1'
';
put @1' ';
put @1'
';
put @1' ';
put @1'
';
put @1' ';
put @1'
';
put @1' ';
put @1'
';
put @1' ';
put @1'
' ind_mktval '';
put @1' ';
put @1'';
put @1'';
end;
else do;
put @1' ';
put @1' ';
put @1'
' isrname ' ';
put @1' ';
put @1'
';
put @1' ';
put @1'
';
put @1' ';
put @1'
';
put @1' ';
put @1'
';
put @1' ';
put @1'
';
put @1' ';
put @1'
' amount '';
put @1' ';
put @1'
';
put @1' ';
put @1'
' mktval '';
put @1' ';
end;
end;
if last.assclass and assclass = 3 then do;
put @1 '
';
put @1 ' ';
put @1 ' ';
put @1 ' TOTAL LONG-TERM DEBT SECURITIES (Cost: ' ass_book ') ' asspct '% | ';
put @1 ' | ';
put @1 ' | ';
put @1 ' ' ass_mktval ' | ';
put @1 '
';
put @1 '
';
end;
if last.assclass and assclass = 1 then do;
put @1 '
';
put @1 ' ';
put @1 ' ';
put @1 ' TOTAL INDEXED ASSETS (Cost: ' ass_book ') ' asspct '% | ';
put @1 ' | ';
put @1 ' | ';
put @1 ' ' ass_mktval ' | ';
put @1 '
';
put @1 '
';
end;
if last.assclass and assclass = 2 then do;
put @1 '
';
put @1 ' ';
put @1 ' ';
put @1 ' TOTAL EQUITY SECURITIES (Cost: ' ass_book ') ' asspct '% | ';
put @1 ' | ';
put @1 ' | ';
put @1 ' ' ass_mktval ' | ';
put @1 '
';
put @1 '
';
end;
if last.assclass and assclass = 4 then do;
put @1 '
';
put @1 ' ';
put @1 ' ';
put @1 ' TOTAL SHORT-TERM DEBT SECURITIES (Cost: ' ass_book ') ' asspct '% | ';
put @1 ' | ';
put @1 ' | ';
put @1 ' ' ass_mktval ' | ';
put @1 '
';
put @1 '
';
end;
if last.assclass and assclass = 1.5 then do;
put @1 '
';
put @1 ' ';
put @1 ' ';
put @1 ' TOTAL SHORT-TERM DEBT SECURITIES (Cost: ' ass_book ') ' asspct '% | ';
put @1 ' | ';
put @1 ' | ';
put @1 ' ' ass_mktval ' | ';
put @1 '
';
put @1 '
';
end;
if last.portfolio then do;
put @1 '
';
put @1 ' ';
put @1 ' ';
put @1 ' TOTAL INVESTMENTS (Cost: ' PORT_book ') ' asspct '% | ';
put @1 ' | ';
put @1 ' | ';
put @1' ';
put @1 '' PORT_mktval ' | ';
put @1 '
';
put @1 ' ';
put @1 ' ';
put @1 ' OTHER NET ASSETS ' asothpct '% | ';
put @1 ' | ';
put @1 ' | ';
put @1' ';
put @1 '' ASST_OTH ' | ';
put @1 '
';
put @1 ' ';
put @1 ' ';
put @1 ' NET ASSETS ' netastpct '% | ';
put @1 ' | ';
put @1 ' | ';
put @1' ';
put @1 '' NET_ASSETS ' | ';
put @1 '
';
put @1 '
';
/* put @1''; */
put @1'';
put @1' ';
put @1'
';
put @1' ';
put @1'
';
put @1' ';
put @1'';
put @1'';
end;
%MEND;
run;