SSRS 2008表达

时间:2014-05-04 05:52:47

标签: sql sql-server reporting-services ssrs-2008

我试图在SSRS 2008表达中写IIF语句,但一次只能运行一个部分......另一部分给出错误......这就是写作......

=IIF(Parameters!Month.Value = 1,  " "& CStr(MonthName(Parameters!Month.Value +11)) &" " ,  "ABC")

当我运行这个并且Month参数的值= 1然后它运行正常但是当value <> 1然后它给出#Error ...错误部分没有执行...我想有些事情双引号错了......

即使我改变了真假集的位置......结果也一样......如果我只是写得像......

=IIF(Parameters!Month.Value = 1, "CDE" , "ABC")

然后一切运行正常......

请帮忙......

3 个答案:

答案 0 :(得分:0)

看起来像元数据的假设不匹配。即使你在呼唤CStr(),它也可能就在那方面。尝试在CStr()中包装false语句以及删除“”&amp;和&amp; “”看看会发生什么。那是我开始的地方。

答案 1 :(得分:0)

报价没有问题

月份仅在1到12之间。根据您的等式参数!Month.Value 只能来自 -10到1

如果提供大于1或小于-10的任何值或任何十进制值,则表达式将出错。您需要检查Parameters!Month.Value中传递的所有值或更改表达式。

答案 2 :(得分:0)

解决了它.....

= IIF(参数!Month.Value = 1,
MonthName((((参数!Month.Value-1)+11)Mod 12)+ 1)+&#34; - &#34; + CStr(参数!Year.Value - 1),                                   MonthName((((参数!Month.Value-1)+11)Mod 12)+ 1)+&#34; - &#34; +参数!Year.Value)