我无法使用此表达式处理报告服务。我必须使用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
答案 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或任何比返回值更复杂的东西,那么我肯定会去代码块。否则你只是让那些必须在你之后维护报告的人更糟糕。