The SAS Output Delivery System and reporting techniques

Horizontal lines

Reply
N/A
Posts: 0

Horizontal lines

Hello all,

I am trying to use SAS to generate some flash financial statements from an Oracle database. I have the data pulled and presented correctly (via PROC REPORT), but I can't for the life of me figure out how to put a single line below section totals, and a double line before the grand total. (I know this used to be the UL and DUL functions, but these aren't recognized by ODS PDF, which is the intended format.) What I want to have is basically lines like the following:

4,000,000 Sales

25,000 Office expense
50,000 Consultant expense
---------------
75,000 Total expenses
---------------
3,925,000 Net income
===========

I've tried putting a border on the total row, but it extends all the way across the page. Is there something I'm missing?

Thanks for the help!

Jason Browning
Controller, Lake Superior State University
SAS Super FREQ
Posts: 8,744

Re: Horizontal lines

Hi:
It would help to see your whole ODS PDF invocation, including the STYLE= option that you're using. In some sense, adding underlines would be a bit redundant because the default PDF style has table lines all over the place.

If you are running SAS 9.2, you could experiment with the TEXTDECORATION style attribute, as discussed in this previous forum posting:
http://support.sas.com/forums/thread.jspa?messageID=43810ꬢ

There are some examples of using RTF control strings in that posting too. No matter whether the code examples are using TEXTDECORATION or BORDERBOTTOMSTYLE, you might want to experiment with the JOURNAL style -- instead of the default PDF style because JOURNAL will remove all of the interior table lines except the ones under the headers and the text decoration or border style that you add.

cynthia
N/A
Posts: 0

Re: Horizontal lines

Thanks, Cynthia. TEXTDECORATION is close, but I want both an overline and an underline. BORDER is close, but the border goes completely across the page (I just want it with the numbers, not under the text headings at left).

I'm importing a CSS file based on the EGDefault template from the Enterprise Guide. I'm pasting both it and my code below. Any guidance is definitely appreciated!!

CSS File:

.AfterCaption{
font-family: 'thorndale amt','times roman';
font-size: 11pt;
color: #000000;
font-weight: bold;
padding-top: 0px;
padding-right: 0px;
padding-bottom: 0px;
padding-left: 0px;
border-spacing: 0px;
}
.Batch{
font-family: 'sas monospace','cumberland amt',courier;
font-size: 6;
color: #000000;
font-style: normal;
font-weight: normal;
padding-top: 7px;
padding-right: 7px;
padding-bottom: 7px;
padding-left: 7px;
border-width: 1px;
border-style: solid;
border-color: #000000; border-collapse: separate;
border-spacing: 1px;
}
.BeforeCaption{
font-family: 'thorndale amt','times roman';
font-size: 11pt;
color: #000000;
font-weight: bold;
padding-top: 0px;
padding-right: 0px;
padding-bottom: 0px;
padding-left: 0px;
border-spacing: 0px;
}
.Body{
font-family: 'thorndale amt','times roman';
font-size: 10pt;
color: #000000;
font-style: normal;
font-weight: normal;
}
.BodyDate{
font-family: 'thorndale amt','times roman';
font-size: 10pt;
color: #000000;
font-style: normal;
font-weight: normal;
vertical-align: top;
text-align: right;
padding-top: 0px;
padding-right: 0px;
padding-bottom: 0px;
padding-left: 0px;
border-spacing: 0px;
}
.ByContentFolder{
font-family: 'thorndale amt','times roman';
font-size: 10pt;
color: #000000;
font-style: normal;
font-weight: normal;
text-align: left;
margin-right: 15%;
margin-left: 15%;
list-style-type: none;
}
.Byline{
font-family: 'thorndale amt','times roman';
font-size: 11pt;
color: #000000;
font-weight: bold;
padding-top: 0px;
padding-right: 0px;
padding-bottom: 0px;
padding-left: 0px;
border-spacing: 0px;
}
.BylineContainer{
font-family: 'thorndale amt','times roman';
font-size: 10pt;
color: #000000;
font-style: normal;
font-weight: normal;
padding-top: 1px;
padding-right: 1px;
padding-bottom: 1px;
padding-left: 1px;
border-width: 0px;
border-style: solid;
border-color: #000000; border-spacing: 1px;
width: 100%;
}
.Caption{
font-family: 'thorndale amt','times roman';
font-size: 11pt;
color: #000000;
font-weight: bold;
padding-top: 0px;
padding-right: 0px;
padding-bottom: 0px;
padding-left: 0px;
border-spacing: 0px;
}
.Cell{
font-family: 'arial narrow';
font-size: 7pt;
color: #000000;
font-style: normal;
font-weight: normal;
}
.Container{
font-family: 'thorndale amt','times roman';
font-size: 10pt;
color: #000000;
font-style: normal;
font-weight: normal;
}
.ContentFolder{
font-family: 'thorndale amt','times roman';
font-size: 10pt;
color: #000000;
font-style: normal;
font-weight: normal;
text-align: left;
margin-right: 15%;
margin-left: 15%;
list-style-type: none;
}
.ContentItem{
font-family: 'thorndale amt','times roman';
font-size: 10pt;
color: #000000;
font-style: normal;
font-weight: normal;
text-align: left;
margin-right: 15%;
margin-left: 15%;
list-style-type: none;
}
.ContentProcLabel{
font-family: 'thorndale amt','times roman';
font-size: 10pt;
color: #000000;
font-style: normal;
font-weight: normal;
text-align: left;
margin-right: 15%;
margin-left: 15%;
list-style-type: decimal;
}
.ContentProcName{
font-family: 'thorndale amt','times roman';
font-size: 10pt;
color: #000000;
font-style: normal;
font-weight: normal;
text-align: left;
margin-right: 15%;
margin-left: 15%;
list-style-type: decimal;
}
.Contents{
font-family: 'thorndale amt','times roman';
font-size: 10pt;
color: #000000;
font-style: normal;
font-weight: normal;
margin-right: 8px;
margin-left: 8px;
list-style-type: decimal;
}
.ContentsDate{
font-family: 'thorndale amt','times roman';
font-size: 10pt;
color: #000000;
font-style: normal;
font-weight: normal;
}
.ContentTitle{
font-family: 'thorndale amt','times roman';
font-size: 13pt;
color: #000000;
font-style: italic;
font-weight: bold;
text-align: center;
margin-top: 3ex;
margin-right: 1em;
margin-bottom: 4ex;
margin-left: 1em;
width: 100%;
}
.Continued{
font-family: 'thorndale amt','times roman';
font-size: 11pt;
color: #000000;
font-weight: bold;
text-align: left;
padding-top: 0px;
padding-right: 0px;
padding-bottom: 0px;
padding-left: 0px;
border-spacing: 0px;
width: 100%;
}
.Data{
font-family: arial;
font-size: 10pt;
color: #000000;
font-style: normal;
font-weight: normal;
}
.DataEmphasis{
font-family: 'thorndale amt','times roman';
font-size: 10pt;
color: #000000;
font-style: italic;
}
.DataEmphasisFixed{
font-family: 'cumberland amt',courier;
font-size: 9pt;
color: #000000;
font-style: italic;
}
.DataEmpty{
font-family: 'thorndale amt','times roman';
font-size: 10pt;
color: #000000;
font-style: normal;
font-weight: normal;
}
.DataFixed{
font-family: 'cumberland amt',courier;
font-size: 9pt;
color: #000000;
font-style: normal;
font-weight: normal;
}
.DataStrong{
font-family: 'thorndale amt','times roman';
font-size: 10pt;
color: #000000;
font-weight: bold;
}
.DataStrongFixed{
font-family: 'cumberland amt',courier;
font-size: 9pt;
color: #000000;
font-weight: bold;
}
.Date{
font-family: 'thorndale amt','times roman';
font-size: 10pt;
color: #000000;
font-style: normal;
font-weight: normal;
}
.Document{
font-family: 'thorndale amt','times roman';
font-size: 10pt;
color: #000000;
font-style: normal;
font-weight: normal;
}
a:link{
font-style: normal;
font-weight: normal;
}
a:visited{
font-style: normal;
font-weight: normal;
}
a:active{
font-style: normal;
font-weight: normal;
}
.ErrorBanner{
font-family: 'thorndale amt','times roman';
font-size: 10pt;
color: #000000;
font-weight: bold;
}
.ErrorContent{
font-family: 'thorndale amt','times roman';
font-size: 10pt;
color: #000000;
font-style: normal;
font-weight: normal;
}
.ErrorContentFixed{
font-family: 'cumberland amt',courier;
font-size: 9pt;
color: #000000;
font-style: normal;
font-weight: normal;
}
.ExtendedPage{
font-family: 'thorndale amt','times roman';
font-size: 10pt;
color: #000000;
font-style: italic;
text-align: center;
padding-top: 2pt;
padding-right: 2pt;
padding-bottom: 2pt;
padding-left: 2pt;
border-width: 1pt;
border-style: solid;
border-color: #000000;}
.FatalBanner{
font-family: 'thorndale amt','times roman';
font-size: 10pt;
color: #000000;
font-weight: bold;
}
.FatalContent{
font-family: 'thorndale amt','times roman';
font-size: 10pt;
color: #000000;
font-style: normal;
font-weight: normal;
}
.FatalContentFixed{
font-family: 'cumberland amt',courier;
font-size: 9pt;
color: #000000;
font-style: normal;
font-weight: normal;
}
.FolderAction{
font-family: 'thorndale amt','times roman';
font-size: 10pt;
color: #000000;
font-style: normal;
font-weight: normal;
margin-left: 6pt;
list-style-type: none;
}
.Footer{
font-family: 'thorndale amt','times roman';
font-size: 11pt;
color: #000000;
background-color: #BBBBBB;
font-weight: bold;
}
.FooterEmphasis{
font-family: 'thorndale amt','times roman';
font-size: 10pt;
color: #000000;
background-color: #BBBBBB;
font-style: italic;
}
.FooterEmphasisFixed{
font-family: 'cumberland amt',courier;
font-size: 9pt;
color: #000000;
background-color: #BBBBBB;
font-style: italic;
}
.FooterEmpty{
font-family: 'thorndale amt','times roman';
font-size: 11pt;
color: #000000;
background-color: #BBBBBB;
font-weight: bold;
}
.FooterFixed{
font-family: 'cumberland amt',courier;
font-size: 9pt;
color: #000000;
background-color: #BBBBBB;
font-style: normal;
font-weight: normal;
}
.FooterStrong{
font-family: 'thorndale amt','times roman';
font-size: 10pt;
color: #000000;
background-color: #BBBBBB;
font-weight: bold;
}
.FooterStrongFixed{
font-family: 'cumberland amt',courier;
font-size: 9pt;
color: #000000;
background-color: #BBBBBB;
font-weight: bold;
}
.Frame{
font-family: 'thorndale amt','times roman';
font-size: 10pt;
color: #000000;
font-style: normal;
font-weight: normal;
}
.Graph{
font-family: 'thorndale amt','times roman';
font-size: 10pt;
color: #000000;
font-style: normal;
font-weight: normal;
padding-top: 0px;
padding-right: 0px;
padding-bottom: 0px;
padding-left: 0px;
border-width: 0.75pt;
border-style: solid;
border-color: #000000; border-collapse: separate;
border-spacing: 0.25pt;
}
.Header{
font-family: Arial;
font-size: 10pt;
color: #000000;
background-color: #BBBBBB;
font-weight: bold;
border-right-color: #C0C0C0;border-bottom-width: thin;
border-bottom-style: solid;
border-bottom-color: #000000;border-left-color: #C0C0C0;}
.HeaderEmphasis{
font-family: 'thorndale amt','times roman';
font-size: 10pt;
color: #000000;
background-color: #BBBBBB;
font-style: italic;
}
.HeaderEmphasisFixed{
font-family: 'cumberland amt',courier;
font-size: 9pt;
color: #000000;
background-color: #BBBBBB;
font-style: italic;
}
.HeaderEmpty{
font-family: 'thorndale amt','times roman';
font-size: 11pt;
color: #000000;
background-color: #BBBBBB;
font-weight: bold;
}
.HeaderFixed{
font-family: 'cumberland amt',courier;
font-size: 9pt;
color: #000000;
background-color: #BBBBBB;
font-style: normal;
font-weight: normal;
}
.HeadersAndFooters{
font-family: 'thorndale amt','times roman';
font-size: 11pt;
color: #000000;
background-color: #BBBBBB;
font-weight: bold;
}
.HeaderStrong{
font-family: 'thorndale amt','times roman';
font-size: 10pt;
color: #000000;
background-color: #BBBBBB;
font-weight: bold;
}
.HeaderStrongFixed{
font-family: 'cumberland amt',courier;
font-size: 9pt;
color: #000000;
background-color: #BBBBBB;
font-weight: bold;
}
.Index{
font-family: 'thorndale amt','times roman';
font-size: 10pt;
color: #000000;
font-style: normal;
font-weight: normal;
}
.IndexAction{
font-family: 'thorndale amt','times roman';
font-size: 10pt;
color: #000000;
font-style: normal;
font-weight: normal;
margin-left: 6pt;
list-style-type: none;
}
.IndexItem{
font-family: 'thorndale amt','times roman';
font-size: 10pt;
color: #000000;
font-style: normal;
font-weight: normal;
margin-left: 6pt;
list-style-type: none;
}
.IndexProcName{
font-family: 'thorndale amt','times roman';
font-size: 10pt;
color: #000000;
font-style: normal;
font-weight: normal;
list-style-type: decimal;
}
.IndexTitle{
font-family: 'thorndale amt','times roman';
font-size: 10pt;
color: #000000;
font-style: italic;
}
.LayoutContainer{
font-style: normal;
font-weight: normal;
padding-top: 0px;
padding-right: 0px;
padding-bottom: 0px;
padding-left: 0px;
border-width: 0px;
border-style: solid;
border-color: #000000; border-spacing: 30px;
}
.LayoutRegion{
font-style: normal;
font-weight: normal;
padding-top: 0px;
padding-right: 0px;
padding-bottom: 0px;
padding-left: 0px;
border-width: 0px;
border-style: solid;
border-color: #000000; border-spacing: 30px;
}
.List{
font-family: 'thorndale amt','times roman';
font-size: 10pt;
color: #000000;
font-style: normal;
font-weight: normal;
text-align: left;
list-style-type: disc;
width: 100%;
}
.List10{
font-family: 'thorndale amt','times roman';
font-size: 10pt;
color: #000000;
font-style: normal;
font-weight: normal;
text-align: left;
list-style-type: square;
width: 100%;
}
.List2{
font-family: 'thorndale amt','times roman';
font-size: 10pt;
color: #000000;
font-style: normal;
font-weight: normal;
text-align: left;
list-style-type: circle;
width: 100%;
}
.List3{
font-family: 'thorndale amt','times roman';
font-size: 10pt;
color: #000000;
font-style: normal;
font-weight: normal;
text-align: left;
list-style-type: square;
width: 100%;
}
.List4{
font-family: 'thorndale amt','times roman';
font-size: 10pt;
color: #000000;
font-style: normal;
font-weight: normal;
text-align: left;
list-style-type: square;
width: 100%;
}
.List5{
font-family: 'thorndale amt','times roman';
font-size: 10pt;
color: #000000;
font-style: normal;
font-weight: normal;
text-align: left;
list-style-type: square;
width: 100%;
}
.List6{
font-family: 'thorndale amt','times roman';
font-size: 10pt;
color: #000000;
font-style: normal;
font-weight: normal;
text-align: left;
list-style-type: square;
width: 100%;
}
.List7{
font-family: 'thorndale amt','times roman';
font-size: 10pt;
color: #000000;
font-style: normal;
font-weight: normal;
text-align: left;
list-style-type: square;
width: 100%;
}
.List8{
font-family: 'thorndale amt','times roman';
font-size: 10pt;
color: #000000;
font-style: normal;
font-weight: normal;
text-align: left;
list-style-type: square;
width: 100%;
}
.List9{
font-family: 'thorndale amt','times roman';
font-size: 10pt;
color: #000000;
font-style: normal;
font-weight: normal;
text-align: left;
list-style-type: square;
width: 100%;
}
.ListItem{
font-family: 'thorndale amt','times roman';
font-size: 10pt;
color: #000000;
font-style: normal;
font-weight: normal;
}
.ListItem10{
font-family: 'thorndale amt','times roman';
font-size: 10pt;
color: #000000;
font-style: normal;
font-weight: normal;
}
.ListItem2{
font-family: 'thorndale amt','times roman';
font-size: 10pt;
color: #000000;
font-style: normal;
font-weight: normal;
}
.ListItem3{
font-family: 'thorndale amt','times roman';
font-size: 10pt;
color: #000000;
font-style: normal;
font-weight: normal;
}
.ListItem4{
font-family: 'thorndale amt','times roman';
font-size: 10pt;
color: #000000;
font-style: normal;
font-weight: normal;
}
.ListItem5{
font-family: 'thorndale amt','times roman';
font-size: 10pt;
color: #000000;
font-style: normal;
font-weight: normal;
}
.ListItem6{
font-family: 'thorndale amt','times roman';
font-size: 10pt;
color: #000000;
font-style: normal;
font-weight: normal;
}
.ListItem7{
font-family: 'thorndale amt','times roman';
font-size: 10pt;
color: #000000;
font-style: normal;
font-weight: normal;
}
.ListItem8{
font-family: 'thorndale amt','times roman';
font-size: 10pt;
color: #000000;
font-style: normal;
font-weight: normal;
}
.ListItem9{
font-family: 'thorndale amt','times roman';
font-size: 10pt;
color: #000000;
font-style: normal;
font-weight: normal;
}
.Note{
font-family: 'thorndale amt','times roman';
font-size: 10pt;
color: #000000;
font-style: normal;
font-weight: normal;
}
.NoteBanner{
font-family: 'thorndale amt','times roman';
font-size: 10pt;
color: #000000;
font-weight: bold;
}
.NoteContent{
font-family: 'thorndale amt','times roman';
font-size: 10pt;
color: #000000;
font-style: normal;
font-weight: normal;
}
.NoteContentFixed{
font-family: 'cumberland amt',courier;
font-size: 9pt;
color: #000000;
font-style: normal;
font-weight: normal;
}
.Output{
font-family: 'thorndale amt','times roman';
font-size: 10pt;
color: #000000;
font-style: normal;
font-weight: normal;
padding-top: 7px;
padding-right: 7px;
padding-bottom: 7px;
padding-left: 7px;
border-width: 1px;
border-style: solid;
border-color: #000000; border-collapse: separate;
border-spacing: 1px;
}
.PageNo{
font-family: 'thorndale amt','times roman';
font-size: 10pt;
color: #000000;
font-weight: bold;
vertical-align: top;
text-align: right;
padding-top: 0px;
padding-right: 0px;
padding-bottom: 0px;
padding-left: 0px;
border-spacing: 0px;
}
.Pages{
font-family: 'thorndale amt','times roman';
font-size: 10pt;
color: #000000;
font-style: normal;
font-weight: normal;
margin-right: 8px;
margin-left: 8px;
list-style-type: decimal;
}
.PagesDate{
font-family: 'thorndale amt','times roman';
font-size: 10pt;
color: #000000;
font-style: normal;
font-weight: normal;
}
.PagesItem{
font-family: 'thorndale amt','times roman';
font-size: 10pt;
color: #000000;
font-style: normal;
font-weight: normal;
margin-left: 6pt;
list-style-type: none;
}
.PagesProcLabel{
font-family: 'thorndale amt','times roman';
font-size: 10pt;
color: #000000;
font-style: normal;
font-weight: normal;
list-style-type: decimal;
}
.PagesProcName{
font-family: 'thorndale amt','times roman';
font-size: 10pt;
color: #000000;
font-style: normal;
font-weight: normal;
list-style-type: decimal;
}
.PagesTitle{
font-family: 'thorndale amt','times roman';
font-size: 10pt;
color: #000000;
font-style: italic;
}
.Paragraph{
font-family: 'thorndale amt','times roman';
font-size: 10pt;
color: #000000;
font-style: normal;
font-weight: normal;
text-align: left;
width: 100%;
}
.Parskip{
font-family: 'thorndale amt','times roman';
font-size: 11pt;
font-weight: bold;
padding-top: 0px;
padding-right: 0px;
padding-bottom: 0px;
padding-left: 0px;
border-width: 0px;
border-style: solid;
border-color: #000000; border-spacing: 0px;
}
.PrePage{
font-family: 'thorndale amt','times roman';
font-size: 10pt;
color: #000000;
font-style: normal;
font-weight: normal;
text-align: left;
}
.ProcTitle{
font-family: 'thorndale amt','times roman';
font-size: 10pt;
color: #000000;
font-style: italic;
font-weight: bold;
}
.ProcTitleFixed{
font-family: 'cumberland amt',courier;
font-size: 9pt;
color: #000000;
font-weight: bold;
}
.RowFooter{
font-family: 'thorndale amt','times roman';
font-size: 11pt;
color: #000000;
background-color: #BBBBBB;
font-weight: bold;
}
.RowFooterEmphasis{
font-family: 'thorndale amt','times roman';
font-size: 10pt;
color: #000000;
background-color: #BBBBBB;
font-style: italic;
}
.RowFooterEmphasisFixed{
font-family: 'cumberland amt',courier;
font-size: 9pt;
color: #000000;
background-color: #BBBBBB;
font-style: italic;
}
.RowFooterEmpty{
font-family: 'thorndale amt','times roman';
font-size: 11pt;
color: #000000;
background-color: #BBBBBB;
font-weight: bold;
}
.RowFooterFixed{
font-family: 'cumberland amt',courier;
font-size: 9pt;
color: #000000;
background-color: #BBBBBB;
font-style: normal;
font-weight: normal;
}
.RowFooterStrong{
font-family: 'thorndale amt','times roman';
font-size: 10pt;
color: #000000;
background-color: #BBBBBB;
font-weight: bold;
}
.RowFooterStrongFixed{
font-family: 'cumberland amt',courier;
font-size: 9pt;
color: #000000;
background-color: #BBBBBB;
font-weight: bold;
}
.RowHeader{
font-family: 'times new roman';
font-size: 10pt;
color: #000000;
background-color: transparent;
font-weight: bold;
}
.RowHeaderEmphasis{
font-family: 'thorndale amt','times roman';
font-size: 10pt;
color: #000000;
background-color: #BBBBBB;
font-style: italic;
}
.RowHeaderEmphasisFixed{
font-family: 'cumberland amt',courier;
font-size: 9pt;
color: #000000;
background-color: #BBBBBB;
font-style: italic;
}
.RowHeaderEmpty{
font-family: 'thorndale amt','times roman';
font-size: 11pt;
color: #000000;
background-color: #BBBBBB;
font-weight: bold;
}
.RowHeaderFixed{
font-family: 'cumberland amt',courier;
font-size: 9pt;
color: #000000;
background-color: #BBBBBB;
font-style: normal;
font-weight: normal;
}
.RowHeaderStrong{
font-family: 'thorndale amt','times roman';
font-size: 10pt;
color: #000000;
background-color: #BBBBBB;
font-weight: bold;
}
.RowHeaderStrongFixed{
font-family: 'cumberland amt',courier;
font-size: 9pt;
color: #000000;
background-color: #BBBBBB;
font-weight: bold;
}
.SystemFooter{
font-family: 'thorndale amt','times roman';
font-size: 10pt;
color: #000000;
font-style: italic;
font-weight: bold;
}
.SystemFooter10{
font-family: 'thorndale amt','times roman';
font-size: 13pt;
color: #000000;
font-style: italic;
font-weight: bold;
}
.SystemFooter2{
font-family: 'thorndale amt','times roman';
font-size: 13pt;
color: #000000;
font-style: italic;
font-weight: bold;
}
.SystemFooter3{
font-family: 'thorndale amt','times roman';
font-size: 13pt;
color: #000000;
font-style: italic;
font-weight: bold;
}
.SystemFooter4{
font-family: 'thorndale amt','times roman';
font-size: 13pt;
color: #000000;
font-style: italic;
font-weight: bold;
}
.SystemFooter5{
font-family: 'thorndale amt','times roman';
font-size: 13pt;
color: #000000;
font-style: italic;
font-weight: bold;
}
.SystemFooter6{
font-family: 'thorndale amt','times roman';
font-size: 13pt;
color: #000000;
font-style: italic;
font-weight: bold;
}
.SystemFooter7{
font-family: 'thorndale amt','times roman';
font-size: 13pt;
color: #000000;
font-style: italic;
font-weight: bold;
}
.SystemFooter8{
font-family: 'thorndale amt','times roman';
font-size: 13pt;
color: #000000;
font-style: italic;
font-weight: bold;
}
.SystemFooter9{
font-family: 'thorndale amt','times roman';
font-size: 13pt;
color: #000000;
font-style: italic;
font-weight: bold;
}
.SystemTitle{
font-family: 'thorndale amt','times roman';
font-size: 12pt;
color: #000000;
font-style: italic;
font-weight: bold;
}
.SystemTitle10{
font-family: 'thorndale amt','times roman';
font-size: 13pt;
color: #000000;
font-style: italic;
font-weight: bold;
}
.SystemTitle2{
font-family: 'thorndale amt','times roman';
font-size: 13pt;
color: #000000;
font-style: italic;
font-weight: bold;
}
.SystemTitle3{
font-family: 'thorndale amt','times roman';
font-size: 13pt;
color: #000000;
font-style: italic;
font-weight: bold;
}
.SystemTitle4{
font-family: 'thorndale amt','times roman';
font-size: 13pt;
color: #000000;
font-style: italic;
font-weight: bold;
}
.SystemTitle5{
font-family: 'thorndale amt','times roman';
font-size: 13pt;
color: #000000;
font-style: italic;
font-weight: bold;
}
.SystemTitle6{
font-family: 'thorndale amt','times roman';
font-size: 13pt;
color: #000000;
font-style: italic;
font-weight: bold;
}
.SystemTitle7{
font-family: 'thorndale amt','times roman';
font-size: 13pt;
color: #000000;
font-style: italic;
font-weight: bold;
}
.SystemTitle8{
font-family: 'thorndale amt','times roman';
font-size: 13pt;
color: #000000;
font-style: italic;
font-weight: bold;
}
.SystemTitle9{
font-family: 'thorndale amt','times roman';
font-size: 13pt;
color: #000000;
font-style: italic;
font-weight: bold;
}
.SysTitleAndFooterContainer{
font-family: 'thorndale amt','times roman';
font-size: 10pt;
color: #000000;
font-style: normal;
font-weight: normal;
padding-top: 1px;
padding-right: 1px;
padding-bottom: 1px;
padding-left: 1px;
border-width: 0px;
border-style: solid;
border-color: #000000; border-spacing: 1px;
width: 100%;
}
.Table{
font-family: 'thorndale amt','times roman';
font-size: 8pt;
color: #000000;
font-style: normal;
font-weight: normal;
text-align: center;
border-width: 0;
border-color: #000000;border-top-width: thin;
border-top-color: #000000;border-bottom-width: thin;
border-bottom-style: solid;
border-bottom-color: #000000; border-collapse: separate;
border-spacing: 0.25pt;
}
.top_stacked_value{
font-style: normal;
font-weight: normal;
padding-bottom: 1px;
}
.middle_stacked_value{
font-style: normal;
font-weight: normal;
padding-top: 1px;
padding-bottom: 1px;
}
.bottom_stacked_value{
font-style: normal;
font-weight: normal;
padding-top: 1px;
}
.TitleAndNoteContainer{
font-family: 'thorndale amt','times roman';
font-size: 10pt;
color: #000000;
font-style: normal;
font-weight: normal;
padding-top: 1px;
padding-right: 1px;
padding-bottom: 1px;
padding-left: 1px;
border-width: 0px;
border-style: solid;
border-color: #000000; border-spacing: 1px;
width: 100%;
}
.TitlesAndFooters{
font-family: 'thorndale amt','times roman';
font-size: 12pt;
color: #000000;
font-style: italic;
font-weight: bold;
}
.UserText{
font-family: 'arial narrow';
font-size: 7pt;
color: #000000;
font-style: normal;
font-weight: normal;
text-align: left;
}
.WarnBanner{
font-family: 'thorndale amt','times roman';
font-size: 10pt;
color: #000000;
font-weight: bold;
}
.WarnContent{
font-family: 'thorndale amt','times roman';
font-size: 10pt;
color: #000000;
font-style: normal;
font-weight: normal;
}
.WarnContentFixed{
font-family: 'cumberland amt',courier;
font-size: 9pt;
color: #000000;
font-style: normal;
font-weight: normal;
}
.Total{
font-family: 'courier new';
font-size: 9pt;
color: #000000;
font-weight: bold;
text-align: right;
border-top-width: thin;
border-top-style: solid;
border-top-color: #000000;border-bottom-width: thin;
border-bottom-style: double;
border-bottom-color: #000000;}


CODE SNIPPET:

PROC TEMPLATE;
DEFINE STYLE styles.MyReport ;
IMPORT "C:\Documents and Settings\jbrowning1\Application Data\SAS\SharedSettings\Styles\fdncompare.css";
STYLE BODY FROM DOCUMENT /
LEFTMARGIN = 0.25in
RIGHTMARGIN = 0.25in
TOPMARGIN = 0.35in
BOTTOMMARGIN = 0.35in;
END;
RUN;

OPTIONS NONUMBER NOCENTER DATE;
ODS LISTING CLOSE;
ODS PDF FILE="C:\Documents and Settings\jbrowning1\My Documents\Foundation2.pdf" STARTPAGE=YES STYLE=MyReport;
ODS ESCAPECHAR='^';

/* Generate comparative income statement. */

OPTIONS ORIENTATION=LANDSCAPE;

PROC REPORT DATA=COMPSTMT3;
TITLE1 'Lake Superior State University Foundation';
TITLE2"Comparative Statement of Income as of &STMTPER., FY20&STMTYR.";
FOOTNOTE ' ';

COLUMN REVEXP EXPCAT ('Current year' CY_AMT,STMTGROUP) ('Prior Year' PY_AMT,STMTGROUP);
DEFINE STMTGROUP / GROUP ' ' ACROSS FORMAT=$stmt_group. ORDER=INTERNAL Style={cellwidth=1.35in };
DEFINE REVEXP / GROUP ' ' MISSING FORMAT=$revexp. NOPRINT ORDER=INTERNAL;
COMPUTE BEFORE REVEXP / STYLE=[just=l font=("Times New Roman",10pt,bold)];
text1=(put(REVEXP,$revexp.));
LINE text1 $;
ENDCOMP;
DEFINE EXPCAT / GROUP ' ' MISSING FORMAT=$expcat. ORDER=INTERNAL;
DEFINE CY_AMT / ' ' ANALYSIS FORMAT=comma14.2;
DEFINE PY_AMT / ' ' ANALYSIS FORMAT=comma14.2;

(This is where I'm currently using the border top and bottom, but it goes completely across the page, rather than just over/under the numbers...)

BREAK AFTER REVEXP / summarize skip style={font=("arial",10pt,normal) bordertopstyle=solid bordertopwidth=.5pt bordertopcolor=black borderbottomstyle=solid borderbottomwidth=.5pt borderbottomcolor=black};
RBREAK AFTER / summarize style={font=("arial",10pt,bold) bordertopstyle=solid borderbottomstyle=double borderbottomwidth=1pt borderbottomcolor=black};
RUN;
quit;

ODS PDF CLOSE;
SAS Super FREQ
Posts: 8,744

Re: Horizontal lines

Hi:
TEXTDECORATION has the capability to perform both UNDERLINE and OVERLINE, as described here:
http://support.sas.com/rnd/base/new92/92pdf.html

I believe the behavior you're seeing is the expected behavior with the border styles. Essentially, the border of each cell is "bumping into" the border of the adjacent cell. The fact that your border line spans the entire table (even under your row values for EXPCAT) is a function of putting the border style on the BREAK and RBREAK statements. What happens on those statements, style-wise, has an impact on the ENTIRE report row written by the BREAK or RBREAK statement -- not just on the numbers written as a result of the break. After all, the entire report row, including the blanks for EXPCAT are written as a result of the BREAK or RBREAK statement.

You might be able to remove the border lines under EXPCAT if you attached your style to the CY_AMT and PY_AMT variables in a CALL DEFINE statement -- however, I believe that the borders for each cell for your numeric variables would still touch each other....making it look like a solid border under all the totalled numbers.

BTW, some of your coding choices, such as SKIP fall into the same category as DOL/DUL/OL/UL -- SKIP is a LISTING only destination option. So, to get a blank line after your break for REVEXP, you would need:
[pre]
compute after revexp;
line ' ';
endcomp;
[/pre]

You may want to work with Tech Support, if TEXTDECORATION of OVERLINE does not work for you. (I can't remember whether all TEXTDECORATION possible values work in all destinations.)

cynthia
Ask a Question
Discussion stats
  • 3 replies
  • 210 views
  • 0 likes
  • 2 in conversation