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 标识符。
我想创建一个 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 标识符。