SSRS报告语法

时间:2017-08-21 17:58:06

标签: reporting-services ssrs-2008 ssrs-2012

使用以下过滤器获取SSRS报告。

表达:

= If((参数!GroupA.Value()在Fields!Related_GroupA.Value中)或(参数!GroupB.Value()在Fields!Related_GroupB.Value中)或(参数!GroupA.Value()In Fields!GroupA.Value)或(参数!GroupB.Value()在Fields!GroupB.Value))

运营商:

=

价值:

相信“If语句”的语法并使用“in”和“Or”可能不正确。如果在report参数中选择的值出现在两个位置之一中,则需要返回结果。 (例如,如果参数!GroupA位于Fields!Related_GroupA或Fields!GroupA中)

当前错误:

'如果'运算符需要两个或三个操作数。

1 个答案:

答案 0 :(得分:0)

  

'如果'运算符需要两个或三个操作数。

您的声明中有“if”部分,但如果返回true或false,则不指定要执行的操作。另外,使用“iif”而不是“if。”

=iif(
(Parameters!GroupA.Value In Fields!Related_GroupA.Value) Or 
(Parameters!GroupB.Value In Fields!Related_GroupB.Value) Or 
(Parameters!GroupA.Value In Fields!GroupA.Value) Or 
(Parameters!GroupB.Value In Fields!GroupB.Value), <Value if true>, <Value if false>)

如果你只想返回true或false,那么你不需要使用iif运算符,因为“=”运算符返回一个布尔值(True / False)。

如果是这种情况,那么您只需使用:

=(Parameters!GroupA.Value = Fields!Related_GroupA.Value) Or 
 (Parameters!GroupB.Value = Fields!Related_GroupB.Value) Or 
 (Parameters!GroupA.Value = Fields!GroupA.Value) Or 
 (Parameters!GroupB.Value = Fields!GroupB.Value)

请注意,我将“In”更改为“=”,因为您没有可以在ssrs表达式中使用的IN运算符,但有一些解决方法。请参阅herehere