s-s-rS 报告语法

Posted

技术标签:

【中文标题】s-s-rS 报告语法【英文标题】:s-s-rS Reporting Syntax 【发布时间】:2017-08-21 17:58:06 【问题描述】:

对 s-s-rS 报告使用以下过滤器。

表达式:

=If((Parameters!GroupA.Value() In Fields!Related_GroupA.Value) 或 (Parameters!GroupB.Value() In Fields!Related_GroupB.Value) 或 (Parameters!GroupA.Value() In Fields!GroupA.Value) 或 (Parameters!GroupB.Value() In Fields!GroupB.Value))

操作员:

=

价值:

是的

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

当前错误:

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

【问题讨论】:

有点不清楚你在问什么。您遇到什么错误? 已编辑帖子以显示错误。报告当前未运行。 【参考方案1】:

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

您的语句中有“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>)

如果您只想返回真或假,则不需要使用 iif 运算符,因为“=”运算符返回布尔值(真/假)。

如果是这种情况,那么您可以简单地使用:

=(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”更改为“=”,因为没有可以在 s-s-rs 表达式中使用的 IN 运算符,但有一些解决方法。请参阅 here 和 here。

【讨论】:

以上是关于s-s-rS 报告语法的主要内容,如果未能解决你的问题,请参考以下文章

无法刷新 s-s-rs 报告中的数据字段

从另一个报告中调用 s-s-rS 报告

s-s-rS 2008 报告 SQL 选项

s-s-rS 2008:如何立即生成多个报告?

是否有可能在 s-s-rS 中部署单一报告

来自视图的 s-s-rS 报告