SSRS如何使用If和format语句一起用于负值

时间:2016-09-06 11:38:55

标签: if-statement reporting-services formatting ssrs-2008 reporting

我试图将秒数显示为分钟。有时我得到的价值是负面的。这会导致问题。我想检查值是否为负值,以便我可以指定默认值。但我不能让If和Format语句一起工作。

这是我在不转换成分钟的情况下显示值所做的工作:

=Fields!RateLossSeconds.Value

enter image description here

这是我将秒转换为分钟所做的工作:

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

enter image description here

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

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

正如您所看到的,if语句无法正常工作。

enter image description here

1 个答案:

答案 0 :(得分:1)

#Error是由于SSRS在IIF逻辑流之前评估整个=IIF( Fields!RateLossSeconds.Value < 0, 0, Format( DateAdd("s",IIF(Fields!RateLossSeconds.Value<0,0,Fields!RateLossSeconds.Value),"00:00"), "mm:ss" ) ) 表达式引起的,因此即使您正在处理负值,它也会检查两个分支的错误。

尝试使用此表达式:

{{1}}

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

如果有帮助,请告诉我。