Crystal Reports  

报表处理模型

Crystal Reports 使用三次传递建立报表方法来生成报表。传递是 Crystal Reports 每次读取和操作数据时所使用的过程。根据报表的复杂性,Crystal Reports 可将数据传递 1 次、2 次或 3 次。这种功能使得可以处理复杂的报表和公式。

第 1 次预传递

预览报表时,被求值的第一批元素为“常量”公式。常量公式是含有整个报表的常量值的公式。它们对每个记录都是一样的。例如,100* 30 是常量公式。常量公式在打印生成过程开始时求值,以后不再求值。该过程称为“BeforeReadingRecords”。如果将常量公式字段(如 100*30)放入“详细资料”部分,则结果是对于每个记录均显示 3000。

第 1 次传递

在“BeforeReadingRecords”过程发生后,Crystal Reports 开始读取数据库记录。在记录读取过程中,将发生下列事项:

第 2 次预传递

在第 2 次预传递过程中,Crystal Reports 将报表中的组按“最前 N 个/最后 N 个”或按“层次分组”排序。Crystal Reports 在该过程中不读取记录,而是只查看来自第 1 次传递的组实例,并取“最前 N 个”作为适当的顺序,或者根据指定的“层次分组”设置对组排序。

第 2 次传递

Crystal Reports 从数据到格式化页面开始进入第 2 次传递。根据要求格式化页面。这表示直到用户请求,或为满足第 3 次传递的总页数要求时,Crystal Reports 才格式化页面。

在页面格式化过程中,Crystal Reports 做下列工作:

第 3 次传递

在第 3 次、也是最后一次传递中决定总页数。这一步适用于使用总页数或“第 N 页,共 M 页”等特殊变量字段的报表。

另请参见

设计新报表 | 执行报表计算