如何在 SSRS 2017 中执行多个报表

How to execute multiple reports in SSRS 2017

[![在此处输入图片描述][1]][1]我有一个 SSRS 2017 报告,其中包含一个主报告和多个子报告。此报告发布到 SSRS 门户,然后由 Web 应用程序调用。该报告目前接受来自网络应用程序的一个参数,即案例 ID。我的任务是让 web 应用程序传递多个案例 ID,然后将多次执行报告,每次针对一个案例 ID。如果我将多个案例 ID 传递给主报告,结果是每个子报告将重复多次。比方说,我将案例 ID 100 和 101 传递给报告,结果将是这样的:Sub-Report-A-Case-100、Sub-Report-A-Case-101、Sub-Report-B-Case- 100,和 Sub-Report-B-Case-101,等等。理想的场景是 Sub-Report-A-Case-100、Sub-Report-B-Case-100、Sub-Report-A-Case-101 等。 由于报告是从 Web 应用程序调用的,因此我无法使用数据驱动的订阅功能。我还有哪些其他选择?

请指教。 谢谢, 周杰伦

假设您有一个案例 ID 列表,并且您有一个名为 @CaseID 的 multi-value 参数,那么我将按如下方式进行...

在您的主要报告中:

创建一个数据集并将其命名为 dsCases,例如,使用类似

的查询
SELECT DISTINCT CaseID FROM WHERE CaseID IN (@CaseID) ORDER BY CaseID

这将为您提供每个案例 1 行的小型数据集。

接下来向您的报告添加 table 并删除除一列以外的所有列。 (您也可以删除其他行,只留下一个 'cell'。将此 tablix 的数据集 属性 设置为 dsCases

在剩余的单元格中,right-click 并插入一个子报表。根据需要设置子报表参数(将其指向 Sub-Report-A),将 CaseID 字段作为参数值传递(Fields!CaseID.Value)。

复制并粘贴整个 table 并在第一个下方对齐。

更改第二个子报表的子报表属性 table 以指向您的第二个子报表 (Sub-Report-B)。

这将为数据集中的每个案例生成一个“Sub-Report-A”,然后它会重复“Sub-Report-B”。如果这不起作用,请告诉我,我会 post 一个带截图的完整答案。