【问题标题】:Visual Studio ReportViewer Sum not working on decimal fieldsVisual Studio ReportViewer Sum 不适用于十进制字段
【发布时间】:2017-11-13 20:22:51
【问题描述】:

我在 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")

检查的字段是布尔值而不是空值
字段 TotalBedrag 是整数而不是 null
字段 TotalAantalKM 是十进制且不为空

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

如果我写

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

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

【问题讨论】:

    标签: c# report-viewer2012


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-12-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-07-02
        • 2019-08-15
        相关资源
        最近更新 更多