SSRS Tablix:如何基于单个或多个字段分组汇总数据且不显示明细行
SSRS Tablix:如何基于单个或多个字段分组汇总数据且不显示明细行
嗨,Jay!你的需求完全可以在SSRS里轻松实现,不用额外创建新的数据集,只需要在Tablix里设置多层分组并调整行的显示状态就好,我给你一步步拆解操作:
第一步:绑定数据集到Tablix
先把Tablix控件拖到报表设计界面,选择你现有的明细数据集作为它的数据源。第二步:建立多层分组层级
我们需要创建两层分组:部门父组和姓名子组:- 右键点击Tablix行组面板里的「详细信息」行,选择「添加组」→「父组」,分组依据选
DEPT字段,同时勾选「添加组页眉」(这会生成部门的汇总行)。 - 接着,在刚创建的
DEPT组下方,再次右键点击「详细信息」行,选择「添加组」→「父组」,分组依据选NAME字段,同样勾选「添加组页眉」。
- 右键点击Tablix行组面板里的「详细信息」行,选择「添加组」→「父组」,分组依据选
第三步:设置汇总计算
现在给分组行添加汇总公式:- 在
DEPT组的页眉行里,一个文本框放部门名称(直接拖DEPT字段就行),另一个文本框输入表达式=Sum(Fields!HOURS.Value),这会自动计算该部门的总工时。 - 在
NAME组的页眉行里,同样操作:一个文本框放姓名(拖NAME字段),另一个文本框用=Sum(Fields!HOURS.Value)计算该员工的总工时。
- 在
第四步:隐藏明细行
你提到的多余明细行,直接隐藏就好:- 找到Tablix里对应「详细信息」的那一行(就是原来显示单条日期工时记录的行),右键点击该行的行号,选择「行可见性」。
- 在弹出的窗口里选择「隐藏」,这样那些明细记录就不会显示在最终报表里了。
做完这些操作后,你的报表输出就会和你想要的效果完全一致:
HOURS
ACCT 26
Joe 13
Tim 13
IT 6
Alex 6
另外给你个小提示:如果想要让层级更清晰,可以给姓名组的行设置一点左边距缩进,这样部门和员工的层级关系一目了然。
备注:内容来源于stack exchange,提问作者Jay
相关产品推荐
相关产品推荐

