我有以下错误,我的表达无法理解。
=IIF(IsNothing(Fields!month.Value),"6mr",LEFT(Format(DateValue(MonthName(Right(Fields!month.Value, 2))
+ "," +
Left(Fields!month.Value,4)), "Y"),3) + " '" + RIGHT(Format(DateValue(MonthName(Right(Fields!month.Value, 2))
+ "," +
Left(Fields!month.Value,4)), "Y"),2))
没有IsNothing元素,这种方法很有效。
我已经测试了IsNothing元素,它适用于以下情况:
=IIF(IsNothing(Fields!month.Value),"6mr",0).
帮助纠正非常感谢。
答案 0 :(得分:2)
您正在体验这个"问题"因为Reporting Services会评估Iif
。
这不是一个真正的问题,它是设计的,请参阅此technet文章了解更多详情:
是的,根据设计,SSRS评估True和&甚至虚假陈述 虽然条件不满意,但如果出现错误 是不对的。
现在,为了让你的表达能够发挥作用,你必须考虑Fields!month.Value
即使在表达的错误部分也是如此。
所以在你的表达式中,你可以直接替换
Fields!month.Value
通过
Iif(IsNothing(Fields!month.Value), "1", Fields!month.Value)
以下是此修复程序的表达式:
=Iif(IsNothing(Fields!month.Value),"6mr",Left(Format(DateValue(MonthName(Right(Iif(IsNothing(Fields!month.Value), "1", Fields!month.Value), 2))
+ "," +
Left(Iif(IsNothing(Fields!month.Value), "1", Fields!month.Value),4)), "Y"),3) + " '" + Right(Format(DateValue(MonthName(Right(Iif(IsNothing(Fields!month.Value), "1", Fields!month.Value), 2))
+ "," +
Left(Iif(IsNothing(Fields!month.Value), "1", Fields!month.Value),4)), "Y"),2))
如果要减少表达式长度,也可以创建自定义函数或使用变量。