Sql 如何在SSRS 2017中执行多个报告

Sql 如何在SSRS 2017中执行多个报告,sql,reporting-services,ssrs-2017,Sql,Reporting Services,Ssrs 2017,[![enter image description here][1][1]我有一份SSRS 2017报告,包括一份主报告和多份子报告。此报告发布到SSRS门户,然后由web应用程序调用。报告当前接受web应用程序的一个参数,即案例ID。我的任务是允许web应用程序传递多个案例ID,然后报告将执行多次,每个案例ID都执行一次。如果我将多个案例ID传递给主报告,则每个子报告将重复多次。比方说,我将案例ID 100和101传递给报告,结果会是这样的:Sub-report-A-case-100、Sub

[![enter image description here][1][1]我有一份SSRS 2017报告,包括一份主报告和多份子报告。此报告发布到SSRS门户,然后由web应用程序调用。报告当前接受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,依此类推。理想情况是子报告-A-Case-100、子报告-B-Case-100、子报告-A-Case-101等。 由于报表是从web应用程序调用的,因此我无法使用数据驱动订阅功能。我还有其他选择吗

请告知。 谢谢
Jay

假设您有一个案例id的列表,并且您有一个名为
@CaseID
的多值参数,那么我将按如下方式进行操作

在你的主要报告中:

创建一个数据集并将其称为
dsCases
,例如,使用如下查询

SELECT DISTINCT CaseID FROM WHERE CaseID IN (@CaseID) ORDER BY CaseID
这将为您提供每个案例1行的小数据集

接下来,向报表中添加一个表并删除除一列以外的所有列。(您也可以删除其他行,只留下一个“单元格”。将此表的datset属性设置为
dsCases

在剩余单元格中,单击鼠标右键并插入子报表。根据需要设置子报表参数(指向Sub-Report-a),将CaseID字段作为参数值传递(
Fields!CaseID.value

复制并粘贴整个表格,并将其与第一个表格对齐

更改第二个表中子报表的子报表属性,以指向第二个子报表(sub-report-B)


这将为数据集中的每个案例生成“Sub-Report-a”,然后对“Sub-Report-B”重复此操作。如果这不起作用,请告诉我,我会发布一个完整的答案和屏幕截图。

谢谢Alan。我会尝试一下,让你知道结果。嗨,Alan,正如你所建议的,我创建了一个带有多值参数的主报告来存储案例ID。然后添加了一个表来填充子报告a。之后,我复制了这个表以获得add Sub-Report-B。但是,我不知道如何动态匹配案例id参数。请提供建议。谢谢。