Customize your SAS® Output with the Template Procedure: A Beginning Tutorial Carol Gosselin North...
-
Upload
brianne-jennings -
Category
Documents
-
view
216 -
download
0
Transcript of Customize your SAS® Output with the Template Procedure: A Beginning Tutorial Carol Gosselin North...
![Page 1: Customize your SAS® Output with the Template Procedure: A Beginning Tutorial Carol Gosselin North Carolina State University, Raleigh, NC Joy Munk Smith.](https://reader035.fdocuments.us/reader035/viewer/2022062715/56649da95503460f94a96558/html5/thumbnails/1.jpg)
Customize your SAS® Output with the Template Procedure:
A Beginning Tutorial
Carol GosselinNorth Carolina State University, Raleigh, NC
Joy Munk Smith
North Carolina State University, Raleigh, NC
![Page 2: Customize your SAS® Output with the Template Procedure: A Beginning Tutorial Carol Gosselin North Carolina State University, Raleigh, NC Joy Munk Smith.](https://reader035.fdocuments.us/reader035/viewer/2022062715/56649da95503460f94a96558/html5/thumbnails/2.jpg)
Gosselin and Smith, SESUG 2000 2
Topics
• Review ODS • What are Templates?• Working with Predefined Templates• Creating your own Style and Table
Templates• Using your new templates
![Page 3: Customize your SAS® Output with the Template Procedure: A Beginning Tutorial Carol Gosselin North Carolina State University, Raleigh, NC Joy Munk Smith.](https://reader035.fdocuments.us/reader035/viewer/2022062715/56649da95503460f94a96558/html5/thumbnails/3.jpg)
Gosselin and Smith, SESUG 2000 3
Review ODS
• Output object: A basic tabular or graphical representation of output. Made up of a data component and a template component.
• Data component: Collection of raw numbers and strings that make up the table or graph.
• Template component: A set of instructions that describe how ODS should format and present the raw data.
![Page 4: Customize your SAS® Output with the Template Procedure: A Beginning Tutorial Carol Gosselin North Carolina State University, Raleigh, NC Joy Munk Smith.](https://reader035.fdocuments.us/reader035/viewer/2022062715/56649da95503460f94a96558/html5/thumbnails/4.jpg)
Gosselin and Smith, SESUG 2000 4
Available Output Destinations
Version 8.0• LISTING - classic SAS output
• HTML – Hyper Text Markup Language
• OUTPUT - SAS datasets
• PRINTER – postscript(ps) or printer control language(pcl)
Version 8.1 additions:• PRINTER – Adobe Acrobat(pdf)
• RTF - Rich Text Format(rtf)
![Page 5: Customize your SAS® Output with the Template Procedure: A Beginning Tutorial Carol Gosselin North Carolina State University, Raleigh, NC Joy Munk Smith.](https://reader035.fdocuments.us/reader035/viewer/2022062715/56649da95503460f94a96558/html5/thumbnails/5.jpg)
Gosselin and Smith, SESUG 2000 5
More about Output Destinations
• Output is sent to all open destinations.• LISTING is the only destination open by default.• HTML, PRINTER, and RTF, destinations must
be closed before the results can be used or viewed.
• Be sure to include a RUN and QUIT statement before closing a destination or the procedure output may not be sent to the destination.
![Page 6: Customize your SAS® Output with the Template Procedure: A Beginning Tutorial Carol Gosselin North Carolina State University, Raleigh, NC Joy Munk Smith.](https://reader035.fdocuments.us/reader035/viewer/2022062715/56649da95503460f94a96558/html5/thumbnails/6.jpg)
Gosselin and Smith, SESUG 2000 6
General HTML Example
ODS html file= ‘temp.htm’ ;
Sascode
Run; Quit;
ODS html close;
![Page 7: Customize your SAS® Output with the Template Procedure: A Beginning Tutorial Carol Gosselin North Carolina State University, Raleigh, NC Joy Munk Smith.](https://reader035.fdocuments.us/reader035/viewer/2022062715/56649da95503460f94a96558/html5/thumbnails/7.jpg)
Gosselin and Smith, SESUG 2000 7
General RTF Example
ODS rtf file=‘temp.rtf ‘;SascodeRun; Quit;ODS rtf close;
Compatible with WORD97 and above. Experimental in 8.0 production in 8.1. (Olinger 2000)
![Page 8: Customize your SAS® Output with the Template Procedure: A Beginning Tutorial Carol Gosselin North Carolina State University, Raleigh, NC Joy Munk Smith.](https://reader035.fdocuments.us/reader035/viewer/2022062715/56649da95503460f94a96558/html5/thumbnails/8.jpg)
Gosselin and Smith, SESUG 2000 8
General Postscript Example
ODS printer file=‘temp1.ps’ ps;
Sascode;
Run; Quit;
ODS printer close;
The ps option forces the creation of a postscript file no matter what printer driver you are using.
![Page 9: Customize your SAS® Output with the Template Procedure: A Beginning Tutorial Carol Gosselin North Carolina State University, Raleigh, NC Joy Munk Smith.](https://reader035.fdocuments.us/reader035/viewer/2022062715/56649da95503460f94a96558/html5/thumbnails/9.jpg)
Gosselin and Smith, SESUG 2000 9
ODS Trace Statement
ODS trace on; ODS trace on / listing;
ODS trace off; • Displays name, label, template, and path of
each output object generated. • The name displayed can be used to select
the output objects to be sent to any open destination.
![Page 10: Customize your SAS® Output with the Template Procedure: A Beginning Tutorial Carol Gosselin North Carolina State University, Raleigh, NC Joy Munk Smith.](https://reader035.fdocuments.us/reader035/viewer/2022062715/56649da95503460f94a96558/html5/thumbnails/10.jpg)
Gosselin and Smith, SESUG 2000 10
ODS Trace with Proc Freq
Ods trace on /listing;
Proc freq;
Tables ssrace;
Run;
Ods trace off;
![Page 11: Customize your SAS® Output with the Template Procedure: A Beginning Tutorial Carol Gosselin North Carolina State University, Raleigh, NC Joy Munk Smith.](https://reader035.fdocuments.us/reader035/viewer/2022062715/56649da95503460f94a96558/html5/thumbnails/11.jpg)
Gosselin and Smith, SESUG 2000 11
ODS Trace with Proc Freq
In the output window:Output Added:
Name: OneWayFreqs
Label: One-Way Frequencies
Template: Base.Freq.OneWayFreqs
Path: Freq.SRACE.OneWayFreqs
Also the proc freq results.
![Page 12: Customize your SAS® Output with the Template Procedure: A Beginning Tutorial Carol Gosselin North Carolina State University, Raleigh, NC Joy Munk Smith.](https://reader035.fdocuments.us/reader035/viewer/2022062715/56649da95503460f94a96558/html5/thumbnails/12.jpg)
Gosselin and Smith, SESUG 2000 12
ODS Trace with Proc Glm
SAS code:
ODS trace on / listing;
Proc glm; class sresid;
Model satv=sresid;
Lsmeans sresid;
run;
![Page 13: Customize your SAS® Output with the Template Procedure: A Beginning Tutorial Carol Gosselin North Carolina State University, Raleigh, NC Joy Munk Smith.](https://reader035.fdocuments.us/reader035/viewer/2022062715/56649da95503460f94a96558/html5/thumbnails/13.jpg)
Gosselin and Smith, SESUG 2000 13
ODS Trace with Proc Glm
Name Template
ClassLevels stat.glm.classlevels
Nobs stat.glm.nobs
Overallanova stat.glm.overallanova
Modelanova (ss1) stat.glm.modelanova
Modelanova (ss3) stat.glm.modelanova
Means stat.glm.lsmeans
![Page 14: Customize your SAS® Output with the Template Procedure: A Beginning Tutorial Carol Gosselin North Carolina State University, Raleigh, NC Joy Munk Smith.](https://reader035.fdocuments.us/reader035/viewer/2022062715/56649da95503460f94a96558/html5/thumbnails/14.jpg)
Gosselin and Smith, SESUG 2000 14
Selecting Output Objects
• OVERALL and destination specific selection and exclusion lists determine which objects are sent to each destination.
Modifying Selection ListsExample: ODS html select onewayfreqs; ODS listing select all; (default) ODS listing exclude overallanova; ODS select all; (for OVERALL list)
![Page 15: Customize your SAS® Output with the Template Procedure: A Beginning Tutorial Carol Gosselin North Carolina State University, Raleigh, NC Joy Munk Smith.](https://reader035.fdocuments.us/reader035/viewer/2022062715/56649da95503460f94a96558/html5/thumbnails/15.jpg)
Gosselin and Smith, SESUG 2000 15
Checking Selection Lists
To display selection lists: ODS destination SHOW;
For example: ODS html show;
• This command will print the selection and exclusion lists for the HTML destination and also the overall selection and exclusion lists.
![Page 16: Customize your SAS® Output with the Template Procedure: A Beginning Tutorial Carol Gosselin North Carolina State University, Raleigh, NC Joy Munk Smith.](https://reader035.fdocuments.us/reader035/viewer/2022062715/56649da95503460f94a96558/html5/thumbnails/16.jpg)
Gosselin and Smith, SESUG 2000 16
Persist Option
• Selection/Exclusion lists are reset to their default settings at each program step boundary, unless the PERSIST option is specified.
Examples:
ODS html select onewayfreqs persist;
ODS listing select onewayfreqs persist;
ODS listing exclude overallanova persist;
![Page 17: Customize your SAS® Output with the Template Procedure: A Beginning Tutorial Carol Gosselin North Carolina State University, Raleigh, NC Joy Munk Smith.](https://reader035.fdocuments.us/reader035/viewer/2022062715/56649da95503460f94a96558/html5/thumbnails/17.jpg)
Gosselin and Smith, SESUG 2000 17
HTML Output Destination
Filename htmldoc "e:\student\ ";
ODS html path=htmldoc
File='table1.htm'
Contents='table1c.htm'
Frame='table1f.htm'
Style=styles.mystyle
Stylesheet= “style.css”(url=“style.css”);
![Page 18: Customize your SAS® Output with the Template Procedure: A Beginning Tutorial Carol Gosselin North Carolina State University, Raleigh, NC Joy Munk Smith.](https://reader035.fdocuments.us/reader035/viewer/2022062715/56649da95503460f94a96558/html5/thumbnails/18.jpg)
Gosselin and Smith, SESUG 2000 18
Support for CSS
Note: In “ODS for Dummies” Olinger states “Use of style sheets will minimize the size of your HTML files. CSS support is experimental in release 8.0 and production in release 8.1”
![Page 19: Customize your SAS® Output with the Template Procedure: A Beginning Tutorial Carol Gosselin North Carolina State University, Raleigh, NC Joy Munk Smith.](https://reader035.fdocuments.us/reader035/viewer/2022062715/56649da95503460f94a96558/html5/thumbnails/19.jpg)
Gosselin and Smith, SESUG 2000 19
LISTING Destination
• Traditional SAS output• Open by default• Default selection list is ALL
Examples:
ODS listing; ODS listing close;
ODS listing select outputobject ;
ODS listing exclude outputobject ;
![Page 20: Customize your SAS® Output with the Template Procedure: A Beginning Tutorial Carol Gosselin North Carolina State University, Raleigh, NC Joy Munk Smith.](https://reader035.fdocuments.us/reader035/viewer/2022062715/56649da95503460f94a96558/html5/thumbnails/20.jpg)
Gosselin and Smith, SESUG 2000 20
ODS References
• Bryant, Muller, Pass, “ODS, Yes! Odious, No! – An Introduction to the SAS Output Delivery System.” SUGI 25 Proceedings, 2000. www.unc.edu/~lkbryant/intro_ods
• Olinger, C. R., “ODS for Dummies”, SUGI 25 Proceedings, 2000. www.sas.com/base/rnd
• SAS Institute, The Complete Guide to SAS Output Delivery, Version 8
![Page 21: Customize your SAS® Output with the Template Procedure: A Beginning Tutorial Carol Gosselin North Carolina State University, Raleigh, NC Joy Munk Smith.](https://reader035.fdocuments.us/reader035/viewer/2022062715/56649da95503460f94a96558/html5/thumbnails/21.jpg)
Gosselin and Smith, SESUG 2000 21
TEMPLATES
![Page 22: Customize your SAS® Output with the Template Procedure: A Beginning Tutorial Carol Gosselin North Carolina State University, Raleigh, NC Joy Munk Smith.](https://reader035.fdocuments.us/reader035/viewer/2022062715/56649da95503460f94a96558/html5/thumbnails/22.jpg)
Gosselin and Smith, SESUG 2000 22
Table and Style Templates
Table and Style templates are the two main types of templates.
• Table templates provide instructions for formatting a single output object.
• Style templates provide presentation instructions for all output objects produced. Style templates create a consistent appearance of all SAS output.
![Page 23: Customize your SAS® Output with the Template Procedure: A Beginning Tutorial Carol Gosselin North Carolina State University, Raleigh, NC Joy Munk Smith.](https://reader035.fdocuments.us/reader035/viewer/2022062715/56649da95503460f94a96558/html5/thumbnails/23.jpg)
Gosselin and Smith, SESUG 2000 23
Table Templates
• Many table templates are shipped with SAS and they are used for displaying the output objects.
• Table templates control data column order, column headers and footers, and data formatting.
• A table template can be bound to an output object in a data step.
![Page 24: Customize your SAS® Output with the Template Procedure: A Beginning Tutorial Carol Gosselin North Carolina State University, Raleigh, NC Joy Munk Smith.](https://reader035.fdocuments.us/reader035/viewer/2022062715/56649da95503460f94a96558/html5/thumbnails/24.jpg)
Gosselin and Smith, SESUG 2000 24
Style Templates
Style Templates:• Control the look and feel of the whole SAS
job• There are 16 styles shipped with SAS 8.0Sample code:ODS html path= htmldoc file= ‘table1.htm’ style= styles.minimal;
![Page 25: Customize your SAS® Output with the Template Procedure: A Beginning Tutorial Carol Gosselin North Carolina State University, Raleigh, NC Joy Munk Smith.](https://reader035.fdocuments.us/reader035/viewer/2022062715/56649da95503460f94a96558/html5/thumbnails/25.jpg)
Gosselin and Smith, SESUG 2000 25
Where are Templates Stored?
• Templates are stored in a new file type called “item stores”.
• Template stores can have read or update access.
• For obvious reasons, you should never provide update access to the template store that contains the SAS provided templates.
![Page 26: Customize your SAS® Output with the Template Procedure: A Beginning Tutorial Carol Gosselin North Carolina State University, Raleigh, NC Joy Munk Smith.](https://reader035.fdocuments.us/reader035/viewer/2022062715/56649da95503460f94a96558/html5/thumbnails/26.jpg)
Gosselin and Smith, SESUG 2000 26
Where are these Template Stores?
SAS defines 2 template stores.• SASUSER.TEMPLAT(UPDATE)
This template store is listed first in the search path and it has update access so user created templates are stored here.
• SASHELP.TMPLMST(READ)
This template store has read only access and it contains the SAS provided templates. Do not provide update access to this file.
![Page 27: Customize your SAS® Output with the Template Procedure: A Beginning Tutorial Carol Gosselin North Carolina State University, Raleigh, NC Joy Munk Smith.](https://reader035.fdocuments.us/reader035/viewer/2022062715/56649da95503460f94a96558/html5/thumbnails/27.jpg)
Gosselin and Smith, SESUG 2000 27
Providing Access to Template Stores
• The ODS PATH statement identifies template stores, defines search order, and assigns read/write permissions.
Default settings:
ODS path sasuser.templat(update)
sashelp.tmplmst(read);
![Page 28: Customize your SAS® Output with the Template Procedure: A Beginning Tutorial Carol Gosselin North Carolina State University, Raleigh, NC Joy Munk Smith.](https://reader035.fdocuments.us/reader035/viewer/2022062715/56649da95503460f94a96558/html5/thumbnails/28.jpg)
Gosselin and Smith, SESUG 2000 28
Default Template Store Path
Code:
Ods path show;
Results in the Log Window with the default settings:
The current ODS path list is:
1. SASUSER.TEMPLAT(UPDATE)
2. SASHELP.TMPLMST(READ)
![Page 29: Customize your SAS® Output with the Template Procedure: A Beginning Tutorial Carol Gosselin North Carolina State University, Raleigh, NC Joy Munk Smith.](https://reader035.fdocuments.us/reader035/viewer/2022062715/56649da95503460f94a96558/html5/thumbnails/29.jpg)
Gosselin and Smith, SESUG 2000 29
Storing Templates
• User created templates are stored in SASUSER.TEMPLAT because it is the first template store with update access in the path.
• This can be modified with the PATH statement.
• Never give write access to SASHELP.TMPLMST
![Page 30: Customize your SAS® Output with the Template Procedure: A Beginning Tutorial Carol Gosselin North Carolina State University, Raleigh, NC Joy Munk Smith.](https://reader035.fdocuments.us/reader035/viewer/2022062715/56649da95503460f94a96558/html5/thumbnails/30.jpg)
Gosselin and Smith, SESUG 2000 30
SettingTemplate Path
• ODS path work.temp(update) sashelp.tmplmst(read);
Note: You can use the work space and the template store will be temporary. If the template store does not exist it will be created.
![Page 31: Customize your SAS® Output with the Template Procedure: A Beginning Tutorial Carol Gosselin North Carolina State University, Raleigh, NC Joy Munk Smith.](https://reader035.fdocuments.us/reader035/viewer/2022062715/56649da95503460f94a96558/html5/thumbnails/31.jpg)
Gosselin and Smith, SESUG 2000 31
Viewing Contents of Template Store
In the Results Window:• Right click on the Results
Folder and select Templates
• Double click on selected Template Store
• Double click on selected folder
• Double click on selected template. (or right click and select open, edit, delete, etc.)
![Page 32: Customize your SAS® Output with the Template Procedure: A Beginning Tutorial Carol Gosselin North Carolina State University, Raleigh, NC Joy Munk Smith.](https://reader035.fdocuments.us/reader035/viewer/2022062715/56649da95503460f94a96558/html5/thumbnails/32.jpg)
Gosselin and Smith, SESUG 2000 32
Template Browser
![Page 33: Customize your SAS® Output with the Template Procedure: A Beginning Tutorial Carol Gosselin North Carolina State University, Raleigh, NC Joy Munk Smith.](https://reader035.fdocuments.us/reader035/viewer/2022062715/56649da95503460f94a96558/html5/thumbnails/33.jpg)
Gosselin and Smith, SESUG 2000 33
Viewing Template Code: Method 2
To view the template code using SAS code:
Proc template;Source styles.minimal;Source styles.default;Run;
The template code will be printed in the log window.
![Page 34: Customize your SAS® Output with the Template Procedure: A Beginning Tutorial Carol Gosselin North Carolina State University, Raleigh, NC Joy Munk Smith.](https://reader035.fdocuments.us/reader035/viewer/2022062715/56649da95503460f94a96558/html5/thumbnails/34.jpg)
Gosselin and Smith, SESUG 2000 34
Why Style Templates?
• Style templates are used to provide consistent appearance to all SAS output.
• Typically style templates control aspects like fonts and colors of foreground, background, text.
• Style templates can also provide instructions for adding graphics to every page.
![Page 35: Customize your SAS® Output with the Template Procedure: A Beginning Tutorial Carol Gosselin North Carolina State University, Raleigh, NC Joy Munk Smith.](https://reader035.fdocuments.us/reader035/viewer/2022062715/56649da95503460f94a96558/html5/thumbnails/35.jpg)
Gosselin and Smith, SESUG 2000 35
A Simple Style Template Definition
Proc Template; Define style styles.mydefault; Style Data / font_size=4; Style Header / font_face=italic; Style Systemtitle / background=white; End; This is a single “style definition” with 3 “style
elements” having one “attribute” each.
![Page 36: Customize your SAS® Output with the Template Procedure: A Beginning Tutorial Carol Gosselin North Carolina State University, Raleigh, NC Joy Munk Smith.](https://reader035.fdocuments.us/reader035/viewer/2022062715/56649da95503460f94a96558/html5/thumbnails/36.jpg)
Gosselin and Smith, SESUG 2000 36
Style Template Syntax
• Define statement begins the style definition and requires a matching end statement. In the example, the style name is styles.mydefault .
• Style statements provide attributes for style elements. In the example, the style elements are data, header, and systemtitle.
![Page 37: Customize your SAS® Output with the Template Procedure: A Beginning Tutorial Carol Gosselin North Carolina State University, Raleigh, NC Joy Munk Smith.](https://reader035.fdocuments.us/reader035/viewer/2022062715/56649da95503460f94a96558/html5/thumbnails/37.jpg)
Gosselin and Smith, SESUG 2000 37
So you want to be an expert?
• Olinger(1999) states, “There are approximately sixty-five different style attributes that can be specified on a style element. For a complete list, refer to the documentation.”
• I counted 101 style elements in styles.default.
Can’t wait for the certification test on this!
![Page 38: Customize your SAS® Output with the Template Procedure: A Beginning Tutorial Carol Gosselin North Carolina State University, Raleigh, NC Joy Munk Smith.](https://reader035.fdocuments.us/reader035/viewer/2022062715/56649da95503460f94a96558/html5/thumbnails/38.jpg)
Gosselin and Smith, SESUG 2000 38
Using Your New Style
Code:ODS html file=‘table1.htm’ style=styles.mydefault;SAS program statementsRun; Quit;HTML close;Explanation:The style= option on the ODS statement is used
to select a style template. If the requested template isn’t found the default will be used.
![Page 39: Customize your SAS® Output with the Template Procedure: A Beginning Tutorial Carol Gosselin North Carolina State University, Raleigh, NC Joy Munk Smith.](https://reader035.fdocuments.us/reader035/viewer/2022062715/56649da95503460f94a96558/html5/thumbnails/39.jpg)
Gosselin and Smith, SESUG 2000 39
Style Element Attributes
• Font and color are two commonly set style element attributes.
• These will be covered at an introductory level in these slides and in our examples.
![Page 40: Customize your SAS® Output with the Template Procedure: A Beginning Tutorial Carol Gosselin North Carolina State University, Raleigh, NC Joy Munk Smith.](https://reader035.fdocuments.us/reader035/viewer/2022062715/56649da95503460f94a96558/html5/thumbnails/40.jpg)
Gosselin and Smith, SESUG 2000 40
Defining Font Attributes
A font definition has the following format:
(“font-face1”,font-size, keyword list)
Font-face: If you specify more than one, the browser uses the first one installed on the system.
Font-size: Interpretation of font-size depends on the browser
![Page 41: Customize your SAS® Output with the Template Procedure: A Beginning Tutorial Carol Gosselin North Carolina State University, Raleigh, NC Joy Munk Smith.](https://reader035.fdocuments.us/reader035/viewer/2022062715/56649da95503460f94a96558/html5/thumbnails/41.jpg)
Gosselin and Smith, SESUG 2000 41
Font Attributes (cont.)
Keywords:Font_weight:
medium, bold, demi_bold, extra_bold, light
Font_style:
italic, roman, slant
Font_width:
normal, compress, extra_compressed, narrow, wide
![Page 42: Customize your SAS® Output with the Template Procedure: A Beginning Tutorial Carol Gosselin North Carolina State University, Raleigh, NC Joy Munk Smith.](https://reader035.fdocuments.us/reader035/viewer/2022062715/56649da95503460f94a96558/html5/thumbnails/42.jpg)
Gosselin and Smith, SESUG 2000 42
Font Attributes (cont.)
Code:
Style data / font=(‘Arial, Helvetica’,4,bold italic);
Style data / font_face=‘Arial, Helvetic’
font_size=4 font_style=italic font_weight=bold;
Explanation:
These two statements generate the same results.
![Page 43: Customize your SAS® Output with the Template Procedure: A Beginning Tutorial Carol Gosselin North Carolina State University, Raleigh, NC Joy Munk Smith.](https://reader035.fdocuments.us/reader035/viewer/2022062715/56649da95503460f94a96558/html5/thumbnails/43.jpg)
Gosselin and Smith, SESUG 2000 43
Color Attributes
Some web safe colors (Template Tutorial)
Red=#FF0000 Brass=#B5A642
Green=#00FF00 Brown=#A62A2A
Blue=#0000FF Bronze=#8C7853
White=#FFFFFF Magenta=#FF00FF
Black=#000000 Copper=#B87333
Yellow=#FFFF00 Cadet Blue=#5F9F9F
![Page 44: Customize your SAS® Output with the Template Procedure: A Beginning Tutorial Carol Gosselin North Carolina State University, Raleigh, NC Joy Munk Smith.](https://reader035.fdocuments.us/reader035/viewer/2022062715/56649da95503460f94a96558/html5/thumbnails/44.jpg)
Gosselin and Smith, SESUG 2000 44
Inheritance
Often the easiest way to create a template is to modify an existing template. This is done using inheritance.
There are two types of inheritance.1. “Style definition inheritance” uses the
PARENT= statement within a style definition.
2. “Style element inheritance” uses the FROM option on the STYLE statement.
![Page 45: Customize your SAS® Output with the Template Procedure: A Beginning Tutorial Carol Gosselin North Carolina State University, Raleigh, NC Joy Munk Smith.](https://reader035.fdocuments.us/reader035/viewer/2022062715/56649da95503460f94a96558/html5/thumbnails/45.jpg)
Gosselin and Smith, SESUG 2000 45
Style Definition Inheritance
Code:Proc template;Define styles.mydefault; parent=styles.default;
When you use parent= all the style elements, attributes, and settings from the parent style are inherited.
![Page 46: Customize your SAS® Output with the Template Procedure: A Beginning Tutorial Carol Gosselin North Carolina State University, Raleigh, NC Joy Munk Smith.](https://reader035.fdocuments.us/reader035/viewer/2022062715/56649da95503460f94a96558/html5/thumbnails/46.jpg)
Gosselin and Smith, SESUG 2000 46
Style Definition Inheritance
When using “style definition inheritance” you can:
1. Modify existing style elements
2. Add new style elements
![Page 47: Customize your SAS® Output with the Template Procedure: A Beginning Tutorial Carol Gosselin North Carolina State University, Raleigh, NC Joy Munk Smith.](https://reader035.fdocuments.us/reader035/viewer/2022062715/56649da95503460f94a96558/html5/thumbnails/47.jpg)
Gosselin and Smith, SESUG 2000 47
Style Element Inheritance
Proc template;
Define styles.mydefault;
parent=styles.default;
Style document / attributes;
Style data from document / attributes;
Style header from footer / attributes;
End;
![Page 48: Customize your SAS® Output with the Template Procedure: A Beginning Tutorial Carol Gosselin North Carolina State University, Raleigh, NC Joy Munk Smith.](https://reader035.fdocuments.us/reader035/viewer/2022062715/56649da95503460f94a96558/html5/thumbnails/48.jpg)
Gosselin and Smith, SESUG 2000 48
Style Element Inheritance
Using “style element inheritance” you can:
1. Inherit style elements from within the current definition.
2. Inherit style elements from the parent when a PARENT= statement is used.
Note: attributes are inherited from the parent if the style element doesn’t exist within the current (child) definition.
![Page 49: Customize your SAS® Output with the Template Procedure: A Beginning Tutorial Carol Gosselin North Carolina State University, Raleigh, NC Joy Munk Smith.](https://reader035.fdocuments.us/reader035/viewer/2022062715/56649da95503460f94a96558/html5/thumbnails/49.jpg)
Gosselin and Smith, SESUG 2000 49
Style Element Inheritance
• Inherited style elements inherit all the attributes set in the parent.
• The style elements can be modified and added to.
![Page 50: Customize your SAS® Output with the Template Procedure: A Beginning Tutorial Carol Gosselin North Carolina State University, Raleigh, NC Joy Munk Smith.](https://reader035.fdocuments.us/reader035/viewer/2022062715/56649da95503460f94a96558/html5/thumbnails/50.jpg)
Gosselin and Smith, SESUG 2000 50
A Sample Table Template
Proc template;
Edit stat.glm.test as combined.tests;
Edit ss; format =7.2; end;
Edit ms; format =7.2; end;
Run;
![Page 51: Customize your SAS® Output with the Template Procedure: A Beginning Tutorial Carol Gosselin North Carolina State University, Raleigh, NC Joy Munk Smith.](https://reader035.fdocuments.us/reader035/viewer/2022062715/56649da95503460f94a96558/html5/thumbnails/51.jpg)
Gosselin and Smith, SESUG 2000 51
Bind Template to Output Object
Data _null_; set object;
File print ods=(template=‘combined.test’);
Put _ods_;
Run;
![Page 52: Customize your SAS® Output with the Template Procedure: A Beginning Tutorial Carol Gosselin North Carolina State University, Raleigh, NC Joy Munk Smith.](https://reader035.fdocuments.us/reader035/viewer/2022062715/56649da95503460f94a96558/html5/thumbnails/52.jpg)
Gosselin and Smith, SESUG 2000 52
Test Statement
Proc template;
Test data=data_set_name;
Run;
This code will test the most recently created template. Data set variable names must match template column names.
![Page 53: Customize your SAS® Output with the Template Procedure: A Beginning Tutorial Carol Gosselin North Carolina State University, Raleigh, NC Joy Munk Smith.](https://reader035.fdocuments.us/reader035/viewer/2022062715/56649da95503460f94a96558/html5/thumbnails/53.jpg)
Gosselin and Smith, SESUG 2000 53
Delete Template
Proc template;
Delete combined.tests;
Run;
It may be desirable to delete your template if it has the same name as a SAS supplied template. Why? As long as you have a template with the same name as a default template, yours will be used.
![Page 54: Customize your SAS® Output with the Template Procedure: A Beginning Tutorial Carol Gosselin North Carolina State University, Raleigh, NC Joy Munk Smith.](https://reader035.fdocuments.us/reader035/viewer/2022062715/56649da95503460f94a96558/html5/thumbnails/54.jpg)
Gosselin and Smith, SESUG 2000 54
Storing Your Table Templates
• Just like with style templates, your table templates will be stored in the first template store that has update access.
• You can use the work directory.
ODS path work.templat(update)
sashelp.tmplmst(read);
Templates would be stored temporarily. If work.templat doesn’t exist it will be created.
![Page 55: Customize your SAS® Output with the Template Procedure: A Beginning Tutorial Carol Gosselin North Carolina State University, Raleigh, NC Joy Munk Smith.](https://reader035.fdocuments.us/reader035/viewer/2022062715/56649da95503460f94a96558/html5/thumbnails/55.jpg)
Gosselin and Smith, SESUG 2000 55
Using Your Template: Method 1
With the default path setting:
If your table template has the same name as a SAS Institute supplied template and is stored in SASUSER.TEMPLAT, it will be used instead of the Institute supplied template. This is because the template store SASUSER.TEMPLAT is searched before SASHELP.TMPLMST.
![Page 56: Customize your SAS® Output with the Template Procedure: A Beginning Tutorial Carol Gosselin North Carolina State University, Raleigh, NC Joy Munk Smith.](https://reader035.fdocuments.us/reader035/viewer/2022062715/56649da95503460f94a96558/html5/thumbnails/56.jpg)
Gosselin and Smith, SESUG 2000 56
Using Your Template: Method 2
You can bind your template with the
output object in a data step using the
FILE statement with the ODS=
and TEMPLATE= options.
![Page 57: Customize your SAS® Output with the Template Procedure: A Beginning Tutorial Carol Gosselin North Carolina State University, Raleigh, NC Joy Munk Smith.](https://reader035.fdocuments.us/reader035/viewer/2022062715/56649da95503460f94a96558/html5/thumbnails/57.jpg)
Gosselin and Smith, SESUG 2000 57
Using Your Template: Method 2
Code:data _null_; Input a b c;file print ods=( template=‘mytemplate’ columns=( col1=a col2=b col3=c ) );put _ODS_;Note:These 2 methods will be covered in the
examples.
![Page 58: Customize your SAS® Output with the Template Procedure: A Beginning Tutorial Carol Gosselin North Carolina State University, Raleigh, NC Joy Munk Smith.](https://reader035.fdocuments.us/reader035/viewer/2022062715/56649da95503460f94a96558/html5/thumbnails/58.jpg)
Gosselin and Smith, SESUG 2000 58
Proc Template References
• Heffner(1998) “ODS: The DATA Step Knows”, SUGI 23 Proceedings, 1998.
• Olinger(2000), “Twisty Little Passages, All Alike—ODS Templates Exposed.”, SUGI25 Proceedings.
• SAS Institute, The Complete Guide to the SAS Output Delivery System, Version 8.
![Page 59: Customize your SAS® Output with the Template Procedure: A Beginning Tutorial Carol Gosselin North Carolina State University, Raleigh, NC Joy Munk Smith.](https://reader035.fdocuments.us/reader035/viewer/2022062715/56649da95503460f94a96558/html5/thumbnails/59.jpg)
Gosselin and Smith, SESUG 2000 59
Proc Template References (cont.)
• SAS(2000), “The Template Tutorial”,
PDF: http://www.sas.com/rnd/base/topics/templateFAQ/
HTML: http://www.sas.com/rnd/base/topics/templateFAQ/Template.html#intro
![Page 60: Customize your SAS® Output with the Template Procedure: A Beginning Tutorial Carol Gosselin North Carolina State University, Raleigh, NC Joy Munk Smith.](https://reader035.fdocuments.us/reader035/viewer/2022062715/56649da95503460f94a96558/html5/thumbnails/60.jpg)
Gosselin and Smith, SESUG 2000 60
Proc Template Tutorial
http://www.sas.com/rnd/base/topics/templateFAQ
• Question and example format• Examples mostly modifying styles.default• Colors• Flyover, tool tips• Links• margins
![Page 61: Customize your SAS® Output with the Template Procedure: A Beginning Tutorial Carol Gosselin North Carolina State University, Raleigh, NC Joy Munk Smith.](https://reader035.fdocuments.us/reader035/viewer/2022062715/56649da95503460f94a96558/html5/thumbnails/61.jpg)
Sample ProgramsCarol Gosselin
![Page 62: Customize your SAS® Output with the Template Procedure: A Beginning Tutorial Carol Gosselin North Carolina State University, Raleigh, NC Joy Munk Smith.](https://reader035.fdocuments.us/reader035/viewer/2022062715/56649da95503460f94a96558/html5/thumbnails/62.jpg)
Gosselin and Smith, SESUG 2000 62
TABULATE Code Used in Examples
PROC TABULATE DATA = b
FORMAT = 8.0;
FORMAT senrstat $statfmt iof $ioffmt.;
CLASS senrstat iof;
TABLE iof ALL, SENRSTAT ALL;
TITLE 'Enrollment by Residency';
RUN;
![Page 63: Customize your SAS® Output with the Template Procedure: A Beginning Tutorial Carol Gosselin North Carolina State University, Raleigh, NC Joy Munk Smith.](https://reader035.fdocuments.us/reader035/viewer/2022062715/56649da95503460f94a96558/html5/thumbnails/63.jpg)
Gosselin and Smith, SESUG 2000 63
Data Used in Examples
• Fictional student data containing the following variables:
• IOF – Residency (A=In-State, B=Out-of-State, C=International)
• SENRSTAT – Enrollment Status (1=New, 2=Transfer, 3=Continue, 4=Reenter)
![Page 64: Customize your SAS® Output with the Template Procedure: A Beginning Tutorial Carol Gosselin North Carolina State University, Raleigh, NC Joy Munk Smith.](https://reader035.fdocuments.us/reader035/viewer/2022062715/56649da95503460f94a96558/html5/thumbnails/64.jpg)
Gosselin and Smith, SESUG 2000 64
Conclusion
PROC TEMPLATE is a powerful tool for modifying SAS output. It takes a significant amount of time to master PROC TEMPLATE, but creating simple templates is not hard.
![Page 65: Customize your SAS® Output with the Template Procedure: A Beginning Tutorial Carol Gosselin North Carolina State University, Raleigh, NC Joy Munk Smith.](https://reader035.fdocuments.us/reader035/viewer/2022062715/56649da95503460f94a96558/html5/thumbnails/65.jpg)
Gosselin and Smith, SESUG 2000 65
Contact Information
• Carol Gosselin -- [email protected]• Joy Munk Smith -- [email protected]
• Examples are available at:– http://www.stat.ncsu.edu/sas/ods/templates