SSRS 分页问题,​​每页有多个 table

SSRS Page break issue, with multiple table in each page

我想创建一个 SSRS 报告。我有 5 个表格,我希望它们都保留在一页中,除非年份发生变化,如下所示:

page1: year 2014
  table1
  table2
  table3
  table4
  table4

page2: year 2015 (the same tables as page 1, but with data for year 2)
  table1
  table2
  table3
  table4
  table5

我该怎么做?

一种(相当丑陋的)方法是使用按年份过滤的列表。不幸的是,这确实意味着您需要 return 将所有数据放在一个数据集中。

我之前所做的是为 return 中的所有数据创建一个 table 变量,例如 @ReturnData。这包含您希望 return 的每个 table 的每个字段,以及一个 tableID 标识符。

然后我将所有table插入到这个@ReturnData table中,并为当前插入语句设置TableID,例如

INSERT INTO @ReturnData(tableID, col01, col02, col03)
SELECT
    1 AS tableID,
    a.col1 as col01,
    a.col2 as col02,
    a.col3 as col03,
   ...
FROM myTableA a

然后是第二个table

INSERT INTO @ReturnData(tableID, col11, col12, col13)
SELECT
    2 AS tableID,
    b.col1 as col11,
    b.col2 as col12,
    b.col3 as col13,
FROM myTableB b

然后在 Reporting Services 中,您可以根据组合在一起的 returned 数据集创建一个列表。此列表可以按年份分组,每个 table 可以在 tableID 列上过滤。

请注意,如果 table 之间有公共列,则没有理由不将两个 table 的数据放在一个列中,因为每一行都有自己的 tableID 标识符。