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 分支中是否有负值。
在这种情况下,我将负值替换为零,但您可以使用任何您想要的值。
如果有帮助请告诉我。
我正在尝试将秒显示为分钟。有时我得到的值是负数。这会导致问题。我想检查该值是否为负数,以便我可以分配一个默认值。但是我无法让 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 分支中是否有负值。 在这种情况下,我将负值替换为零,但您可以使用任何您想要的值。
如果有帮助请告诉我。