I produce
with a REPORT procedure using a TEMPLATE with the following:
style TABLE in template
frame = hsides
rules = none
style HEADER in template
borderbottomstyle = solid
style DATA in template
borderstyle = none
I want the lines with the header omitted (I need the absolute top and bottom lines only):
Note that I produced the underline under "Span Header" using an inline style with textdecoration.
I have two questions:
1) How can I omit the line or add a line to the absolute bottom of the header?
2) How can I get the text decoration (underline) to span the two columns and be centered over them? This could expand to three columns or I could need to span two groups of columns with two headers.
Thank you,
Kevin
If you are modifying a style template then at least mention which is the parent style as that controls everything you have not explicitly shown. Better is to show your entire code for the style.
Second, show you create your output. Best is to include some example data in the form of a data step and the code creating the report, which should include your ODS destination options as well.
It is extremely difficult to suggest code for such specific requirements without all of the pieces.
Good points. The template is:
proc template ;
define style
styles.fda_tfl / store = library.templat
;
parent = styles.pearl ;
class fonts
/ "TitleFont" = ( "Courier New"
, 9pt
)
"TitleEmphasisFont" = ( "Courier New"
, 9pt
, bold
)
"TitleFont2" = ( "Courier New"
, 9pt
)
"StrongFont" = ( "Courier New"
, 9pt
, bold
)
"EmphasisFont" = ( "Courier New"
, 9pt
, italic
)
"FixedEmphasisFont" = ( "Courier New"
, 9pt
)
"FixedStrongFont" = ( "Courier New"
, 9pt
, bold
)
"FixedHeadingFont" = ( "Courier New"
, 9pt
, bold
)
"BatchFixedFont" = ( "Courier New"
, 9pt
)
"FixedFont" = ( "Courier New"
, 9pt
)
"headingEmphasisFont" = ( "Courier New"
, 9pt
, bold italic
)
"headingFont" = ( "Courier New"
, 9pt
, bold
)
"docFont" = ( "Courier New"
, 9pt
)
;
style body from document
/ bottommargin = _undef_
topmargin = _undef_
rightmargin = _undef_
leftmargin = _undef_
;
style table
/ frame = hsides
rules = none
cellpadding = 3pt
cellspacing = 0pt
width = 100%
borderwidth = 2
;
style header
/ just = c
borderbottomstyle = solid
borderbottomwidth = 1
fontweight = medium
;
style data
/ just = c
verticalalign = bottom
borderstyle = none
padding = 0
;
end ;
run ;
I should have mentioned that this is the actual output, but I replaced the numbers. Otherwise, it is part of a rather generic demographics table in clinical trials.
Thank you,
Kevin
ods rtf file='c:\temp\temp.rtf' style=journal bodytitle;
proc report data=sashelp.heart nowd style={outputwidth=80%};
column ageatstart ('(*ESC*)S={borderbottomwidth=2 borderbottomcolor=black}Span Header' weight,sex) weight=w;
define ageatstart/group;
define sex/across ' ';
define weight/analysis sum ' ';
define w/analysis sum 'Total';
run;
ods rtf close;
Are you ready for the spotlight? We're accepting content ideas for SAS Innovate 2025 to be held May 6-9 in Orlando, FL. The call is open until September 25. Read more here about why you should contribute and what is in it for you!
Learn how use the CAT functions in SAS to join values from multiple variables into a single value.
Find more tutorials on the SAS Users YouTube channel.