<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: PROC REPORT ODS PDF in ODS and Base Reporting</title>
    <link>https://communities.sas.com/t5/ODS-and-Base-Reporting/PROC-REPORT-ODS-PDF/m-p/30881#M4640</link>
    <description>Hi:&lt;BR /&gt;
  You can't use 2 variables in 1 BREAK statement, but you CAN have 2 different BREAK statements.&lt;BR /&gt;
&lt;BR /&gt;
  And, yes, there is a way to underline in PDF -- using the text-decoration style attribute. But it ONLY underlines the words in each HEADER. It does NOT put an underline under the entire header row (in other words, it doesn't look like RULES=GROUPS.&lt;BR /&gt;
 &lt;BR /&gt;
  However, the numbers that appear on the summary line from a BREAK statement can be altered in a COMPUTE block. See the example below. For the break on AGE, I put the number 99.9 for the HEIGHT cell and the number 88.8 in the cell when the break variable is SEX. I use different numbers for the WEIGHT summary line.&lt;BR /&gt;
 &lt;BR /&gt;
cynthia&lt;BR /&gt;
[pre]&lt;BR /&gt;
                 &lt;BR /&gt;
ods listing close;&lt;BR /&gt;
ods pdf file='c:\temp\text_dec_br4.pdf';&lt;BR /&gt;
PROC REPORT DATA=sashelp.class NOWD MISSING SPLIT='|' &lt;BR /&gt;
  STYLE(HEADER)={textdecoration=underline FONT_FACE=COURIER BACKGROUND=_UNDEF_ &lt;BR /&gt;
                 FONT_SIZE=10pt}&lt;BR /&gt;
  STYLE(REPORT)={RULES=none FRAME=VOID FONT_SIZE=10pt }&lt;BR /&gt;
  STYLE(COLUMN)={BACKGROUND=WHITE FOREGROUND=black FONT_FACE=COURIER &lt;BR /&gt;
                 FONT_SIZE=10pt };&lt;BR /&gt;
  where age in (12, 14);&lt;BR /&gt;
  title "4) Using TEXTDECORATION=UNDERLINE and BREAK";&lt;BR /&gt;
  column age sex name height weight;&lt;BR /&gt;
  define age / order;&lt;BR /&gt;
  define sex / order;&lt;BR /&gt;
  define name / order;&lt;BR /&gt;
  define height / sum;&lt;BR /&gt;
  define weight / sum;&lt;BR /&gt;
  break after age / summarize page;&lt;BR /&gt;
  break after sex / summarize;&lt;BR /&gt;
                                         &lt;BR /&gt;
  compute name;&lt;BR /&gt;
    if upcase(_break_) = 'SEX' then name='Sub Tot';&lt;BR /&gt;
    else if upcase(_break_) = 'AGE' then name = 'Total';&lt;BR /&gt;
  endcomp;&lt;BR /&gt;
  compute after sex;&lt;BR /&gt;
    line ' ';&lt;BR /&gt;
  endcomp;&lt;BR /&gt;
  compute height;&lt;BR /&gt;
    if upcase(_break_) = 'SEX' then height.sum=88.8;&lt;BR /&gt;
    else if upcase(_break_) = 'AGE' then height.sum = 99.9;&lt;BR /&gt;
  endcomp;&lt;BR /&gt;
  compute weight;&lt;BR /&gt;
    if upcase(_break_) = 'SEX' then weight.sum=44.4;&lt;BR /&gt;
    else if upcase(_break_) = 'AGE' then weight.sum = 55.5;&lt;BR /&gt;
  endcomp;&lt;BR /&gt;
  compute after _page_;&lt;BR /&gt;
    line 'Note how I put totally fake numbers on the summary lines created by the BREAK';&lt;BR /&gt;
    line 'These assignment statements could write OTHER numbers into summary cells';&lt;BR /&gt;
  endcomp;&lt;BR /&gt;
run;&lt;BR /&gt;
ods _all_ close;&lt;BR /&gt;
[/pre]</description>
    <pubDate>Tue, 09 Nov 2010 22:06:09 GMT</pubDate>
    <dc:creator>Cynthia_sas</dc:creator>
    <dc:date>2010-11-09T22:06:09Z</dc:date>
    <item>
      <title>PROC REPORT ODS PDF</title>
      <link>https://communities.sas.com/t5/ODS-and-Base-Reporting/PROC-REPORT-ODS-PDF/m-p/30875#M4634</link>
      <description>Message was edited by: JasonNC

Message was edited by: JasonNC</description>
      <pubDate>Tue, 09 Nov 2010 15:51:21 GMT</pubDate>
      <guid>https://communities.sas.com/t5/ODS-and-Base-Reporting/PROC-REPORT-ODS-PDF/m-p/30875#M4634</guid>
      <dc:creator>JasonNC</dc:creator>
      <dc:date>2010-11-09T15:51:21Z</dc:date>
    </item>
    <item>
      <title>Re: PROC REPORT ODS PDF</title>
      <link>https://communities.sas.com/t5/ODS-and-Base-Reporting/PROC-REPORT-ODS-PDF/m-p/30876#M4635</link>
      <description>Hi:&lt;BR /&gt;
  Part of the etiquette when you ask a question is showing all your code, showing working code and giving some idea of what your program is doing. WORKING code means showing either ALL the program -- possibly code that someone would be willing to cut and paste. All of your "Xpt" and "X%" and "@X" means that folks have to make guesses and modify your code to try anything out. &lt;BR /&gt;
&lt;BR /&gt;
In addition, it would be useful to see ALL of your code. Also, you have some syntax errors in your posted code (missing semi-colons) that would not provide any results at all. And then, there are other questions about your program. For example, how are PHCOUNT, RECCOUNT and CRCOUNT defined??? As NOPRINT variables??? &lt;BR /&gt;
 &lt;BR /&gt;
  As an aside, generally, techniques like this with absolute pointers like @20 and @80 do not work with ODS destinations:&lt;BR /&gt;
[pre]&lt;BR /&gt;
COMPUTE after _PAGE_/ STYLE={JUST=R ASIS=ON FONT_SIZE=Xpt FONT_FACE=COURIER }   &amp;lt;--- missing semicolon here!!!&lt;BR /&gt;
LINE @20 " *** xxxx *** " @65 ERRORPHCOUNT.sum comma5. &lt;BR /&gt;
@80 ERRORRECOUNT.sum comma5. &lt;BR /&gt;
@96 ERRORCRCOUNT.SUM comma5. &lt;BR /&gt;
@112 TOTAL5 comma5.;&lt;BR /&gt;
                          &lt;BR /&gt;
LINE @22 " TOTAL ---- xxx:" @X total1 best5. @X total2 best5. @X TOTAL3 BEST5. @X TOTAL4 BEST5. ;&lt;BR /&gt;
ENDCOMP;&lt;BR /&gt;
[/pre]&lt;BR /&gt;
 &lt;BR /&gt;
Can you post all of your PROC REPORT step??? Or else a simplified version of your program -- but a simplified version that WORKS. Also, can you explain what you're doing with your COMPUTE BEFORE and your LINE statements -- it seems that you are calculating your own totals and then trying to place those totals in specific locations -- I'm curious why you're not using BREAK after ID or BREAK after CODE1 if you want totals at the bottom of every page.&lt;BR /&gt;
 &lt;BR /&gt;
cynthia</description>
      <pubDate>Tue, 09 Nov 2010 17:13:12 GMT</pubDate>
      <guid>https://communities.sas.com/t5/ODS-and-Base-Reporting/PROC-REPORT-ODS-PDF/m-p/30876#M4635</guid>
      <dc:creator>Cynthia_sas</dc:creator>
      <dc:date>2010-11-09T17:13:12Z</dc:date>
    </item>
    <item>
      <title>Re: PROC REPORT ODS PDF</title>
      <link>https://communities.sas.com/t5/ODS-and-Base-Reporting/PROC-REPORT-ODS-PDF/m-p/30877#M4636</link>
      <description>Message was edited by: JasonNC

Message was edited by: JasonNC</description>
      <pubDate>Tue, 09 Nov 2010 19:15:19 GMT</pubDate>
      <guid>https://communities.sas.com/t5/ODS-and-Base-Reporting/PROC-REPORT-ODS-PDF/m-p/30877#M4636</guid>
      <dc:creator>JasonNC</dc:creator>
      <dc:date>2010-11-09T19:15:19Z</dc:date>
    </item>
    <item>
      <title>Re: PROC REPORT ODS PDF</title>
      <link>https://communities.sas.com/t5/ODS-and-Base-Reporting/PROC-REPORT-ODS-PDF/m-p/30878#M4637</link>
      <description>Hi:&lt;BR /&gt;
  It might be useful to revisit the documentation on the RULES attribute (and you might want to look at the doc for BORDER styles, too). &lt;BR /&gt;
          &lt;BR /&gt;
For your convenience, the possible values for RULES are:&lt;BR /&gt;
[pre]&lt;BR /&gt;
Value   Meaning&lt;BR /&gt;
ALL    Between all rows and columns &lt;BR /&gt;
COLS   Between all columns &lt;BR /&gt;
GROUPS Between the table header and the table and &lt;U&gt;between the table and the table footer, if there is one &lt;/U&gt;&lt;BR /&gt;
NONE   No rules anywhere &lt;BR /&gt;
ROWS   Between all rows &lt;BR /&gt;
[/pre]&lt;BR /&gt;
&lt;BR /&gt;
from:&lt;BR /&gt;
&lt;A href="http://support.sas.com/documentation/cdl/en/odsug/61723/HTML/default/a002972093.htm#a002978401" target="_blank"&gt;http://support.sas.com/documentation/cdl/en/odsug/61723/HTML/default/a002972093.htm#a002978401&lt;/A&gt;&lt;BR /&gt;
&lt;BR /&gt;
                   &lt;BR /&gt;
When you use the GROUPS value for the RULES attribute, you would normally NOT see a line at a total (see #1 below) if the total was produced by a PROC REPORT BREAK or RBREAK statement. However, as soon as you use a LINE statement for COMPUTE AFTER _PAGE_, you are essentially creating a TABLE FOOTER.&lt;BR /&gt;
 &lt;BR /&gt;
In the programs below, note the behavior in the 2 different outputs. Report #1 has no line before the total (because there is no table footer in #1). But Report #2 has a LINE statement -- which automatically creates a table footer, so there is a solid line above the table footer.&lt;BR /&gt;
 &lt;BR /&gt;
Also, are you seeing a DASHED border in your output???? I do not see a dashed line in my output. I suspect that is because the various borderstyle attributes are only valid in the RTF and Markup family destinations and PDF does not fall into those categories. (See #3)&lt;BR /&gt;
 &lt;BR /&gt;
If you use RULES=GROUPS and the LINE statement with PROC REPORT, then you are seeing the expected behavior from RULES=GROUPS.&lt;BR /&gt;
    &lt;BR /&gt;
cynthia&lt;BR /&gt;
[pre]&lt;BR /&gt;
ods pdf file='c:\temp\withbreak.pdf';&lt;BR /&gt;
PROC REPORT DATA=sashelp.class(obs=5) NOWD MISSING SPLIT='|' &lt;BR /&gt;
  STYLE(HEADER)={FONT_FACE=COURIER BACKGROUND=_UNDEF_ FONT_SIZE=10pt}&lt;BR /&gt;
  STYLE(REPORT)={RULES=GROUPS FRAME=VOID BORDERSTYLE=DASHED FONT_SIZE=10pt }&lt;BR /&gt;
  STYLE(COLUMN)={BACKGROUND=WHITE FOREGROUND=black FONT_FACE=COURIER &lt;BR /&gt;
                 FONT_SIZE=10pt };&lt;BR /&gt;
  title "1) Rules= GROUPS with BREAK statement";&lt;BR /&gt;
  column age name sex height weight;&lt;BR /&gt;
  define age / order;&lt;BR /&gt;
  break after age / summarize;&lt;BR /&gt;
run;&lt;BR /&gt;
ods pdf close;&lt;BR /&gt;
                                                &lt;BR /&gt;
ods pdf file='c:\temp\withline.pdf';&lt;BR /&gt;
PROC REPORT DATA=sashelp.class(obs=5) NOWD MISSING SPLIT='|' &lt;BR /&gt;
  STYLE(HEADER)={FONT_FACE=COURIER BACKGROUND=_UNDEF_ FONT_SIZE=10pt}&lt;BR /&gt;
  STYLE(REPORT)={RULES=GROUPS FRAME=VOID BORDERSTYLE=DASHED FONT_SIZE=10pt }&lt;BR /&gt;
  STYLE(COLUMN)={BACKGROUND=WHITE FOREGROUND=black FONT_FACE=COURIER &lt;BR /&gt;
                 FONT_SIZE=10pt };&lt;BR /&gt;
  title "2) Rules= GROUPS with BREAK -and- LINE statement";&lt;BR /&gt;
  column age name sex height weight;&lt;BR /&gt;
  define age / order;&lt;BR /&gt;
  break after age / summarize;&lt;BR /&gt;
                            &lt;BR /&gt;
  COMPUTE after _PAGE_/ STYLE={JUST=R ASIS=ON FONT_SIZE=10pt FONT_FACE=COURIER };&lt;BR /&gt;
  LINE @20 " *** vvvvv *** " &lt;BR /&gt;
       @65 'wwwww' &lt;BR /&gt;
       @80 'xxxxx' &lt;BR /&gt;
       @96 'yyyyy' &lt;BR /&gt;
       @112 'zzzzz';&lt;BR /&gt;
  ENDCOMP;&lt;BR /&gt;
run;&lt;BR /&gt;
ods pdf close;&lt;BR /&gt;
                          &lt;BR /&gt;
                                    &lt;BR /&gt;
ods html file='c:\temp\useborderstyle.html' style=rtf; &lt;BR /&gt;
ods rtf file='c:\temp\useborderstyle.rtf';&lt;BR /&gt;
PROC REPORT DATA=sashelp.class(obs=5) NOWD MISSING SPLIT='|' &lt;BR /&gt;
  STYLE(HEADER)={FONT_FACE=COURIER BACKGROUND=_UNDEF_ FONT_SIZE=10pt}&lt;BR /&gt;
  STYLE(REPORT)={BORDERTOPSTYLE=DASHED borderbottomstyle=dotted &lt;BR /&gt;
                 borderleftstyle=solid borderrightstyle=double&lt;BR /&gt;
                 borderwidth=5 FONT_SIZE=10pt }&lt;BR /&gt;
  STYLE(COLUMN)={BACKGROUND=WHITE FOREGROUND=black FONT_FACE=COURIER &lt;BR /&gt;
                 FONT_SIZE=10pt };&lt;BR /&gt;
  title "3) Default style shows borderstyle usage";&lt;BR /&gt;
  column age name sex height weight;&lt;BR /&gt;
  define age / order;&lt;BR /&gt;
  break after age / summarize;&lt;BR /&gt;
                               &lt;BR /&gt;
  COMPUTE after _PAGE_/ STYLE={JUST=R ASIS=ON FONT_SIZE=10pt FONT_FACE=COURIER };&lt;BR /&gt;
  LINE @20 " *** vvvvv *** " &lt;BR /&gt;
       @65 'wwwww' &lt;BR /&gt;
       @80 'xxxxx' &lt;BR /&gt;
       @96 'yyyyy' &lt;BR /&gt;
       @112 'zzzzz';&lt;BR /&gt;
  ENDCOMP;&lt;BR /&gt;
run;&lt;BR /&gt;
ods _all_ close;&lt;BR /&gt;
[/pre]</description>
      <pubDate>Tue, 09 Nov 2010 20:44:51 GMT</pubDate>
      <guid>https://communities.sas.com/t5/ODS-and-Base-Reporting/PROC-REPORT-ODS-PDF/m-p/30878#M4637</guid>
      <dc:creator>Cynthia_sas</dc:creator>
      <dc:date>2010-11-09T20:44:51Z</dc:date>
    </item>
    <item>
      <title>Re: PROC REPORT ODS PDF</title>
      <link>https://communities.sas.com/t5/ODS-and-Base-Reporting/PROC-REPORT-ODS-PDF/m-p/30879#M4638</link>
      <description>Hi Cynthia,&lt;BR /&gt;
&lt;BR /&gt;
Thanks for your patience and support.The line is not dashed.&lt;BR /&gt;
&lt;BR /&gt;
For my report  there is a break on two variables.&lt;BR /&gt;
&lt;BR /&gt;
one is on ID and other one is on STATUSCODE.So i am using BY statement.&lt;BR /&gt;
&lt;BR /&gt;
can we use two variables in Break statement .&lt;BR /&gt;
&lt;BR /&gt;
I dont want to summarize.&lt;BR /&gt;
&lt;BR /&gt;
The totals are calculated in the dataset.I just want to print them.so i am using LINE statement.&lt;BR /&gt;
&lt;BR /&gt;
If you want more information I can give it.</description>
      <pubDate>Tue, 09 Nov 2010 21:02:53 GMT</pubDate>
      <guid>https://communities.sas.com/t5/ODS-and-Base-Reporting/PROC-REPORT-ODS-PDF/m-p/30879#M4638</guid>
      <dc:creator>JasonNC</dc:creator>
      <dc:date>2010-11-09T21:02:53Z</dc:date>
    </item>
    <item>
      <title>Re: PROC REPORT ODS PDF</title>
      <link>https://communities.sas.com/t5/ODS-and-Base-Reporting/PROC-REPORT-ODS-PDF/m-p/30880#M4639</link>
      <description>Hi Cynthia,&lt;BR /&gt;
&lt;BR /&gt;
If i want to &lt;B&gt;underline column headers&lt;/B&gt; is there any way to do it in ODS PDF proc report.without using [RULES=GROUPS].&lt;BR /&gt;
&lt;BR /&gt;
I know we cannot use HEADLINE option it doesnt work in PDF.It works only in LISTING.</description>
      <pubDate>Tue, 09 Nov 2010 21:08:02 GMT</pubDate>
      <guid>https://communities.sas.com/t5/ODS-and-Base-Reporting/PROC-REPORT-ODS-PDF/m-p/30880#M4639</guid>
      <dc:creator>JasonNC</dc:creator>
      <dc:date>2010-11-09T21:08:02Z</dc:date>
    </item>
    <item>
      <title>Re: PROC REPORT ODS PDF</title>
      <link>https://communities.sas.com/t5/ODS-and-Base-Reporting/PROC-REPORT-ODS-PDF/m-p/30881#M4640</link>
      <description>Hi:&lt;BR /&gt;
  You can't use 2 variables in 1 BREAK statement, but you CAN have 2 different BREAK statements.&lt;BR /&gt;
&lt;BR /&gt;
  And, yes, there is a way to underline in PDF -- using the text-decoration style attribute. But it ONLY underlines the words in each HEADER. It does NOT put an underline under the entire header row (in other words, it doesn't look like RULES=GROUPS.&lt;BR /&gt;
 &lt;BR /&gt;
  However, the numbers that appear on the summary line from a BREAK statement can be altered in a COMPUTE block. See the example below. For the break on AGE, I put the number 99.9 for the HEIGHT cell and the number 88.8 in the cell when the break variable is SEX. I use different numbers for the WEIGHT summary line.&lt;BR /&gt;
 &lt;BR /&gt;
cynthia&lt;BR /&gt;
[pre]&lt;BR /&gt;
                 &lt;BR /&gt;
ods listing close;&lt;BR /&gt;
ods pdf file='c:\temp\text_dec_br4.pdf';&lt;BR /&gt;
PROC REPORT DATA=sashelp.class NOWD MISSING SPLIT='|' &lt;BR /&gt;
  STYLE(HEADER)={textdecoration=underline FONT_FACE=COURIER BACKGROUND=_UNDEF_ &lt;BR /&gt;
                 FONT_SIZE=10pt}&lt;BR /&gt;
  STYLE(REPORT)={RULES=none FRAME=VOID FONT_SIZE=10pt }&lt;BR /&gt;
  STYLE(COLUMN)={BACKGROUND=WHITE FOREGROUND=black FONT_FACE=COURIER &lt;BR /&gt;
                 FONT_SIZE=10pt };&lt;BR /&gt;
  where age in (12, 14);&lt;BR /&gt;
  title "4) Using TEXTDECORATION=UNDERLINE and BREAK";&lt;BR /&gt;
  column age sex name height weight;&lt;BR /&gt;
  define age / order;&lt;BR /&gt;
  define sex / order;&lt;BR /&gt;
  define name / order;&lt;BR /&gt;
  define height / sum;&lt;BR /&gt;
  define weight / sum;&lt;BR /&gt;
  break after age / summarize page;&lt;BR /&gt;
  break after sex / summarize;&lt;BR /&gt;
                                         &lt;BR /&gt;
  compute name;&lt;BR /&gt;
    if upcase(_break_) = 'SEX' then name='Sub Tot';&lt;BR /&gt;
    else if upcase(_break_) = 'AGE' then name = 'Total';&lt;BR /&gt;
  endcomp;&lt;BR /&gt;
  compute after sex;&lt;BR /&gt;
    line ' ';&lt;BR /&gt;
  endcomp;&lt;BR /&gt;
  compute height;&lt;BR /&gt;
    if upcase(_break_) = 'SEX' then height.sum=88.8;&lt;BR /&gt;
    else if upcase(_break_) = 'AGE' then height.sum = 99.9;&lt;BR /&gt;
  endcomp;&lt;BR /&gt;
  compute weight;&lt;BR /&gt;
    if upcase(_break_) = 'SEX' then weight.sum=44.4;&lt;BR /&gt;
    else if upcase(_break_) = 'AGE' then weight.sum = 55.5;&lt;BR /&gt;
  endcomp;&lt;BR /&gt;
  compute after _page_;&lt;BR /&gt;
    line 'Note how I put totally fake numbers on the summary lines created by the BREAK';&lt;BR /&gt;
    line 'These assignment statements could write OTHER numbers into summary cells';&lt;BR /&gt;
  endcomp;&lt;BR /&gt;
run;&lt;BR /&gt;
ods _all_ close;&lt;BR /&gt;
[/pre]</description>
      <pubDate>Tue, 09 Nov 2010 22:06:09 GMT</pubDate>
      <guid>https://communities.sas.com/t5/ODS-and-Base-Reporting/PROC-REPORT-ODS-PDF/m-p/30881#M4640</guid>
      <dc:creator>Cynthia_sas</dc:creator>
      <dc:date>2010-11-09T22:06:09Z</dc:date>
    </item>
  </channel>
</rss>

