SSRS分页符问题,每页有多个表

时间:2015-11-13 18:31:43

标签: reporting-services paging

我想创建一份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

我该怎么做?

1 个答案:

答案 0 :(得分:0)

一种(相当丑陋)的方法是使用在Year上过滤的列表。不幸的是,这确实意味着您需要在单个数据集中返回所有数据。

我之前做过的是创建一个表变量来返回@ReturnData中的所有数据。这包含您希望返回的每个表的每个字段,以及tableID标识符。

然后我将所有表插入到此@ReturnData表中,并为当前插入语句设置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

然后是第二个表

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中,您可以根据组合在一起的返回数据集创建列表。此列表可以按年分组,每个表都可以在tableID列上进行过滤。

enter image description here

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