使用Switch报告服务表达式

时间:2011-11-03 14:28:41

标签: sql-server reporting-services

我无法使用此表达式处理报告服务。我必须使用IF和ELSE IF语句。感谢您的任何建议。

= Switch( IsNothing(Fields!field_date.Value),"", Fields!set_flag.Value=1,"Declined", Fields!field_name.Value) 

这是我想要做的。

If(IsNothing(Fields!field_date.Value)) Then "";

ElseIf Fields!set_flag.Value=1 Then "Declined";

Else Fields!field_name.Value

2 个答案:

答案 0 :(得分:7)

SSRS不使用VB运行时库吗?在这种情况下,switch语句为documented here并声明您必须传入偶数数量的元素。如果这是您的问题,您可能会获得{{ 1}}抛出。

如果您想要一个默认的返回值,您必须添加一个始终计算为true的虚拟条件:

ArgumentException

答案 1 :(得分:0)

我会使用像gbn建议的代码块。它会更容易阅读。以下是Microsoft如何在Reporting Services中使用的代码块:http://msdn.microsoft.com/en-us/library/ms156028%28v=sql.100%29.aspx

如果您不想使用代码块,则可以在表达式中链接IIF语句。看看你的例子,它就像是

=IIF(IsNothing(Fields!field_date.Value),"",IIF(Fields!set_flag.Value=1,"Declined",Fields!field_name.Value)

任何超过2个IIF或任何比返回值更复杂的东西,那么我肯定会去代码块。否则你只是让那些必须在你之后维护报告的人更糟糕。