Visual Studio ReportViewer Sum不用于十进制字段

时间:2015-01-30 12:08:12

标签: c# report-viewer2012

我在Reportviewer中有一个简单的报告,页脚上有2个复选框,应该显示一个总和。 然而,总和应该是有条件的:
只有当字段" Checked"是真的,必须包含在总和中。

对于第一个字段,这可以正常工作,但对于第二个字段,我在报告上得到#error。

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

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

Field Checked是布尔值而不是null 字段TotaalBedrag是整数而不是null 字段TotaalAantalKM是十进制而不是空

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

如果我写

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

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

2 个答案:

答案 0 :(得分:2)

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

= SUM(IIF(字段!Checked.Value,cdbl(字段!TotaalAantalKM.Value),0.00))

答案 1 :(得分:0)

对于十进制值,您必须使用" 0D"而不是" 0"。 所以你的表达将成为:

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