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 报告语法的主要内容,如果未能解决你的问题,请参考以下文章