繁体   English   中英

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

[英]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分支中是否存在负值。 在这种情况下,我将负值替换为零,但您可以使用任何想要的值。

让我知道是否有帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM