an in-depth look at proc report€¦ · an in-depth look at proc report jane eslinger senior...

16
An In-depth Look at PROC REPORT Jane Eslinger Senior Technical Support Analyst SAS Institute

Upload: others

Post on 14-Apr-2020

6 views

Category:

Documents


3 download

TRANSCRIPT

An In-depth Look at PROC REPORT

Jane Eslinger

Senior Technical Support Analyst SAS Institute

HEADER LAYERS

Goal: Learn how each layer (or row) is added to the header section of

the report.

title "vanilla";

proc report data=sashelp.cars nowd;

column make origin mpg_city mpg_highway;

define make / group 'Vehicle Brand';

define origin / group 'Vehicle Origin';

run;

title "add across";

proc report data=sashelp.cars nowd;

column make origin drivetrain,(mpg_city mpg_highway);

define make / group 'Vehicle Brand';

define origin / group 'Vehicle Origin';

define drivetrain / across 'Drivetrain Category';

run;

title "add spanning header over across";

proc report data=sashelp.cars nowd;

column make origin

('Spanning MPG columns' drivetrain,(mpg_city mpg_highway));

define make / group 'Vehicle Brand';

define origin / group 'Vehicle Origin';

define drivetrain / across 'Drivetrain Category';

run;

title "add spanning header above Make";

title2 "add spanning header above Origin";

proc report data=sashelp.cars nowd;

column ('Beside drivetrain values 1' make)

('Beside drivetrain values 2' origin)

('Spanning MPG columns' drivetrain,(mpg_city mpg_highway));

define make / group 'Vehicle Brand';

define origin / group 'Vehicle Origin';

define drivetrain / across 'Drivetrain Category';

run;

title "add another spanning header above Make";

proc report data=sashelp.cars nowd;

column ('Beside drivetrain label' 'Beside drivetrain values 1' make)

('Beside drivetrain values 2' origin)

('Spanning MPG columns' drivetrain,(mpg_city mpg_highway));

define make / group 'Vehicle Brand';

define origin / group 'Vehicle Origin';

define drivetrain / across 'Drivetrain Category';

run;

title "add a spanning header above both Make and Origin";

proc report data=sashelp.cars nowd;

column

('Spanning Make and Origin'

('Beside drivetrain label' 'Beside drivetrain values 1' make)

('Beside drivetrain values 2' origin))

('Spanning MPG columns' drivetrain,(mpg_city mpg_highway));

define make / group 'Vehicle Brand';

define origin / group 'Vehicle Origin';

define drivetrain / across 'Drivetrain Category';

run;

RULES VALUES

Goal: See borders created by the RULES= attribute.

proc report data=sashelp.cars style(report)=[rules=all]; column make ('Beside drivetrain values' origin)

drivetrain,(mpg_city mpg_highway);

define make / group 'Vehicle Brand';

define origin / group 'Vehicle Origin';

define drivetrain / across 'Drivetrain';

run;

proc report data=sashelp.cars style(report)=[rules=cols];

proc report data=sashelp.cars style(report)=[rules=rows];

proc report data=sashelp.cars style(report)=[rules=groups];

proc report data=sashelp.cars style(report)=[rules=none];

SPANNING HEADERS

Goal: Change the vertical border between the spanning headers for

MAKE and ORIGIN to red. Change the horizontal border between the

spanning header and the DRIVETRAIN label to yellow.

ods escapechar="^";

proc report data=sashelp.cars(obs=100) nowd;

column

('^S={borderrightcolor=red}Beside drivetrain values 1' make)

('^S={borderleftcolor=red}Beside drivetrain values 2' origin)

('^S={borderbottomcolor=yellow}Spanning MPG columns' drivetrain,

(mpg_city mpg_highway));

define make / group 'Vehicle Brand';

define origin / group 'Vehicle Origin';

define drivetrain / across 'Drivetrain Category';

run;

proc report data=sashelp.cars(obs=100) nowd;

column

('^S={borderrightcolor=red}Beside drivetrain values 1' make)

('^S={borderleftcolor=red}Beside drivetrain values 2' origin)

('^S={borderbottomcolor=yellow}Spanning MPG columns' drivetrain,

(mpg_city mpg_highway));

define make / group 'Vehicle Brand';

define origin / group 'Vehicle Origin';

define drivetrain / across '^S={bordertopcolor=yellow}Drivetrain

Category';

run;

proc report data=sashelp.cars(obs=100) nowd;

column

('^S={borderrightcolor=red}Beside drivetrain values 1' make)

('^S={borderleftcolor=red}Beside drivetrain values 2' origin)

('Spanning MPG columns' drivetrain,(mpg_city mpg_highway));

define make / group 'Vehicle Brand';

define origin / group 'Vehicle Origin';

define drivetrain / across 'Drivetrain Category'

style(header)=[bordertopcolor=yellow];

run;

data cars;

set sashelp.cars;

flag='Drivetrain';

run;

proc report data=cars(obs=100) nowd;

column

('^S={borderrightcolor=red}Beside drivetrain values 1' make)

('^S={borderleftcolor=red}Beside drivetrain values 2' origin)

('Spanning MPG columns' flag,

drivetrain,(mpg_city mpg_highway));

define make / group 'Vehicle Brand';

define origin / group 'Vehicle Origin';

define flag / across '' style(header)=[bordertopcolor=yellow];

define drivetrain / across '';

run;

BACKGROUND COLORS IN HEADERS

Goal: Use inline formatting to change the background color of a

header cell to green in HTML output.

ods escapechar="^";

proc report data=sashelp.cars(obs=100) nowd;

column

('Beside drivetrain values 1' make)

('Beside drivetrain values 2' origin)

('Spanning MPG columns' drivetrain,(mpg_city mpg_highway));

define make / group 'Vehicle Brand';

define origin / group 'Vehicle Origin';

define drivetrain / across '^S={background=lightgreen}Drivetrain';

run;

data cars;

set sashelp.cars;

flag='Drivetrain';

run;

proc report data=cars(obs=100) nowd;

column

('Beside drivetrain values 1' make)

('Beside drivetrain values 2' origin)

('Spanning MPG columns' flag, drivetrain,(mpg_city mpg_highway));

define make / group 'Vehicle Brand';

define origin / group 'Vehicle Origin';

define flag / across '' style(header)=[background=lightgreen] missing;

define drivetrain / across '';

run;

COLUMN BORDERS

Goal: Remove the borders between the MPG_CITY and MPG_HIGHWAY columns

so that it is easier to distinguish the DRIVETRAIN groupings.

proc report data=sashelp.cars(obs=100) nowd;

column make origin drivetrain,(mpg_city mpg_highway);

define make / group 'Vehicle Brand';

define origin / group 'Vehicle Origin';

define drivetrain / across 'Drivetrain';

define mpg_city / style(column header)=

[borderrightcolor=white borderrightwidth=0pt just=c];

define mpg_highway / style(column header)=

[borderleftcolor=white borderleftwidth=0pt just=c];

run;

proc report data=sashelp.cars(obs=100) nowd

style(report)=[rules=rows];

column make origin drivetrain,(mpg_city mpg_highway);

define make / group 'Vehicle Brand'

style(header column)=[borderleftwidth=.75pt borderleftcolor=cx919191];

define origin / group 'Vehicle Origin'

style(header column)=[borderleftwidth=.75pt borderleftcolor=cx919191];

define drivetrain / across 'Drivetrain'

style(header column)=[borderleftwidth=.75pt borderleftcolor=cx919191];

define mpg_city / style(header column)=[borderleftwidth=.75pt

borderleftcolor=cx919191 just=c];

define mpg_highway / style(column)=[just=c];

run;

REFERENCES

Sample 46021: Customize header borders in ODS PDF and ODS RTF output

with PROC REPORT

http://support.sas.com/kb/46021

Sample 46022: Customize table or cell borders in ODS PDF and ODS RTF

output using PROC REPORT

http://support.sas.com/kb/46022

Sample 50229: Insert border lines between groups in PROC REPORT output

http://support.sas.com/kb/50229

Beyond the Basics: Advanced REPORT Procedure Tips and Tricks Updated

for SAS® 9.2– Allison McMahill, SAS Institute Inc.

http://support.sas.com/resources/papers/proceedings11/246-2011.pdf