我将通过过度简化报告结构来尽力解释这个问题。第一份报告包含 1 个名为“资源中心”的组,然后在其下包含一行总计。总计实际上是一个组,但分组是在 SQL 中完成的,并显示在详细信息组中。该报告看起来像这样:
Report 1
ResourceCenter 1
Total1 11
Total2 4
Total3 8
ResourceCenter2
Total1 12
Total2 11
Total3 6
从该报告中,我需要深入到另一个具有一堆多值参数的报告。对于钻取,我可以对除 EmployeeNumber 之外的所有内容使用单一值。为此,我需要能够将 EmployeeNumbers 列表传递给报表 2 中的多值参数。EmployeeNumbers 当前不存在于报表 1 中的任何数据集或参数中,而是基于 ResourceCenter。因此,如果用户已运行报表 1 并单击资源中心 1,我需要能够将与资源中心 1 关联的 EmployeeNumbers 列表传递到报表 2 中的多值参数,以便报表 2 能够正确处理它。
注意:我应该补充一点,我已经创建了两个 SQL 函数,它们接受 ResourceCenter 的输入,然后返回员工列表。一种是返回单列 EmployeeNumbers 的表值函数。另一个是标量值函数,它以逗号分隔值的形式返回 EmployeeNumbers。然后我有一些自定义代码在后台运行 SQL 函数并返回列表。我没有成功返回 SSRS 可以使用的数据集,但我已经能够让标量值函数“工作”,因为我可以在虚拟报告上创建一个字段并查看输出。不过,我没有运气让报告 2 接受逗号分隔的列表。
这个人 http://www.keepitsimpleandfast.com/2012/04/passing-multi-value-parameter-to-drill.html正在进行钻取,似乎已经通过多值参数解决了类似的问题。在这种情况下,必须针对 IN 子句对其进行格式化。
=SPLIT(JOIN(Parameters!SomeParameterName.Value,","),",")
如果 Report2 不接受这种格式,您可能必须添加一个单独的单值参数,该参数将接受逗号分隔的字符串,然后您必须解析该字符串。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)