Previous Page | Next Page

What's New

What's New in SAS 9.2 Output Delivery System


Overview

New and enhanced features in the Output Delivery System (ODS) provide an almost limitless number of choices for reporting and displaying analytical results with a greater variety of formatting selections and output destinations.


New Features and Enhancements for ODS Statements

The following ODS statements are new:

ODS TAGSETS.RTF

creates measured RTF output that enables you to specify how and where page breaks occur and when to place titles and footnotes in the body of a page.

ODS PACKAGE

opens, adds to, publishes, or closes one SAS ODS package object. ODS packages enable ODS destinations to use the SAS Publishing Framework, which is a feature of SAS Integration Technologies. An ODS package tracks the output from any active destinations that connect with it. After the destinations close, the package can be published to any of the publish destinations. You can use ODS packages with the ODS PACKAGE statement.

ODS TEXT=

inserts text into ODS output.

The following new functionality works with the ODS PRINTER and PDF destinations:

New options have been added to the following ODS statements:


New Features and Enhancements for the DOCUMENT Procedure

The DOCUMENT procedure now enables you to do the following:

The DOCUMENT procedure now supports the REPORT procedure.

New Features and Enhancements for the TEMPLATE Procedure

The following general enhancements and features have been added to the TEMPLATE procedure:

  • The LIST Statement now supports WHERE expressions, which enables you to select items for listing that meet a particular condition.

  • The SOURCE Statement now supports WHERE expressions, which enables you to select items that meet a particular condition.

  • The TEMPLATE procedure now enables you to customize the appearance of crosstabulation tables that are created with the FREQ procedure. The new CrossTabFreqs table template describes how to display PROC FREQ's crosstabulation table. You can create a customized CrossTabFreqs table template to do the following:

    • use custom formats for cellvalues

    • specify a style for each value in a cell

    • change the stacking order of values in a cell

    • change and style headers and footers

    • use variable labels in headers and footers

    • style table regions independently

    • change or remove the legend

The following enhancements and features have been added to the TEMPLATE procedure for table templates:

  • You can now create the master table templates that are globally applied to all of your tabular output:

    Base.Template.Column

    Base.Template.Footer

    Base.Template.Header

    Base.Template.Table

    These master templates are available in all of the DEFINE statements within a table template.
  • You can now use subsetting variables with the CELLSTYLE AS Statement to find common values in table templates and column templates.

  • You can use the TableHeaderContainer and TableFooterContainer style elements along with the border control style attributes to change the borders of the regions that surround the table header and footer.

The following new statements are provided in the TEMPLATE procedure for style definitions:

CLASS

creates a style element from a like-named style element.

IMPORT

imports Cascading Style Sheet (CSS) code from an external file and converts the code to style elements and style attributes that are then included in the style definition.

The following enhancements and features have been added to the TEMPLATE procedure for ODS style definitions:

The STYLE statement now supports the following option:
_SELF_

specifies to use the preceding style element or style elements of the same name for the parent of the new style.

The following new statements are provided in the TEMPLATE procedure for the tagset template:

CONTINUE

specifies that the execution of the DO loop returns to the corresponding DO statement.

DO

begins a statement block that executes if the required condition is true.

DONE

ends a statement block.

ELSE

begins a statement block that executes if the corresponding DO statement is false.

EVAL

creates or updates a user-defined variable and its value.

ITERATE

specifies a dictionary variable or list variable to loop through, and for each iteration, assigns the variable's values to the _NAME_ and _VALUE_ event variables.

NEXT

increments a dictionary or list variable to the next value.

STOP

moves execution to the end of the current statement block.

The following enhancements has been added to the TEMPLATE procedure for tagset templates:

  • Stream commands in tagset templates are able to specify variables.

  • You can now use the master template Base.Template.Tagset that is globally applied to all of your tagsets. Base.Template.Tagset is created with the DEFINE TAGSET statement.


Improved ODS Statistical Graphics

The ODS graphics capability, which was experimental for SAS 9.1, is now production for SAS 9.2 as ODS graphics.

For complete documentation about ODS graphics, see the SAS/GRAPH: Statistical Graphics Procedures Guide, SAS/GRAPH: Graph Template Language Reference, and the SAS/GRAPH: Graph Template Language User's Guide.

Note:   A SAS/GRAPH license is now required to use ODS graphics.   [cautionend]


New ODS Support for SAS/GRAPH

All SAS/GRAPH procedures and devices now support ODS styles. By default, all colors, fonts, symbols, and graph sizes are derived from the current style. Procedure statement options and SAS/GRAPH GOPTIONS can still be used to override individual elements of the graph, providing you the flexibility to customize the appearance of any graph.

Additionally, the colors used by the styles have been updated to enhance the appearance of your graphics output.

If you have multiple ODS destinations open, SAS/GRAPH automatically selects the appropriate device for each destination. In addition, each graph uses the ODS style that is associated with each destination. You do not need to specify a device or style to get optimal results. For example, if you do not specify a device, then SAS/GRAPH automatically selects the PNG device for the HTML destination and the SASEMF device for the RTF destination.

Also, if you have multiple ODS destinations open and you are using a device other than the Java or ActiveX devices (ACTIVEX, JAVA, ACTXIMG, or JAVAIMG), a different GRSEG is created for each open destination. The GRSEG for the first destination is stored in WORK.GSEG. The GRSEGs for any other open destinations are named according to the destination (for example, WORK.HTML).


New PDF Security

You can now encrypt and password-protect your PDF files easily in SAS with the PDFSECURITY system option. See the PDFSECURITY system option in SAS Language Reference: Dictionary.


New Scalable Vector Graphics and Fonts

ODS styles can now use new TrueType fonts. All Universal Printers and many SAS/GRAPH devices use the FreeType library to render TrueType fonts for output in all of the operating environments that SAS software supports. In addition, by default, many SAS/GRAPH device drivers and all Universal Printers generate output using ODS styles, and these ODS styles use TrueType fonts. In addition to SAS Monospace and SAS Monospace Bold, 21 new TrueType fonts are made available when you install SAS:

ODS now supports Scalable Vector Graphics, which is a language for describing two-dimensional graphics and graphical applications in XML. For more information about Scalable Vector Graphics and the TrueType fonts, see the section "Printing with SAS" in SAS Language Reference: Concepts.


Query Open ODS Destinations

You can now programmatically query SAS for open ODS destinations with the new SQL dictionary table DESTINATIONS and its associated view. See the section "Using the DICTIONARY Tables" in the SQL Procedure in the Base SAS Procedures Guide.

Previous Page | Next Page | Top of Page