SSRS报表按分组分页:缺失重置页码选项的问题
SSRS分组分页页码实现方案
问题分析
你当前用=Globals!PageNumber & " of " & Globals!TotalPages得到的是整个报表的全局页码,要实现每个分组独立的页码(如组内1 of 2、1 of 3),需要结合组分页符设置和组级别的总页数计算。
第一种方法:通过组属性重置页码(优先推荐)
- 找到目标分组:在报表设计界面的「行组」/「列组」面板,右键需要分页的分组,选择「组属性」。
- 切换到「分页符」标签:
- 勾选「在每个实例之间」,确保每个组实例之间自动分页。
- 找到**「重置页码」复选框**(如果看不到,检查SSRS版本:旧版如SSRS 2008可能需要滚动标签页内容,或点击「高级」展开更多选项),勾选后每个组的页码会从1开始计数。
- 替换全局总页数为组内总页数:此时
Globals!TotalPages仍对应全局总页数,需用以下表达式获取组内总页数,最终页码表达式为:
说明:=Globals!PageNumber & " of " & Ceiling(CountRows("你的分组名称") / Globals!RowsPerPage)你的分组名称替换为实际组名(可在组属性「常规」标签查看);Globals!RowsPerPage依赖报表属性中设置的「每页行数」,若未设置,可直接写固定数值(比如每页显示10行就写10)。
第二种方法:无重置页码选项时的替代方案
如果确实找不到「重置页码」选项,可通过自定义表达式实现组内页码:
- 给分组设置唯一组名称(组属性→常规→名称)。
- 在页码文本框中使用以下完整表达式:
说明:前半段计算组内当前页码,后半段计算组内总页数,逻辑和第一种方法一致。=(Globals!PageNumber - First(Globals!PageNumber, "你的分组名称") + 1) & " of " & Ceiling(CountRows("你的分组名称") / Globals!RowsPerPage)
注意事项
- 必须确保分组的「在每个实例之间」分页选项已勾选,否则组内页码会和全局页码连续。
- 若使用
Globals!RowsPerPage,需右键报表空白处→「报表属性」→「布局」标签,设置「每页行数」。
内容的提问来源于stack exchange,提问作者AWGAL
相关产品推荐
相关产品推荐

