Crystal Reports  

Report Processing Model

Crystal Reports uses a three-pass reporting method to generate reports. A pass is a process that Crystal Reports uses each time the data is read and manipulated. Depending on the complexity of the report Crystal Reports may make 1, 2, or 3 passes over the data. This feature allows for complex reporting and formula manipulation.

Pre-Pass 1

When previewing a report, the first elements to be evaluated are "constant" formulas. Constant formulas are those that have a constant value for the entire report. They do not change from record to record. For example, 100* 30 would be a constant formula. Constant formulas are evaluated at the beginning of the print generation process and are never evaluated again. This process is known as "BeforeReadingRecords." If you were to place a constant formula field (i.e., 100*30) in the Details section, the result would be 3000 for each record displayed.

Pass 1

After the "BeforeReadingRecords" process has taken place, Crystal Reports begins reading the database records. During the record reading process, the following will occur:

Pre-Pass 2

During Pre-Pass 2, Crystal Reports orders the groups in the report for Top/Bottom N or Hierarchical Grouping. The records are not read in this process, instead Crystal Reports only looks at group instances from Pass 1, and takes the Top N as appropriate, or orders the groups based on the Hierarchical Grouping settings specified.

Pass 2

Crystal Reports enters the second pass through the data to format pages. The pages are formatted on demand. This means that Crystal Reports will not format a page until it is requested by the user, or it is required for the total page count in Pass 3.

During page formatting, Crystal Reports does the following:

Pass 3

In the third, and final pass, the total page count is determined. This applies to reports that use the total page count, or Page N of M, special variable fields.

See Also

Designing New Reports | Performing Report Calculations