SSRS表达式 - 如果为null值,则返回0而不是空白

时间:2015-01-30 18:36:01

标签: reporting-services ssrs-2008

我见过几个例子,但我无法弄清楚我的情况。 我的表达式对来自数据集Total的字段AutoDeliveryCount的所有值进行求和。我需要引用数据集,因为我在报告中使用了几个Total字段。如果存储过程返回null,我如何让表达式返回0而不是空白?

=Sum(Fields!Total.Value, "AutoDeliveryCount")

如果我需要提供更多信息,请告诉我。

6 个答案:

答案 0 :(得分:11)

=IIf(IsNothing(Sum(Fields!Total.Value, "AutoDeliveryCount"))=True, 0, Sum(Fields!Total.Value, "AutoDeliveryCount"))

答案 1 :(得分:1)

如果要在整数列中显示0。写Round(Fields!yourfield.Value,2)显示为0.00。如果你的领域是空的。

答案 2 :(得分:0)

另一种选择可能是使用相关单元格的格式属性。例如,如果要显示整数,可以将其格式化为:

#,##0

如果值为null / empty,则显示0。

答案 3 :(得分:0)

我在2017年尝试了这个公式,对我有用:

=IIF(Sum(Fields!Total.Value)=Nothing, 0, Sum(Fields!Total.Value, "AutoDeliveryCount"))

答案 4 :(得分:0)

简单地:

=Sum(Fields!Total.Value, "AutoDeliveryCount") + 0

答案 5 :(得分:0)

从标记的解决方案中:
=IIf(IsNothing(Sum(Fields!Total.Value, "AutoDeliveryCount"))=True, 0, Sum(Fields!Total.Value, "AutoDeliveryCount"))

  1. IsNothing()始终返回true或false,并且IIF()始终传递true或false。因此,“ = True”是多余的。 IIf(IsNothing(Sum(Fields!Total.Value, "AutoDeliveryCount")), 0, ... 工作原理完全相同。

  2. 如果Sum(Fields!Total.Value, "AutoDeliveryCount")返回0怎么办?由于IsNothing()和0的处理方式相同,两种情况下都将返回0。字段为空还是包含数字0并没有什么区别。您将如何处理0和什么都没有之间的差异?