【问题标题】:RDLC - Replace #Error with empty stringRDLC - 用空字符串替换#Error
【发布时间】:2016-01-15 17:27:25
【问题描述】:

我有一个Tablix,我在其中对总数进行分组。但是,我的列数据有时可以是 stringintdecimal 等......这取决于调用的存储过程。注意:这是一个动态过程。

设置 DataTable 值

var queryResult = typeof(MethodsToRdlc).GetMethod(conf.SelectMethod).Invoke(new MethodsToRdlc(), new object[] { });
DataTable result = queryResult.ToDataTable();

所以,当数据是 decimalint其他数值类型 时,我想在我的 Total 中汇总所有数据。为此,我有这个可爱的表达方式:

总表达

=Replace(Format(Sum(CDbl(Replace(Fields!DataColumn8.Value, ",", "."))), "F"), ".", ",")

但是,当数据类型不是数字时,我会收到 #Error。如何将 #Error 替换为空字符串(例如)?

我已经尝试过了:

=IIf(IsNumeric(Fields!DataColumn8.Value), Replace(Format(Sum(CDbl(Replace(Fields!DataColumn8.Value, ",", "."))), "F"), ".", ","), "")

还有这个

=IIf(IsNumeric(Replace(Fields!DataColumn8.Value, ",", ".")), Replace(Format(Sum(CDbl(Replace(Fields!DataColumn8.Value, ",", "."))), "F"), ".", ","), "")

还有这个

=IIf(CDbl(Fields!DataColumn8.Value) = 0, "", Replace(Format(Sum(CDbl(Replace(Fields!DataColumn8.Value, ",", "."))), "F"), ".", ","), "")

还有这个

=IIf(CDbl(Replace(Fields!DataColumn8.Value, ",", ".")) = 0, "", Replace(Format(Sum(CDbl(Replace(Fields!DataColumn8.Value, ",", "."))), "F"), ".", ","), "")

还有这个

=IIf(IsNothing(IsNumeric(Replace(Fields!DataColumn8.Value, ",", "."))), "", Replace(Format(Sum(CDbl(Replace(Fields!DataColumn8.Value, ",", "."))), "F"), ".", ","))

没有任何效果...总是显示 #Error

【问题讨论】:

    标签: reporting-services report reporting rdlc dynamic-reports


    【解决方案1】:

    选项 1: SSRS 不会短路iif。即使传递了字符串值,它也会评估真假部分。这就是它在您的表达式中导致#Error 的原因。

    用这样的东西更新真子句

    Fields!DataColumn8.ValueIIF(IsNumeric(Fields!DataColumn8.Value),Fields!DataColumn8.Value,0)

    =IIf(IsNumeric(Fields!DataColumn8.Value)
          , Replace(Format(Sum(CDbl(Replace(
           IIF(IsNumeric(Fields!DataColumn8.Value),Fields!DataColumn8.Value,0.0)
          , ",", "."))), "F"), ".", ","), "")
    

    如果仍然抛出错误,请尝试使用 CSTRIIF 部分转换您的 true 子句以将其替换为 0。

    选项 2:在 SQL Query 中处理。

    【讨论】:

    • 您使用 IsNumeric 两次还是一次?我的表达式在 true 子句中有一个额外的 Isnumeric 来处理 SSRS 的非短路。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-11-12
    • 2012-08-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多