750 likes | 1.23k Views
Stylish ODS. ODS ships with standard stylesGet the job doneNot exactly stylishYou can build your own stylesTo suit your tasteTo meet your business requirements. Today's Workshop. Creating a custom style for your output.Fast-track approachjust the basics of the syntaxwill customize a simple template, which you can take home.
E N D
1. SAS With Style: Creating your own ODS Style Template Lauren Haworth
Genentech, Inc.
South San Francisco, CA
2. Stylish ODS ODS ships with standard styles
Get the job done
Not exactly stylish
You can build your own styles
To suit your taste
To meet your business requirements
3. Todays Workshop Creating a custom style for your output.
Fast-track approach
just the basics of the syntax
will customize a simple template, which you can take home
4. Syntax: the STYLE= option If you issue this ODS command:
ODS HTML BODY=body.html;
Youre really issuing this command:
ODS HTML BODY=body.html STYLE=Default;
5. Syntax: the STYLE= option ODS has a default style it uses for each destination
To switch to another style, type in an explicit STYLE= option and specify a style name
6. Syntax: PROC TEMPLATE Allows you to define every aspect of a style
Can contain hundreds of lines of code.
To simplify life, we build styles from existing styles
use the PARENT= statement
only specify the things we want to change
7. Syntax: PROC TEMPLATE Teaching TEMPLATE would require a much longer course
Were going to cheat by learning to modify a sample program
Will cover only the minimum syntax youll need to get by
8. HANDS ON: Open Sample Program Open SAS v8.2
Open sample program c:\workshop\ws195\SampleProgram.sas
Dont run or edit the program right now
Just follow along through the program as I briefly explain the code
Some parts of the code will be easier to see on your computer than on my slides
9. Example Program: define style The first section of code:
sets up the name of the style (Custom)
bases the new style on the Default style
10. Example Program: style fonts The next section of code:
sets up a list of font names and characteristics.
used later in the program as a shorthand way to specify fonts.
11. Example Program: style fonts style statement
used to supply attributes to the style element called fonts.
from fonts syntax overwrites and adds attributes to an existing style element
12. Example Program: style fonts font attributes
font name (+ alternates)
font size
font style/weight/width
13. Example Program: replace color_list The next section of code:
Sets up a shorthand list of color codes
14. Example Program: replace color_list The next section of code:
Replaces color definitions from the default style with new colors
15. Example Program: replace color_list Color_list usage:
Cryptic code names used by the parent style to assign colors to various parts of the output
16. Example Program: replace Output The next section of code:
replaces style element that controls borders, rules, and spacing
not a list of codes, but the actual settings
17. Example Program: remaining styles IGNORE the next section of code:
will not be covered in this workshop
uses the colors and fonts to modify a number of other style elements
do not make any changes to this section
18. Example Program: end of template Final section of template code:
end terminates the style definition
run executes the style definition, creating styles.custom
19. Example Program: options Code after the PROC TEMPLATE:
system and ODS options
remove The FREQ Procedure
20. Example Program: ODS output Final section of program:
Generate simple frequencies, send to HTML destination
Note the style=Custom option
21. HANDS ON: Try It Submit the program
Look at the log window to see the message about the creation of a new style
View the HTML file:
Depending on SAS configuration, it may pop up automatically, or
Use the SAS Results Explorer
22. HANDS ON: View the Results The HTML results:
23. HANDS ON: Summary This custom style looks a lot like the default style
In fact its based on that style
For the remainder of the workshop, well be customizing this style
24. Changing Typefaces To change the fonts
find the part of the font specification you need to modify
25. Changing Typefaces Here are some typefaces to try
These are safe because most of your users will have them
26. HANDS ON: Changing Typefaces Scroll down through the PROC TEMPLATE code to the style fonts from fonts definition
For each font style, type over the existing typeface(s) with your choice of typeface
Re-run the program and see what happens
27. HANDS ON: Changing Typefaces References:
28. Changing Typefaces: My Results style fonts from fonts /
'TitleFont' = ("Comic Sans MS, Arial, Helvetica",14pt,Bold Italic)
'TitleFont2' = ("Comic Sans MS, Arial, Helvetica",12pt,Bold Italic)
'StrongFont' = ("Comic Sans MS, Arial, Helvetica",12pt,Bold)
'EmphasisFont' = ("Comic Sans MS, Arial, Helvetica",10pt,Italic)
'headingFont' = ("Comic Sans MS, Arial, Helvetica",12pt,Bold)
'docFont' = ("Trebuchet MS, Arial, Helvetica",11pt)
'footFont' = ("Arial, Helvetica, Helv",8pt);
29. Changing Typefaces: My Results
30. Changing Font Sizes To change the fonts
find the part of the font specification you need to modify
31. Changing Font Sizes Once youve found the part you need to modify
pick a new font size
listed in points*
important to keep relative sizes the same (titles larger than body text)
type over the old font size with the new font size
32. HANDS ON: Changing Font Sizes For each font style, type over the existing font size with your choice of size
Re-run the program and see what happens
33. HANDS ON: Changing Font Sizes For reference:
34. Changing Font Sizes: My Results style fonts from fonts /
'TitleFont' = ("Comic Sans MS, Arial, Helvetica",18pt,Bold Italic)
'TitleFont2' = ("Comic Sans MS, Arial, Helvetica",12pt,Bold Italic)
'StrongFont' = ("Comic Sans MS, Arial, Helvetica",12pt,Bold)
'EmphasisFont' = ("Comic Sans MS, Arial, Helvetica",10pt,Italic)
'headingFont' = ("Comic Sans MS, Arial, Helvetica",11pt,Bold)
'docFont' = ("Trebuchet MS, Arial, Helvetica",10pt)
'footFont' = ("Arial, Helvetica, Helv",8pt);
35. Changing Font Sizes: My Results
36. Changing Font Weights Same process as with font size
find the part of the font specification you need to modify
pick a new font weight
modify the font specification
37. Changing Font Weights Font weight/width specification
Four possible settings*:
Bold
Bold Italic
Italic
[blank]
38. HANDS ON: Changing Font Weights For each font style, type over the existing font weights with your choice of weight
Note: if font weight is currently blank, you need to add a comma followed by the new font weight
Re-run the program and see what happens
39. HANDS ON: Changing Font Weights For reference:
40. Changing Font Weights: My Results style fonts from fonts /
'TitleFont' = ("Comic Sans MS, Arial, Helvetica",18pt,Bold)
'TitleFont2' = ("Comic Sans MS, Arial, Helvetica",12pt,Bold)
'StrongFont' = ("Comic Sans MS, Arial, Helvetica",12pt,Bold)
'EmphasisFont' = ("Comic Sans MS, Arial, Helvetica",10pt,Italic)
'headingFont' = ("Comic Sans MS, Arial, Helvetica",11pt,Bold)
'docFont' = ("Trebuchet MS, Arial, Helvetica",10pt)
'footFont' = ("Arial, Helvetica, Helv",8pt, Italic);
41. Changing Font Weights: My Results
42. Changing the Color Scheme ODS allows you to specify foreground (text) and background colors
Can use color names: red, green, blue
Or color hex codes: cxFF0000, cx00FF00, cx0000FF
43. Changing the Color Scheme
44. Changing the Color Scheme To assign a new color:
find the area you want to modify
change the fg and bg values to the colors you want
45. HANDS ON: Changing the Colors Scroll down to the replace color_list section of code.
For each named color (fgB2, fgB1, etc.),edit the named color to your choice of color
Re-run the program and see what happens
46. HANDS ON: Changing the Colors
47. Changing Colors: My Results replace color_list /
'fgB2' = blue
'fgB1' = darkmagenta
'fgA1' = orchid
'bgA3' = lime
'bgA1' = white
'fgR' = lime
'bgR' = darkorchid
'fgA2' = lime
'bgA2' = darkorchid
'fgA' = deeppink
'bgA' = white
'bgP' = white;
48. Changing Colors: My Results
49. Changing Colors: More Tips Find a Color Picker on the web (Google search on this term)
use the 216-color web-safe palette
will help you use hex codes instead of names for more control
If youre not creative, try http://www.colorschemer.com/online/
50. Changing Rules and Borders Rules are the lines between table cells
Borders are the lines around tables, table headers, and table footers
Virtually all ODS output is in the form of tables
51. Changing Rules and Borders Rules are controlled by the Rules style attribute
Borders are controlled by the Frame style attribute
Both of these attributes are in the Output style element in our program
52. Changing Borders The Frame attribute is currently set to void (no borders around the table)
Another option is box (puts a border around the entire table)
Further options:
above, below, rhs, lhs (pick a side)
vsides, hsides (left and right, top and bottom)
53. HANDS ON: Changing Borders Change the Frame setting one of the other options by typing over the word void
Re-run the program and see what happens
54. Changing Borders: My Results replace Output from Container /
frame = box
rules = none
borderwidth = 1pt
bordercolor = color_list('fga1')
cellpadding = 7pt
cellspacing = 0pt;
55. Changing Borders: My Results
56. Changing Rules The Rules attribute is currently set to none (no lines between the table cells)
Other options:
all (lines between all cells)
groups (lines between table header/footer and body)
57. HANDS ON: Changing Rules Change the Rules setting to all or groups by typing over the word none
Re-run the program and see what happens
58. Changing Rules: My Results replace Output from Container /
frame = box
rules = all
borderwidth = 1pt
bordercolor = color_list('fga1')
cellpadding = 7pt
cellspacing = 0pt;
59. Changing Rules: My Results
60. Changing Line Widths and Colors Frame and Rules control what lines you get
They do not control line width or color
Borderwidth and Bordercolor control line appearance
61. Changing Line Widths and Colors Borderwidth takes a line width in points
Its currently set to 1pt
It only affects the table border, not the rules between cells
62. Changing Line Widths and Colors Bordercolor can be set to one of the pre-defined colors:
bordercolor = color_list(fga1)
It can also be set to a color name directly
bordercolor = white
Unlike Borderwidth, Bordercolor works on both borders and rules
63. HANDS ON: Changing Lines Change the Borderwidth to a new value by typing over the 1 with a new width
Change the Bordercolor to a new value by replacing fga1 with a different item from the color list, or typing in a color name
Re-run the program and see what happens
64. Changing Lines: My Results replace Output from Container /
frame = box
rules = all
borderwidth = 2pt
bordercolor = black
cellpadding = 7pt
cellspacing = 0pt;
65. Changing Lines: My Results
66. Changing Table Spacing Cellpadding puts space inside table cells, between the text and the cell borders
Larger values make table more readable
Smaller values save space
67. HANDS ON: Changing Table Spacing Change the Cellpadding setting by typing over the 7 with a new value
Re-run the program and see what happens
68. Changing Table Spacing: My Results replace Output from Container /
frame = box
rules = none
borderwidth = 2pt
bordercolor = black
cellpadding = 3pt
cellspacing = 0pt;
69. Changing Table Spacing: My Results
70. Summary Youve now learned the basics of style modification: fonts, colors, rules/borders, spacing
These techniques will allow you customize most aspects of your output
You can save your PROC TEMPLATE code, but you dont need to run it every time (read up on the ODS PATH statement)
71. Summary Some warnings:
This is an extremely simple example style
To modify very specific portions of your output, you will need to add more style elements and settings
72. References(no need to write down, theyre all in the proceedings) PROC TEMPLATE documentation is in the References chapter of:
Guide to the Output Delivery System in SAS Online Doc, version 8, ?1999, SAS Institute Inc., Cary, NC, USA.
Preliminary documentation of new features and sample programs can be found at:
http://support.sas.com/rnd/base/index-ods-resources.html
My book on ODS has a number of chapters on modifying ODS styles:
Haworth, Lauren, Output Delivery System: The Basics, ?2001, SAS Institute Inc., Cary, NC, USA.
73. FINAL HANDS ON: Tweak your Style Ill be happy to take your questions at this point, or
You can use the remaining time to continue to modify your style
THANKS FOR COMING!
74. COLOR REFERENCE