Hi All, With the enclosed reporting frames, you should be able to duplicate any 'standard' reports from any clinical reporting system. Attached is a zip file with 40 examples of reporting frames using proc template in SAS. Here is just one of them. Just pick the one you like and use in in the template below. /* Values for Frame ABOVE, BELOW, BOX, DYNAMIC, EXPRESSION, HSIDES, LHS, RESOLVE, RHS, SYMGET, VOID, VSIDES, _UNDEFINE_, _UNDEF_, _UND_. Values for Rules ALL, COLS, DYNAMIC, EXPRESSION, GROUPS, NONE, RESOLVE, ROWS, SYMGET, _UNDEFINE_, _UNDEF_, _UND_. */ Program that created all the Frames. %Macro Utl_RtfTst ( frame=box, rules=groups, style=TrgRtf, bottommargin=.75in, topmargin=.75in, rightmargin=1.25in, leftmargin=1.25in ) / Des="SAS Rtf Template for Target"; Proc Template; define style &Style; parent=styles.rtf; replace fonts / 'docFont' =("Arial",10.1pt) 'FixedFont' =("Courier",10.1pt) 'BatchFixedFont' =("Courier",10.1pt) 'FixedStrongFont' =("Courier",10.1pt) 'FixedHeadingFont' =("Courier",10.1pt) 'FixedEmphasisFont' =("Courier",10.1pt) 'EmphasisFont' =("Arial",10pt) 'HeadingEmphasisFont'=("Arial",10pt,Bold) 'StrongFont' =("Arial",10.1pt) 'HeadingFont' =("Arial",10.1pt,Bold) 'TitleFont' =("Arial",10.1pt,Bold) 'TitleFont2' =("Arial",10.1pt,Medium) ; style table from table / frame=&frame protectspecialchars=off font=fonts('docFont') borderwidth = .1pt cellpadding = 1pt cellspacing = 1pt rules=&rules ; replace HeadersAndFooters from Cell / font = fonts('docFont') foreground=colors('datafg') background=colors('databg') protectspecialchars=off; replace SystemFooter from TitlesAndFooters / font=fonts('docFont') just=c; replace body from Document / bottommargin=&bottommargin topmargin =&topmargin rightmargin =&rightmargin leftmargin =&leftmargin ; end; run; quit; ods rtf file="c:\etc\&frame._&rules..rtf" style=trgrtf; proc sort data=sashelp.class out=class;by sex;run; proc report data=class nowd split='#'; cols ( "Example of Frame=&Frame. Rules=&Rules." sex name age height weight); define sex / group ; define name / display ; define age / analysis max; define height/ analysis max; define weight/ analysis max; break after sex / summarize; compute after sex; tab='09'x; line tab $9.; Endcomp run; quit; ods rtf close; run; %Mend Utl_RtfTst; title; %Utl_RtfTst( frame=box, rules=groups, style=TrgRtf); %Utl_RtfTst( frame=hsides, rules=groups, style=TrgRtf); %Utl_RtfTst( frame=vsides, rules=groups, style=TrgRtf); %Utl_RtfTst( frame=lhs, rules=groups, style=TrgRtf); %Utl_RtfTst( frame=rhs, rules=groups, style=TrgRtf); %Utl_RtfTst( frame=void, rules=groups, style=TrgRtf); %Utl_RtfTst( frame=above, rules=groups, style=TrgRtf); %Utl_RtfTst( frame=below, rules=groups, style=TrgRtf); %Utl_RtfTst( frame=box, rules=rows, style=TrgRtf); %Utl_RtfTst( frame=hsides, rules=rows, style=TrgRtf); %Utl_RtfTst( frame=vsides, rules=rows, style=TrgRtf); %Utl_RtfTst( frame=lhs, rules=rows, style=TrgRtf); %Utl_RtfTst( frame=rhs, rules=rows, style=TrgRtf); %Utl_RtfTst( frame=void, rules=rows, style=TrgRtf); %Utl_RtfTst( frame=above, rules=rows, style=TrgRtf); %Utl_RtfTst( frame=below, rules=rows, style=TrgRtf); %Utl_RtfTst( frame=box, rules=cols, style=TrgRtf); %Utl_RtfTst( frame=hsides, rules=cols, style=TrgRtf); %Utl_RtfTst( frame=vsides, rules=cols, style=TrgRtf); %Utl_RtfTst( frame=lhs, rules=cols, style=TrgRtf); %Utl_RtfTst( frame=rhs, rules=cols, style=TrgRtf); %Utl_RtfTst( frame=void, rules=cols, style=TrgRtf); %Utl_RtfTst( frame=above, rules=cols, style=TrgRtf); %Utl_RtfTst( frame=below, rules=cols, style=TrgRtf); %Utl_RtfTst( frame=box, rules=none, style=TrgRtf); %Utl_RtfTst( frame=hsides, rules=none, style=TrgRtf); %Utl_RtfTst( frame=vsides, rules=none, style=TrgRtf); %Utl_RtfTst( frame=lhs, rules=none, style=TrgRtf); %Utl_RtfTst( frame=rhs, rules=none, style=TrgRtf); %Utl_RtfTst( frame=void, rules=none, style=TrgRtf); %Utl_RtfTst( frame=above, rules=none, style=TrgRtf); %Utl_RtfTst( frame=below, rules=none, style=TrgRtf); %Utl_RtfTst( frame=box, rules=all, style=TrgRtf); %Utl_RtfTst( frame=hsides, rules=all, style=TrgRtf); %Utl_RtfTst( frame=vsides, rules=all, style=TrgRtf); %Utl_RtfTst( frame=lhs, rules=all, style=TrgRtf); %Utl_RtfTst( frame=rhs, rules=all, style=TrgRtf); %Utl_RtfTst( frame=void, rules=all, style=TrgRtf); %Utl_RtfTst( frame=above, rules=all, style=TrgRtf); %Utl_RtfTst( frame=below, rules=all, style=TrgRtf);