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

Can I use a list to repeat two tablixes on a report page?

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

之后使用分页符

我通常使用子报表来执行此操作。您可以创建包含 table 的单个子报表或单独的子报表。个别方法可能有助于分页等,所以这就是我要走的路。

第 1 步:为您的第一个 table 创建报告。 由于您没有说明每个 table 的作用,为了说明起见,我会补充一些。

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

在我编造的场景中,假设报表显示客户联系人,因此我们创建一个子报表(我们称之为 subCustomerConacts)。它有一个参数 pCustomerID 和一个数据集 dsCustomerContacts。查询可能类似于 SELECT * FROM CustomerContacts WHERE CustomerID = @pCustomerID。添加显示数据所需的任何 tables/textbox 等。

通过手动输入 CustomerID 来测试此子报表的工作情况

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

最后,创建主报表。 这基本上就是您在参数等问题中所描述的

现在添加将调用您的子报表的这一点。 创建一个数据集(让我们称之为 dsCustomerLoop),其中包含来自您的参数的每个客户,例如 SELECT DISTINCT CustomerID FROM myCustomers WHERE CustomerID IN (@myCustomerParameter)

在您的报告中添加一个 table,1 列宽并拉伸它,使其足够宽以容纳您的子报告。

设置数据集指向dsCustomerLoop

Right-Click 详细信息行中的单元格并执行 "Insert Row -> Inside Group - Below"。您不应有两个详细信息行。

接下来,右键单击顶部详细信息行并执行 "Insert -> Subreport"

Right-Click新插入的子报表控件并选择"properties"。

从 drop-down 列表中选择您的第一个子报表 点击左侧参数, 单击 "Add" 和 select CusomterID 参数,将其值设置为 CustomerID 字段。

在秒行上重复此过程,选择您的秒子报表。

您可能还想将第 3 行添加到 table,您可以在其中插入一个矩形,并设置分页符以在每秒钟子报表后强制换页。

就是这样。当报告运行时,它将为每个客户生成两行,每行包含一个子报告。

我希望这已经足够清楚了,我已经匆匆浏览了一下,但如果有任何不清楚的地方,请告诉我,我会提供更清晰的解决方案。