包含分组和分页符的SSRS报告

时间:2018-05-01 19:43:15

标签: reporting-services

我正在尝试编写SSRS报告,其中输出按团队分组,每个团队在新页面上开始,并在报表输出到Excel时在新选项卡上。我希望每次有新团队时都会重复列标题,如果一个团队的数据跨越多个页面,我希望在每个页面的顶部重复。

我的测试数据由以下代码生成:

WITH
team_list(team_id,team) AS
(
SELECT 1, 'red'
UNION ALL SELECT 2, 'orange'
UNION ALL SELECT 3, 'yellow'
UNION ALL SELECT 4, 'green'
),
results1(result_value1) AS
(
SELECT 1
UNION ALL SELECT 2
UNION ALL SELECT 3
UNION ALL SELECT 4
UNION ALL SELECT 5
),
results2(result_value2) AS
(
SELECT 7*result_value1
FROM results1
),
main_query(id, team, value1, value2) AS
(
SELECT
  tl.team_id
, tl.team
, r1.result_value1+20
, r2.result_value2
FROM
  team_list tl CROSS JOIN results1 r1 CROSS JOIN results2 r2
WHERE
  r1.result_value1 < tl.team_id+2
)
SELECT * FROM main_query

我希望报告看起来像这样:

Team grouping example

我插入了一个包含三列的Tablix:id,value1和value2。我右键单击&#34;行组&#34;下的详细信息,并按团队分组添加组&gt;父组。我没有勾选&#34;添加组头&#34;或&#34;添加组页脚&#34;。

我点击了&#34;行组&#34;下的团队。然后在显示&#34; Tablix成员&#34;的属性窗口中,我展开了Group,然后是Page Break,并将Page Break设置为Between。我还将PageName设置为Fields!team.Value。

要重复列标题,我点击了&#34;列组&#34;旁边的向下箭头。并选择了高级模式。我点击第二次出现静态&#34;行组&#34;并在“属性”窗格中,将RepeatOnNewPage设置为True。我现在有一个报告,在团队之间有分页符,并且它在每个页面上重复列标题。当我导出它时,每个团队都有一个标签,上面有团队名称。好。

现在,我不想要表格的第一列,Team。所以我右键单击该列并选择Delete Columns,然后选择Delete Columns Only。我看到&#34; Row Groups&#34;顶部&#34;静态&#34;已经消失了。我的报告不再在每个页面上重复列标题。

我尝试将两个单元格隐藏在表格的第一列中,除了将表格向右缩进外,这似乎也能产生预期的效果。我试图将此列的宽度设置为零,这似乎是不可能的。当我导出报告时,我得到了一个非常窄的列A.有没有办法完全摆脱这个列,同时仍然有重复的列标题?

对于我的团队标题,我在Tablix的顶行上方插入了一行。我合并了列标题上方的三个单元格。我右键单击并添加了表达式="Team " & Fields!team.Value。这显示了#34;团队红色&#34;对于所有团队而言,而不是在每个页面上进行更改。如何创建标题行以显示每个组的正确团队名称?

1 个答案:

答案 0 :(得分:0)

团队组中需要额外的一行。最简单的方法是在添加团队组时添加标题。

所以在你的一步一步... 从DetailsAdd Group - &gt; Parent Group,选择Team并检查添加标头选项。 双击行组面板中的新Team行组,并将分页符设置为between

现在你将在表中有三行,忽略第2行和第3行在第1列中合并的事实,一旦完成其他所有操作,我们将摆脱它。 右键单击第2行中的一个单元格(例如第2列第2行),然后选择Insert Row - &gt; Inside Group - Above

表格看起来像这样......

enter image description here

接下来将列hedaers(id,value1和value2)复制到具有实际数据的单元格上方的行direclty(应该是第3行)。 然后在第2行中选择数据列上方的三个单元格并合并它们。 选择团队作为此合并单元格(或表达式)的字段

现在应该看起来像......

enter image description here

现在删除第一行和第一列,因为我们不再需要这些了。<​​/ p>

然后,像以前一样,从列组旁边的下拉列表中单击高级模式。

在ROW GROUPS中选择两个静态项目,并将“RepeatOnNewPage”设置为true。

enter image description here

最后,为了测试,我将报告的交互式大小高度属性设置为10cm(因此我可以在每个组结束之前强制执行一些分页符。)

在此之后,报告按预期工作,您可以在下面看到黄色的第二页面具有正确的标题。

enter image description here

如果它有用,我使用Report Builder 2016来构建示例RDL。您可以在此处获取它,您只需编辑连接属性即可运行它。

链接到GroupHeaderRepeat.rdl

https://1drv.ms/u/s!Al1Kq21dFT1ijb5Qmm2P4zyM1MV4pA