【问题标题】:SSRS report shows #value ErrorSSRS 报告显示 #value 错误
【发布时间】:2016-01-20 09:26:55
【问题描述】:

我正在使用表达式

=IIF(sum(Fields!Target.Value)=0,0,
(sum(Fields!Achievement.Value)/sum(Fields!Target.Value))*100)

但我想要divide(200/0)*100 ="NAN",但它告诉我#Value Error

【问题讨论】:

  • 你的问题很不清楚。
  • 您是从头开始构建的,还是使用了内置的表达式创建器。此外,您实际上并没有提出问题。
  • 你不能除以 0。

标签: reporting-services ssrs-2008 ssrs-2008-r2


【解决方案1】:

如果您想要另一个条件,您可以在 IIF 语句中嵌套 IIF,这就是您所要求的??

【讨论】:

  • 我认为这应该在评论中。
【解决方案2】:

你可以在表达式中使用嵌套的 IIF 来解决这个问题,但对我来说这很混乱。

这是使用报告代码解决问题的另一种方法。

在菜单中转到报告 > 报告属性 > 代码并粘贴下面的代码

Public Function Divider (ByVal numerator As double, ByVal denominator As double)
If IsNothing(denominator) Or denominator = 0
  Return "NaN" 
Else
  Return (numerator/denominator) * 100
End If
End Function

现在你可以像这样在你的表达式中使用它

=Code.Divider(sum(Fields!Achievement.Value),sum(Fields!Target.Value))

注意:如果您想换一种方式,可以将“NaN”更改为 0。

参考:http://williameduardo.com/development/ssrs/ssrs-divide-by-zero-error/

更新:

我注意到在您的图片中,您在 Variance 列中的输出不是 0 而是 0.00。那只是SSRS中的一种格式吗?或者那是实际的输出?如果0.00 是实际输出,那么您应该在我的答案的报告代码中使用If IsNothing(denominator) Or denominator = 0.00。也可能是你表达的问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-06-22
    • 2021-06-20
    • 2014-11-19
    • 2013-02-04
    • 2023-03-07
    • 2015-11-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多