/**********************************************************************/ /* Example 1: Displaying Percentages */ options missing=' '; proc report data=travel ls=100 ps=60 split='/' headline headskip center nowindows; title 'Travel Expense Report'; column rownum region name hotel air total perreg pertot; define rownum / computed format=2. width=3 'Row'; define region / order center 'Region' width=6; define name / order 'Sales/Representative' width=15; define hotel / sum noprint; define air / sum noprint; define total / computed format=dollar9. 'Total'; define perreg / computed format=percent9.2 width=10 'Regional/Percentage'; define pertot / computed format=percent9.2 width=10 'Overall/Percentage'; compute rownum; count+1; rownum=count; endcomp; compute total; total=air.sum+hotel.sum; endcomp; compute perreg; perreg=total/rtot; endcomp; compute pertot; pertot=total/gtot; endcomp; break after region / skip; compute before region; rtot=total; count+(-1); endcomp; compute after region; count+(-1); rownum=.; line @13 31*'-' @52 9*'-' @68 9*'-' @85 8*'-'; line @18 'Summary for Region ' region $1. @51 total dollar9. @68 perreg percent9.2 @84 pertot percent9.2; endcomp; compute before; gtot=total; count+(-1); endcomp; /**********************************************************************/ /* Example 2: Referencing Positions of Columns */ proc format; value $namefmt 'BECKER'='_Becker_' 'FOSTER'='_Foster_' 'GRANT' ='_Grant_' 'NORMAN'='_Norman_' 'THOMAS'='_Thomas_'; title1 'Example of Referencing Column Positions'; title2 'for an ACROSS Variable'; proc report ls=132 ps=54 split="/" headline center data=travel nowindows; column dest name,( n colper cumper); define dest / group width=11 'Destination'; define name / across format= $namefmt. width=7 '_Sales Representative_' ; define n / width=5 format=2. center '# /Trips' ; define colper / computed format=percent6. width=7 'Column/Percent' ; define cumper / computed format=percent6. width=7 'Cumm./Percent' ; compute before; c2tot=_c2_; c5tot=_c5_; c8tot=_c8_; c11tot=_c11_; c14tot=_c14_; endcomp; compute colper; _c3_=_c2_/c2tot; _c6_=_c5_/c5tot; _c9_=_c8_/c8tot; _c12_=_c11_/c11tot; _c15_=_c14_/c14tot; endcomp; compute before dest; cumcol3+_c3_; cumcol6+_c6_; cumcol9+_c9_; cumcol12+_c12_; cumcol15+_c15_; endcomp; compute cumper; _c4_=cumcol3; _c7_=cumcol6; _c10_=cumcol9; _c13_=cumcol12; _c16_=cumcol15; endcomp; rbreak after / ol ul summarize; compute after; dest='totals'; endcomp; /**********************************************************************/