具有不同结果的相同公式字段

问题描述 投票:0回答:1

我有一份水晶报告,用于跟踪12个月内每月库存物品的销售情况,然后显示每月的平均销售量。我有两个相同的公式字段,每个字段都有唯一的名称,但代码相同。第一个公式字段为每个库存项目返回零,而第二个公式字段返回12个月期间正确计算的平均值。两个公式字段都放在报表的同一部分中。

这是两个公式字段的代码。

WhilePrintingRecords;
Shared NumberVar num;
Shared NumberVar total;
Shared NumberVar result;
If num = 0 Then result := 0 else result := total / num;
result;

我的报告目前正在工作,因为第二个公式字段按预期运行。在这一点上,我想了解为什么第一个公式字段不起作用。

我尝试删除分母中检测到零的逻辑。当删除此逻辑时,工作电流的公式将继续有效。破碎的公式会抛出“除以零”错误。我也很惊讶,工作公式继续使用此逻辑被删除,因为我的数据集中的行在某些时段具有NULL值。这是由于报告在报告第1个期间后的一段时间内添加的新库存项目的报告。例如,如果报告涵盖2018年期间1到12(1月到12月),并且在期间5期间将新项目添加到库存,则应为期间1到4返回NULL值,并为期间5返回数值到12个周期的平均值不应包括具有NULL值的周期。为了实现这一点,我使用一个变量来计算项目包含数字数据的时间段,并在计算平均值时使用此计数器作为分母。

我创建了其他公式字段来输出每个变量的值并将它们放在报表中。所有变量都具有我期望它们在包含它们的部分的每次迭代时保持的值。

谁能帮助我理解为什么这两个相同的公式字段各自输出不同的结果?

crystal-reports
1个回答
0
投票

更改

Shared NumberVar result

Local NumberVar result

使用Shared,一个公式中的值更改会影响另一个公式中的值更改。

© www.soinside.com 2019 - 2024. All rights reserved.