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"))
IsNothing() 始终 returns true 或 false 并且 IIF() 始终提供 true 或 false。所以“=True”是多余的。
IIf(IsNothing(Sum(Fields!Total.Value, "AutoDeliveryCount")), 0, ...
工作方式完全相同。
如果Sum(Fields!Total.Value, "AutoDeliveryCount")
returns0呢?由于 IsNothing() 和 0 的处理方式相同,因此在这两种情况下都将返回 0。字段是否为空或是否包含数字 0 没有任何区别。您将如何处理 0 和无的区别?
我看过几个例子,但我就是想不通。
我的表达式对数据集 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"))
IsNothing() 始终 returns true 或 false 并且 IIF() 始终提供 true 或 false。所以“=True”是多余的。
IIf(IsNothing(Sum(Fields!Total.Value, "AutoDeliveryCount")), 0, ...
工作方式完全相同。如果
Sum(Fields!Total.Value, "AutoDeliveryCount")
returns0呢?由于 IsNothing() 和 0 的处理方式相同,因此在这两种情况下都将返回 0。字段是否为空或是否包含数字 0 没有任何区别。您将如何处理 0 和无的区别?