Chapter Contents


The Complete Guide to the SAS Output Delivery System

Creating Output with ODS

In the past, the term "output" has generally referred to the outcome of a SAS procedure step. You could send this output to the Output window if you were working in a windowing environment, to an output device if you were working in line mode, or to a file if you used PROC PRINTTO or SAS system options.

With the advent of the Output Delivery System, "output" takes on a much broader meaning. The following figure illustrates the concept of output for Version 8 SAS. Definitions of the terms in the figure follow.

Model of the Production of ODS Output


data component
Each procedure that supports ODS and each DATA step produces one or more data components. Each data component contains results (numbers and characters) of the step in a form similar to a SAS data set.

table definition
A table definition is a description of how to render a tabular data component. (Almost all ODS output is tabular.) This description includes but is not limited to

Note:   Not all procedures use a table definition.

Procedures like PROC CHART and PROC TIMEPLOT need to use a monospace font to correctly align their results. Such procedures do not use a table definition. The HTML and Printer output that they produce do not substantially differ from the Listing output. You cannot alter their HTML or Printer output except by specifying a different style definition. See the discussion of STYLE= (for the HTML destination) or the discussion of STYLE= (for the Printer destination).

Procedures like PROC PRINT, PROC REPORT, and PROC TABULATE produce an endless variety of results, depending on how you use the procedures. These procedures don't use a table definition either. However, both PROC REPORT and PROC TABULATE provide ways for you to customize their HTML and Printer output. For more information, consult "Customizing the Style Definition that ODS Uses" in "Fundamental Concepts for Using Base SAS Procedures" in SAS Procedures Guide, as well as the sections on PROC REPORT and PROC TABULATE procedures in the same document.  [cautionend]

output object
ODS binds a table definition to a data component in order to produce an output object. The output object, therefore, contains both the results of the procedure or DATA step and information about how to render the results. An output object has a name and a label.

Note:   Although many output objects include a table definition, not all do. In some cases the output object is no more than the data component.  [cautionend]

ODS destinations
ODS currently supports four destinations:

ODS output
ODS output consists of formatted output objects from any of the ODS destinations. The Output destination produces SAS data sets. The Listing, HTML, and Printer destinations produce Listing output, HTML output, and Printer output.

Traditional SAS output is, then, one kind of ODS output (Listing output), but it is no longer the only kind.

Chapter Contents



Top of Page

Copyright 1999 by SAS Institute Inc., Cary, NC, USA. All rights reserved.