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

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

Apr 14, 2020

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: An In-depth Look at PROC REPORT€¦ · An In-depth Look at PROC REPORT Jane Eslinger Senior Technical Support Analyst SAS Institute

An In-depth Look at PROC REPORT

Jane Eslinger

Senior Technical Support Analyst SAS Institute

Page 2: An In-depth Look at PROC REPORT€¦ · 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;

Page 3: An In-depth Look at PROC REPORT€¦ · An In-depth Look at PROC REPORT Jane Eslinger Senior Technical Support Analyst SAS Institute

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;

Page 4: An In-depth Look at PROC REPORT€¦ · An In-depth Look at PROC REPORT Jane Eslinger Senior Technical Support Analyst SAS Institute

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;

Page 5: An In-depth Look at PROC REPORT€¦ · An In-depth Look at PROC REPORT Jane Eslinger Senior Technical Support Analyst SAS Institute

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;

Page 6: An In-depth Look at PROC REPORT€¦ · An In-depth Look at PROC REPORT Jane Eslinger Senior Technical Support Analyst SAS Institute

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];

Page 7: An In-depth Look at PROC REPORT€¦ · An In-depth Look at PROC REPORT Jane Eslinger Senior Technical Support Analyst SAS Institute

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];

Page 8: An In-depth Look at PROC REPORT€¦ · An In-depth Look at PROC REPORT Jane Eslinger Senior Technical Support Analyst SAS Institute

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;

Page 9: An In-depth Look at PROC REPORT€¦ · An In-depth Look at PROC REPORT Jane Eslinger Senior Technical Support Analyst SAS Institute

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;

Page 10: An In-depth Look at PROC REPORT€¦ · An In-depth Look at PROC REPORT Jane Eslinger Senior Technical Support Analyst SAS Institute

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;

Page 11: An In-depth Look at PROC REPORT€¦ · An In-depth Look at PROC REPORT Jane Eslinger Senior Technical Support Analyst SAS Institute

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;

Page 12: An In-depth Look at PROC REPORT€¦ · An In-depth Look at PROC REPORT Jane Eslinger Senior Technical Support Analyst SAS Institute

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;

Page 13: An In-depth Look at PROC REPORT€¦ · An In-depth Look at PROC REPORT Jane Eslinger Senior Technical Support Analyst SAS Institute

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;

Page 14: An In-depth Look at PROC REPORT€¦ · An In-depth Look at PROC REPORT Jane Eslinger Senior Technical Support Analyst SAS Institute

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;

Page 15: An In-depth Look at PROC REPORT€¦ · An In-depth Look at PROC REPORT Jane Eslinger Senior Technical Support Analyst SAS Institute

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;

Page 16: An In-depth Look at PROC REPORT€¦ · An In-depth Look at PROC REPORT Jane Eslinger Senior Technical Support Analyst SAS Institute

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