0

在 SSRS 2012 中使用 iif() 语句时,我遇到了一个非常奇怪的错误。

我试图选择在月份值不等于 99 时打印月份名称,当它等于 99 时,我想打印字符串“YTD”我试图使用以下语句来实现这一点:

=iif(Fields!Month.Value = 99, "YTD", MonthName(Fields!Month.Value, true) )

每当我尝试使用此 MonthName() 函数时,月份都会正确打印,但 99 字段返回为“#error”。当我将月份保留为整数或只是输入一个虚拟字符串时,此语句可以正常工作,并且我已经尝试将 MonthName() 转换为字符串(例如“cStr(MonthName())”)。

有任何想法吗???

4

2 回答 2

2

要回答我自己的问题/引用我在微软论坛上从 Syed Qazafi Anjum 收到的另一个答案:

=iif(Fields!Month.Value=99,"Y.T.D",monthname(iif(Fields!Month.Value<=12,Fields!Month.Value,12),true))

取自: http ://social.msdn.microsoft.com/Forums/en-US/sqlreportingservices/thread/d484d8d4-3809-4850-ada6-8cac1239bfce/

于 2012-07-18T13:03:52.230 回答
1

MonthName即使月份数为 99,该函数也会被评估。使用switch而不是iif解决此问题。

于 2012-07-17T21:40:16.083 回答