0

我们正在为我们的报告使用 SQL Server Reporting Services。我们有一份由几个子报告组成的报告。为简单起见,我们以汽车为例。每辆车都有自己的零件清单。一对多的关系。

所以在汽车报告上,有所有的汽车信息——还有一个子报告,即零件清单。这适用于单个汽车,因为只有一个 Car.ID,可以将其作为参数传递以按特定汽车过滤零件列表。

但是,如果报告中指定了几辆汽车,我们希望每辆汽车都在它自己的页面上。有它自己的零件清单。

我环顾四周,正在努力弄清楚。我正在研究的解决方案是将所有内容都放在 List 控件中,并在每条记录后添加一个分页符。然后为数据集中的每个项目添加一个行号,然后匹配页码和子报告的行号。

我认为必须有一种更简单的方法来做到这一点,但我忽略了。或者如果没有,我该如何匹配页码和行号?我试过使用 Lookup 功能——

=Lookup(=Fields!Page.Value, =Globals!PageNumber, =Fields!ID.Value, "DataSet1")

但是,这会返回一个错误,即 Globals!PageNumber 变量仅可用于页眉/页脚部分。

任何帮助是极大的赞赏。

4

1 回答 1

1

没关系,我是个白痴,完全把它复杂化了。

如果其他人觉得它有用,这里是步骤。

  1. 创建您的子报告,将记录的 ID 指定为参数。

  2. 创建您的主要封装报告。

  3. 向页面添加列表控件,转到 Tablix 属性并添加分页符。

  4. 将您的子报表添加到列表控件

  5. 通过使用字段集合指定标识参数的值 - 在本例中:=Fields!ID.Value

  6. 测试报告,然后坐下来,不要想我试图让它变得多么复杂。

于 2012-12-07T11:53:47.437 回答