The Report Processor component retrieves the report definition from the report server database and combines it with data from the data source for the report. If an on-demand report is requested, the report definition and the data are sent to a rendering extension to be transformed into a usable format, such as HTML. If a report snapshot is generated, the processed report is stored in the report server database for later retrieval.
The following table describes the basic kinds of requests that Report Processor handles.
|User runs an on-demand report.||Report Processor retrieves the report definition, sends the request for data to a data processing extension, combines the report definition with the data, sends it to a rendering extension, and returns the rendered report.|
|Scheduling and Delivery Processor runs a scheduled report (cache or snapshot), or a user takes a snapshot on demand.||Report Processor retrieves the report definition, sends the request for data to a data processing extension, combines the report definition with the data, and stores the information in the report server database.|
|User views a cached report or snapshot.||Report Processor retrieves the cached report or snapshot, sends it to a rendering extension, and returns the rendered report.|
A report is processed in two stages: execution and rendering. During the execution stage, the report data from the data processing extension is combined with the report layout from the report definition. Data is processed by row for each section. Sections include the report header and footer, group headers and footers, and detail. Aggregate functions and expressions are also processed at this time.
During the rendering stage, the rendering extension paginates the report and processes expressions that cannot be processed during the execution stage. The report is then rendered in the appropriate device-specific format. For more information, see Managing Report Processing.