我正在使用SSRS 2008R2来创建报告。数据源是来自webservice的xml响应。如果没有数据,我想返回空字符串,但如果有数据行,我想将其转换为另一种日期时间格式。
我正在使用像这样的IIF结构:
=IIF
(
LEN(Fields!DateOfReg.Value) <= 0,
"",
FORMAT(CDATE(DateTime.ParseExact(Fields!DateOfReg.Value,"M/d/yyyy hh:mm:ss tt",
System.Globalization.CultureInfo.InvariantCulture)), "dd.MM.yyyy HH:mm:ss")
)
如果没有数据,它会在文本框和输出中显示 #Error :
字符串未被识别为有效的DateTime
这是否意味着IIF构造计算TRUE和FALSE语句?如果是这样,如果没有数据,如何使其短路并且不转换行?
答案 0 :(得分:1)
尝试以下方法:
=IIF
(
Fields!DateOfReg.Value= "",
"",
Datevalue(Cstr(Fields!DateOfReg.Value))
)
答案 1 :(得分:0)
是的,你是对的 - IIF计算两个陈述。但是你可以使用IIF将空字符串转换为“Nothing”,然后尝试格式化,如下所示:
Format(IIF(Fields!DateOfReg.Value = "", Nothing, Fields!DateOfReg.Value), "yyyy/MM/dd")
如果传递空字符串,则格式函数会导致异常,但如果传递“Nothing”,则返回空字符串。