如何将可选的多值参数从主报表传递到子报表的命令提示符

2020-09-12 18:42发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)嗨 我在Main报告中有一个可...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


我在Main报告中有一个可选的Single-value参数,该参数作为公式传递给子报表。

主报告公式:-

stringVar SingleVale:=如果(HasValue({?MyParam}))则{?MyParam} ELSE" N/A"


我的子报表具有与以上公式链接的命令提示符

子报表逗号-where子句:-

WHERE('N/A'=('{?MyParam}')OR Field =('{?MyParam}'))


当参数为"可选"和"单值"时,上面的方法非常有效,但是当参数为"可选"和"多值"时,我不知道如何修改

5条回答
四川大学会员
2020-09-12 19:17

多值参数作为数组处理。 但是,IIRC无法将数组作为子报表链接传递。 不过,您可以执行以下操作:

加入({?MyParam},',')

请注意,我在这里没有使用变量-您不需要一个 ,其他参数也不需要。 您可以将公式写为:

如果(HasValue({?MyParam}))然后{?MyParam} ELSE" N/A"

Join命令将连接值 在数组中使用逗号定界符分隔成字符串。 如果您需要在子报表的命令中使用此命令,我可以尝试执行以下操作:

"('" + Join({?MyParam},"','")+"') "

这将格式化连接的参数值,在它们之间使用','以及末尾的('和'),以便您可以在查询中使用IN子句,如下所示:

{。MultiParam}

中的Table.Value请注意,即使这是一个字符串,我也没有在参数周围加上引号-这是因为它已经被正确格式化以用于IN。

-Dell

一周热门 更多>