The REPORT procedure combines features of the PRINT, MEANS, and TABULATE procedures with features of the DATA step in a single report-writing tool that can produce a variety of reports . You can use PROC REPORT in three ways:
in a windowing environment with a prompting facility that guides you as you build a report.
in a windowing environment without the prompting facility.
in a nonwindowing environment. In this case, you submit a series of statements with the PROC REPORT statement, just as you do in other SAS procedures. You can submit these statements from the Program Editor with the NOWINDOWS option in the PROC REPORT statement, or you can run SAS in batch, noninteractive , or interactive line mode (see the information about running SAS in SAS Language Reference: Concepts ).
This documentation provides reference information about using PROC REPORT in a windowing or nonwindowing environment. For task-oriented documentation for the nonwindowing environment, see SAS Technical Report P-258, Using the REPORT Procedure in a Nonwindowing Environment, Release 6.07 .
A detail report contains one row for every observation selected for the report. Each of these rows is a detail row . A summary report consolidates data so that each row represents multiple observations. Each of these rows is also called a detail row.
Both detail and summary reports can contain summary lines as well as detail rows. A summary line summarizes numerical data for a set of detail rows or for all detail rows. PROC REPORT provides both default and customized summaries (see Using Break Lines on page 876).
This overview illustrates the kinds of reports that PROC REPORT can produce. The statements that create the data sets and formats used in these reports are in Example 1 on page 962. The formats are stored in a permanent SAS data library. See Examples: REPORT Procedure on page 962 for more reports and for the statements that create them.
The data set that these reports use contains one day s sales figures for eight stores in a chain of grocery stores.
A simple PROC REPORT step produces a report similar to one produced by a simple PROC PRINT step. Figure 43.1 on page 864 illustrates the simplest kind of report that you can produce with PROC REPORT. The statements that produce the report follow. The data set and formats that the program uses are created in Example 1 on page 962. Although the WHERE and FORMAT statements are not essential, here they limit the amount of output and make the values easier to understand.
libname proclib ' SAS-data-library '; options nodate pageno=1 linesize=64 pagesize=60 fmtsearch=(proclib); proc report data=grocery nowd; where sector='se'; format sector $sctrfmt. manager $mgrfmt. dept $deptfmt. sales dollar10.2; run;
The report in Figure 43.2 on page 865 uses the same observations as those in Figure 43.1 on page 864. However, the statements that produce this report
order the rows by the values of Manager and Department
create a default summary line for each value of Manager
create a customized summary line for the whole report. A customized summary lets you control the content and appearance of the summary information, but you must write additional PROC REPORT statements to create one.
For an explanation of the program that produces this report, see Example 2 on page 965.
The summary report in Figure 43.3 on page 865 contains one row for each store in the northern sector. Each detail row represents four observations in the input data set, one observation for each department. Information about individual departments does not appear in this report. Instead, the value of Sales in each detail row is the sum of the values of Sales in all four departments. In addition to consolidating multiple observations into one row of the report, the statements that create this report
customize the text of the column headers
create default summary lines that total the sales for each sector of the city
create a customized summary line that totals the sales for both sectors.
For an explanation of the program that produces this report, see Example 4 on page 971.
The summary report in Figure 43.4 on page 866 is similar to Figure 43.3 on page 865. The major difference is that it also includes information for individual departments. Each selected value of Department forms a column in the report. In addition, the statements that create this report
compute and display a variable that is not in the input data set
double-space the report
put blank lines in some of the column headers.
For an explanation of the program that produces this report, see Example 5 on page 974.
The customized report in Figure 43.5 on page 867 shows each manager s store on a separate page. Only the first two pages appear here. The statements that create this report create
a customized header for each page of the report
a computed variable (Profit) that is not in the input data set
a customized summary with text that is dependent on the total sales for that manager s store.
For an explanation of the program that produces this report, see Example 9 on page 986.
The report in Figure 43.6 on page 868 uses customized style elements to control things like font faces, font sizes, and justification, as well as the width of the border of the table and the width of the spacing between cells . This report was created by using the HTML destination of the Output Delivery System (ODS) and the STYLE= option in several statements in the procedure.
For an explanation of the program that produces this report, see Example 16 on page 1009. For information on ODS, see Output Delivery System on page 32.