SSRS 如何将 If 和格式语句一起用于负值

SSRS how to use If and format statement together for negative values

我正在尝试将秒显示为分钟。有时我得到的值是负数。这会导致问题。我想检查该值是否为负数,以便我可以分配一个默认值。但是我无法让 If 和 Format 语句一起工作。

这是我在不转换为分钟的情况下显示值的方法:

=Fields!RateLossSeconds.Value

这是我将秒转换为分钟的方法:

=Format(DateAdd("s", Fields!RateLossSeconds.Value, "00:00"), "mm:ss")

这是我用来添加条件的代码:

=IIF(Fields!RateLossSeconds.Value < 0, 0, Format(DateAdd("s", Fields!RateLossSeconds.Value, "00:00"), "mm:ss"))

如您所见,if 语句无法正常工作。

#Error 是由于 SSRS 在 IIF 逻辑流之前评估整个 IIF() 表达式引起的,因此即使您正在处理负值,它也会检查两个分支是否有错误。

尝试使用这个表达式:

=IIF(
  Fields!RateLossSeconds.Value < 0, 0,
  Format(
    DateAdd("s",IIF(Fields!RateLossSeconds.Value<0,0,Fields!RateLossSeconds.Value),"00:00"),
    "mm:ss"
  )
)

它检查第一个 IIF() 的 False 分支中是否有负值。 在这种情况下,我将负值替换为零,但您可以使用任何您想要的值。

如果有帮助请告诉我。