我正在使用 Business Intelligence 2008 在 SSRS 中创建一个表。我有一个日期(作为字符串)作为表中使用的值之一。该值可能有一个表示日期的字符串,也可能为空。如果它有一个值,我希望该值以不同的方式格式化。现在,我有一个显示它的单元格的表达式:
=IIf(Fields!MyDate.Value = Nothing, "", Format(CDate(Fields!MyDate.Value), "dd-MM-yyyy"))
如果该字段具有值,则此方法非常有效。但是,当该字段为空时,该单元格将填充为#Error
。如果我有的话,这就有意义了Format
功能,但似乎IIf
应该阻止它尝试使用空白值运行它。我用这个表达式测试了它:
=IIf(Fields!MyDate.Value = Nothing, "No value", "Value")
...果然,空白值输入了语句的正确部分并打印出“无值”。我不明白为什么表达式的第二部分(未使用)会导致错误。有没有办法重写这个不会导致错误?谢谢
编辑:正如我在评论中提到的,我还尝试了这样的 switch 语句:
=Switch(Fields!MyDate.Value = Nothing, "", Fields!MyDate.Value <> Nothing, Format(CDate(Fields.MyDate.Value), "dd-MM-yyyy"))
然而,这返回了#Error
也适用于空白值。
编辑关于可能的重复:请不要将其标记为询问 IIf 是否短路的问题的重复。我看了那里,它问了一个不同的问题,但没有给出适合我需要的答案。