最终结果将 不会 总是相同,并且省略评估时间函数有时会导致错误的结果。例如,假设您有一个分组的报告,并且您正在尝试使用变量为这些组计算简单的小计。假设您要重置组标题中的变量,并在页脚中显示该变量,同时通过以下方式在详细信息部分中对其进行更新:
numbervar subtotal;
subtotal := subtotal + {table.numericvalue}
在读取记录时以及记录以可预测,分组和排序的顺序 之前 ,Crystal会评估此公式。直到第二遍,而whileprintingrecords通过,才对记录进行了分组和排序。这就是为什么在此阶段进行组选择的原因。
这只是一个例子,但是有许多种方法可以通过省略评估时间函数来破坏报告,这主要与使用变量有关(至少我能想到)。这是有关Crystal多次通过的详细信息的绝佳资源:Crystal Reports Engine的多次通过报告过程