BookmarkSubscribeRSS Feed
CurtisER
Obsidian | Level 7

Hello,

 

I'm converting a legacy code to match the layout in PROC REPORT.  The industry titles has embeded leading blanks to indicate indention as required.  I am able to preserve the leading space by using a style attribute ASIS=ON.  However, it does not preserve indention when wrapping around.  Here's an example:

 

Indented titles Wrapped

Also, I have another issue is how do I insert a blank line in the COLUMNS statement.  I'm providing two images of current and legacy headings.

Current Headings

needs to look like the legacy headings:

Legacy Headings

Here is my code used for this:

proc report data = outpdf nowd ls = 200 list headskip headline style = monospace nocenter
            style(report) = {fontfamily='Cumberland AMT' font_size = 8pt}
            style(header) = {fontfamily='Cumberland AMT' font_size = 8pt}
            style(column) = {fontfamily='Cumberland AMT' font_size = 8pt};
   columns titlesp ('^S={TEXTDECORATION=underline}Not seasonally adjusted' sea_mov otmccnsa)
                   ('^S={TEXTDECORATION=underline}Seasonally adjusted' otmcc sig_chg signif)
           blank;
   define titlesp / "Industry" display STYLE(COLUMN) = {JUST = L ASIS = ON CELLWIDTH = 2.8in};
   define sea_mov / "Normal/seasonal/movements" format = best5. display STYLE(COLUMN) = {JUST = C CELLWIDTH = 0.75in};
   define otmccnsa / "Estimated/over-the-month/change" format = best5. display STYLE(COLUMN) = {JUST = C CELLWIDTH = 1in};
   define otmcc / "Estimated/over-the-month/change" format = best5. display STYLE(COLUMN) = {JUST = C CELLWIDTH = 1in};
   define sig_chg / "Minimum/significant/change^{super *}" format = best5. display STYLE(COLUMN) = {JUST = C CELLWIDTH = 0.75in};
   define signif / "Pass/test of/significance" display STYLE(COLUMN) = {JUST = C CELLWIDTH = 0.8in};
   define blank / " " computed format=$1.;

   compute blank;
      blank = " ";
   endcomp;
run;

Your assistance is appreciated.

 

Curtis E. Reid

2 REPLIES 2
Ksharp
Super User
"However, it does not preserve indention when wrapping around. "
Make that column has wider length  .  style={cellwidth=10cm}

Or use escapechar:

^_^_^_^_Heavy and engineering ^_^_^_^_ construct 



"how do I insert a blank line in the COLUMNS statement"

columns titlesp ('^S={TEXTDECORATION=underline}  Not seasonally adjusted  ^S={}  ^n  ^_^_ '
Oligolas
Barite | Level 11

Hi Curtis,

 

you can add a break line by adding a split sign to your sea_mov title for e.g. "/ /Normal/seasonal/movements"
I do get row indentation in the RTF when using your report code, check mine:

 

data outpdf;
   titlesp='    Construction';
   sea_mov=99.9;
   otmccnsa=99.9;
   otmcc=99.9;
   sig_chg=99.9;
   signif=99.9;
   output;
   titlesp='       Construction of buildings';
   sea_mov=88.8;
   otmccnsa=88.8;
   otmcc=88.8;
   sig_chg=88.8;
   signif=88.8;
   output;
run;

ods rtf file='C:\TEMP\outpdf.rtf';
ods escapechar='^';
proc report data = outpdf nowd ls = 200 list headskip headline style = monospace nocenter
            style(report) = {fontfamily='Cumberland AMT' font_size = 8pt}
            style(header) = {fontfamily='Cumberland AMT' font_size = 8pt}
            style(column) = {fontfamily='Cumberland AMT' font_size = 8pt};
   columns titlesp ('^S={TEXTDECORATION=underline}Not seasonally adjusted' sea_mov otmccnsa)
                   ('^S={TEXTDECORATION=underline}Seasonally adjusted' otmcc sig_chg signif)
           blank;
   define titlesp    / "Industry" display STYLE(COLUMN) = {JUST = L ASIS = ON CELLWIDTH = 2.8in};
   define sea_mov    / "/ /Normal/seasonal/movements" format = best5. display STYLE(COLUMN) = {JUST = C CELLWIDTH = 0.75in};
   define otmccnsa   / "Estimated/over-the-month/change" format = best5. display STYLE(COLUMN) = {JUST = C CELLWIDTH = 1in};
   define otmcc      / "Estimated/over-the-month/change" format = best5. display STYLE(COLUMN) = {JUST = C CELLWIDTH = 1in};
   define sig_chg    / "Minimum/significant/change^{super *}" format = best5. display STYLE(COLUMN) = {JUST = C CELLWIDTH = 0.75in};
   define signif     / "Pass/test of/significance" display STYLE(COLUMN) = {JUST = C CELLWIDTH = 0.8in};
   define blank      / " " computed format=$1.;

   compute blank;
      blank = " ";
   endcomp;
run;
ods rtf close;

Cheers

 

 

________________________

- Cheers -

SAS Innovate 2025: Save the Date

 SAS Innovate 2025 is scheduled for May 6-9 in Orlando, FL. Sign up to be first to learn about the agenda and registration!

Save the date!

How to Concatenate Values

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.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 2 replies
  • 4555 views
  • 0 likes
  • 3 in conversation