1 / 73

SAS With Style: Creating your own ODS Style Template

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.

Mercy
Download Presentation

SAS With Style: Creating your own ODS Style Template

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


    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

More Related