SSRS(rdl报表)分页显示表头和对表头的冻结处理
2015-01-05 17:26 杭伟 阅读(3708) 评论(4) 编辑 收藏 举报基础环境
最近在公司做西门子某系统的二次开发,需要用到SQLServer Reporting Services(SSRS)。我们用的SQL版本是SQLServer 2008 R2;在设计报表时,表格用的是矩阵(Tablix)。由于集团用户在西门子系统实施当时,已向西门子开发人员提出过这个问题,西门子当时给出的回答是:“技术原因,不能实现。”。
现在回想,一是他们没仔细研究过这个问题,二是关于SSRS的资料实在太少的缘故吧。
技术实现
首次尝试是通过Tablix属性
发现即使把这些“功能”全部勾选,也不能实现想要的效果。报表数据的表头还是不能分页显示,还是不能被“冻结”。
研究了下,发现通过修改报表文件的xml代码可以实现想要的效果。
在打开xml视图后,查找<TablixRowHierarchy>节点,
找到节点后,修改第一个TablixMember(一般第二个是group信息)
为方便大家修改,贴出代码:
<TablixRowHierarchy> <TablixMembers> <TablixMember> <KeepWithGroup>After</KeepWithGroup> <RepeatOnNewPage>true</RepeatOnNewPage> <FixedData>true</FixedData> </TablixMember> <TablixMember> <Group Name="pom_order_id"> <GroupExpressions> ...
其中<KeepWithGroup>节点和<RepeatOnNewPage>节点的使用,作用是翻页显示表头;<FixedData>节点则是冻结表头,即拉动滚动条时显示表头。
最后,报表实现效果
关于SSRS更多技术内容,请持续关注。
作者:hangwei
出处:http://www.cnblogs.com/hangwei/
关于作者:专注于开源平台,分布式系统的架构设计与开发、数据库性能调优等工作。如有问题或建议,请多多赐教!
版权声明:本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接。
如果您觉得文章对您有帮助,可以点击文章右下角“推荐”一下。您的鼓励是作者坚持原创和持续写作的最大动力!