我可以使用列表在报告页面上重复两个Tablix吗?

时间:2018-03-19 19:32:56

标签: ssrs-2012 ssrs-tablix

见下图。仓库和客户是通过查询填充的下拉列表。年份是文本字段。这两个表显示由报告参数驱动的数据集中的数据。有没有办法根据Customer下拉列表的每个成员重复这两个表?最好是在第二张表之后有一个分页符。

enter image description here

1 个答案:

答案 0 :(得分:1)

我通常使用子报告来执行此操作。您可以创建包含表或单个子报表的单个子报表。个人方法可能有助于分页等,这是我的方式。

第1步:为第一张表创建报告。 由于你没有说明每张桌子的作用,我会为了说明而做一些。

关键是要创建一个子报表,只显示单个表中所需的信息。因此,在您的情况下,这可能意味着我们只需要传递一个参数CustomerID。您可能需要传递更多,例如仓库,但我不知道......

在我编写的场景中,让我们假设报告显示了客户联系人,因此我们创建了一个子报告(让我们称之为subCustomerConacts)。它有一个参数pCustomerID和一个数据集dsCustomerContacts。查询可能看起来像SELECT * FROM CustomerContacts WHERE CustomerID = @pCustomerID。添加显示数据所需的任何表格/文本框等。

通过手动输入CustomerID

来测试此子报表

第2步:为第二个表创建报告。 再次完全相同,创建一个新的子报表。我们称之为subCustomerOrders。重复上述操作,直到您最终得到另一个可以显示订单详细信息(或您需要的任何内容)的报告。

最后,创建主报告。 这基本上就是你在参数等问题中描述的内容。

现在添加这个会调用子报告的位。 创建一个数据集(让我们称之为dsCustomerLoop),其中包含SELECT DISTINCT CustomerID FROM myCustomers WHERE CustomerID IN (@myCustomerParameter)

等参数中的每个客户

在报告中添加一个表格,1列宽并拉伸它,使其宽度足以容纳子报告。

将数据集设置为指向dsCustomerLoop

右键单击详细信息行中的单元格,然后执行"插入行 - >内部组 - 下面"。你不应该有两个细节行。

接下来,右键单击顶部详细信息行并执行"插入 - >子报表"

右键单击新插入的子报表控件,然后选择"属性"。

从下拉列表中选择您的第一个SubReport 单击左侧的参数, 点击"添加"并选择CusomterID参数,将其值设置为CustomerID字段。

在秒行上重复此过程,选择秒子报告。

您可能还想在表格中添加第3行,您可以在此处插入一个矩形,并设置分页符以在每个子报表后强制新页面。

那是它。报表运行时,每个客户将生成两行,每行包含一个子报表。

我希望这一点已经足够清楚了,我已经匆匆忙忙地通过它了,但如果有什么不清楚的地方,请告诉我,我会提供更清晰的解决方案。