0

我在 Reportviewer 中有一个简单的报告,页脚上有 2 个复选框,应该显示一个总和。然而,总和应该是有条件的:
只有当“已检查”字段为真时,该值才必须包含在总和中。

对于第一个字段,这没有问题,但对于第二个字段,我在报告中得到#error。

第一个字段是整数字段,第二个字段是十进制字段。这是我在两个文本框的 value 属性中使用的表达式:

=Sum(IIf(Fields!Checked.Value, Fields!TotaalBedrag.Value, 0), "DataSet1")
=Sum(IIf(Fields!Checked.Value, Fields!TotaalAantalKM.Value, 0), "DataSet1")

Checked 字段为布尔值且非空
字段 TotaalBedrag 为整数且非空
字段 TotaalAantalKM 为十进制且非空

字段 TotaalBedrag 的总和是正确的,但字段 TotaalAantalKM 的总和返回 #error

如果我写

=Sum(Fields!TotaalAantalKM.Value, "DataSet1") 

比我得到一个正确的总和,所以我想这个字段没有错。这两个字段之间的唯一区别是一个是 int,另一个是十进制。我可能需要为十进制字段做一些特别的事情吗?

4

2 回答 2

2

'TotaalAantalKM' 列的数据类型是 Decimal,因此您需要将默认值转换为 0.00 或将该列转换为 double

=SUM(iif(Fields!Checked.Value,cdbl(Fields!TotaalAantalKM.Value),0.00))

于 2015-01-30T12:25:10.073 回答
0

对于十进制值,您必须使用“0D”而不是“0”。所以你的表达会变成:

=Sum(IIf(Fields!Checked.Value, Fields!TotaalAantalKM.Value, 0D), "DataSet1")
于 2017-11-13T12:22:51.837 回答