首页 > 解决方案 > 如何根据查询返回的数据填充 rdl 表?

问题描述

我完全没有使用 rdl 文件的经验,并且我收到了客户的一张票,要求我们在一份报告中显示多个报告。到目前为止,我所做的是创建了一个包含子报告的主 rdl 文件。该子报告链接到另一个 rdl 文件,该文件是通常生成的实际报告。我想要做的是根据从查询中接收到的数组中的数据生成这些子报表的列表。因此,如果数组中有 6 个元素,那么我需要生成 6 个子报表,每个报表都使用数组中相应索引的数据。

我设法弄清楚如何连接一个子报表的数据,但我不知道如何以编程方式扩展它。

标签: reporting-servicesssrs-2012ssrs-tablixrdl

解决方案


基本步骤是

  • 创建一个接受参数的子报表(我猜完成了)
  • 创建主报告(完成)
  • 在您的主报表中创建一个数据集,其中包含每个子报表的一行数据。例如。如果您的子报表显示单个员工的员工详细信息,则您的主报表可能包含一个列出部门员工 ID 的数据集。
  • 将 tablix 添加到您的主报告中,删除标题行并仅保留一列。拉伸此列以适合您的报告宽度
  • 将 tablix 的 datasetname 属性设置为数据集的名称,(现在它将为每个员工生成一行)
  • 右键单击 tablix 单元格并插入子报表
  • 右键单击子报表占位符-> 属性,然后从下拉列表中选择您的子报表。
  • 将子报表参数设置为数据集中的值(例如 EmployeeID = empID)

而已。

您的主报表将运行,tablix 将在您的数据集中为每条记录创建一行,这反过来将为您在数据集中的每行提供一个子报表,每个子报表都将具有传递给它的该行的字段值。

如果您需要更多帮助,我会尝试查找我不久前发布的类似答案,其中包含更多详细信息。


推荐阅读