Crystal reports 如何在Crystal Reports的详细信息部分说明公式的执行顺序

Crystal reports 如何在Crystal Reports的详细信息部分说明公式的执行顺序,crystal-reports,Crystal Reports,我正在编写一份报告,其中包含使用同一变量的多个公式。所有公式均用于报告的详细信息部分。我注意到公式执行的顺序导致总数不正确。我通过使用ExecuteAfter()函数修复了这个问题。但这让我很好奇Crystal用什么规则来决定何时执行公式 我发现这个网站的信息非常丰富,但我可以说,我报告中的所有公式都是在Crystal Reports Processing EnginePass#1的“计算重复公式”阶段执行的。我想知道在那个阶段,Crystal是如何决定执行的 为了使问题更清楚,请: 如果我有一

我正在编写一份报告,其中包含使用同一变量的多个公式。所有公式均用于报告的详细信息部分。我注意到公式执行的顺序导致总数不正确。我通过使用ExecuteAfter()函数修复了这个问题。但这让我很好奇Crystal用什么规则来决定何时执行公式

我发现这个网站的信息非常丰富,但我可以说,我报告中的所有公式都是在Crystal Reports Processing EnginePass#1的“计算重复公式”阶段执行的。我想知道在那个阶段,Crystal是如何决定执行的

为了使问题更清楚,请:
如果我有一级方程式,二级方程式和三级方程式。公式A将变量A设置为数据库值。公式2将变量B设置为一个值。公式3将变量C设置为A+B。所有变量都在报告的详细信息部分。Crystal如何决定执行它们的顺序?显然,我希望公式3在公式1和公式2之后执行。

您可以使用While…Records命令集执行操作。例如,有WhileReadingRecords、beforreadingrecords和WhilePrintingRecords。这些允许您控制查询的评估过程和工作流。有关更多详细信息,请参阅“评估时间”部分。另一个选项是将公式1和2放在报表标题或报表组标题1中,然后在详细信息部分的公式3之前执行。我认为将公式1和2放在前面不起作用,因为我需要为每条记录设置变量。但是,您提供的链接确实暗示了答案。由于公式1和公式2包含对数据库字段的引用,因此在读取记录时对它们进行求值。公式3不直接包含任何数据库字段,因此默认情况下Crystal会在读取记录之前对其进行计算。