我有一个SSRS 2017报告,它由一个主报告和多个子报告组成。此报告发布到SSRS门户,然后由web应用程序调用。报表当前接受来自web应用程序的一个参数,即案例ID。我的任务是允许web应用程序传递多个案例ID,然后报告将多次执行,每次执行一个案例ID。如果我将多个案例ID传递到主报表,结果是每个子报表将重复多次。假设我将案例ID 100和101传递给报告,结果将类似于:子报告-A-案例-100、子报告-A-案例-101、子报告-B-案例-100和子报告-B-案例-101,依此类推。理想的场景应该是Sub- report -A-Case-100、Sub-Report-B-Case-100、Sub-Report-A-Case-101等。因为报表是从web应用程序调用的,所以我不能使用数据驱动的订阅功能。我还有其他选择吗?
请给我建议。谢谢,杰伊
发布于 2020-09-17 23:57:44
假设您有一个case id列表,并且有一个名为@CaseID的多值参数,那么我将按如下所示进行操作...
在您的主报告中:
创建一个dataset并将其命名为dsCases,例如,使用如下查询
SELECT DISTINCT CaseID FROM WHERE CaseID IN (@CaseID) ORDER BY CaseID这将为您提供每个案例1行的小数据集。
接下来,向报表中添加一个表,并删除除一列之外的所有列。(你也可以删除额外的行,只留下一个'cell‘。将此tablix的datset属性设置为dsCases
在其余单元格中,右键单击并插入一个子报表。根据需要设置子报表参数(将其指向Sub-Report-A),并将CaseID字段作为参数值(Fields!CaseID.Value)传递。
复制并粘贴整个表格,并将其在第一个表格下对齐。
将第二个表中的子报表的子报表属性更改为指向第二个子报表(子报表-B)。
这将为数据集中的每个案例生成一个“子报告-A”,然后对“子报告-B”重复此操作。如果这不起作用,请让我知道,我会发布一个完整的答案与截图。
https://stackoverflow.com/questions/63925862
复制相似问题