SSRS报表分页后页眉文本框标签未随页面切换更新
解决SSRS报表页眉账户名称不随分页更新的问题
我之前也踩过这个坑!SSRS自带的页眉默认只会在报表初始化时渲染一次,所以不管你翻到哪一页,它都会死死停留在第一个分组的账户名称上。下面是几个亲测有效的解决办法,你可以根据自己的需求选:
用主体顶部模拟页眉(最简单省心)
放弃SSRS自带的页眉,直接在报表主体最上方加个文本框绑定账户名称,然后把这个区域设置成随分组重复显示:- 选中你的账户分组(行组面板里的那个分组项)
- 右键打开「组属性」,切换到「分页」选项卡,勾选「在组的每个实例之间分页」
- 再切到「重复表头」选项卡,勾选「在每个页面上重复表头行」(如果你的账户名称文本框放在表头行里的话)
这样每一页顶部都会自动显示当前账户的名称,视觉效果和真页眉完全一致,还不用折腾代码。
用自定义代码实现真页眉动态更新
如果一定要用SSRS自带的页眉,可以通过代码段+内置变量来关联分页和分组:- 打开报表的「报表属性」→「代码」,粘贴这段VB代码:
Dim currentAccount As String Public Function SetAccount(ByVal accountName As String) As String currentAccount = accountName Return accountName End Function Public Function GetAccount() As String Return currentAccount End Function - 在报表主体里找一个绑定账户名称的文本框(比如明细行里的账户名字段),把它的
Value表达式改成:=Code.SetAccount(Fields!AccountName.Value)——这个操作会在每一页渲染时更新代码里的账户变量 - 最后把页眉里的文本框
Value改成:=Code.GetAccount(),页眉就能同步当前页面的账户名称了
- 打开报表的「报表属性」→「代码」,粘贴这段VB代码:
最后检查分组分页的基础设置
别忘了确认核心配置没出错:- 行组的分组依据必须是账户的唯一标识(比如AccountID),不能只按名称分组(避免重名账户出问题)
- 组属性的「分页」里,不要额外勾选「在组的开头分页」,不然第一页会空出来
内容的提问来源于stack exchange,提问作者iyuu
相关产品推荐
相关产品推荐

