SSRS 表达式 - 如果为空值则 return 0 而不是空白

SSRS expression - If null value then return 0 instead of blank

我看过几个例子,但我就是想不通。 我的表达式对数据集 AutoDeliveryCount 中字段 Total 的所有值求和。我需要引用数据集,因为我在报告中使用了几个 Total 字段。如果存储过程 return 为 null,我怎样才能让我的表达式 return 0 而不是空白?

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

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

#,##0

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

如果要在整数列中显示 0。写入 Round(Fields!yourfield.Value ,2) 以显示为 0.00 。如果您的字段返回为空。

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

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

简单地说:

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

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

  1. IsNothing() 始终 returns true 或 false 并且 IIF() 始终提供 true 或 false。所以“=True”是多余的。 IIf(IsNothing(Sum(Fields!Total.Value, "AutoDeliveryCount")), 0, ... 工作方式完全相同。

  2. 如果Sum(Fields!Total.Value, "AutoDeliveryCount")returns0呢?由于 IsNothing() 和 0 的处理方式相同,因此在这两种情况下都将返回 0。字段是否为空或是否包含数字 0 没有任何区别。您将如何处理 0 和无的区别?