另外,超出65536行记录,希望通过分sheet导出Excel文件,VS文档也有说明:
因此,实现分sheet导出,最基本的方向是开发报表时设置分页!
分页,在写报表数据集SQL时,可以增加一列 PAGES, 设定妹60000行记录为一个页:
SELECT CEIL( ROWNUM / 60000 ) AS PAGES, .... FROM TABLE_NAME
然后,在新建报表时,可以选定以 PAGES 列作分页:
这是,在新建报表时设定分页,然后再导出Excel时,Excel会把每一页的数据放在不同的一个sheet页面中。
还有,另外一种方法就是根据分组分页。
其实,通过第一种方法,通过观察报表发现,报表容器是根据 PAGES 来分组,所以这个方法也是这里的一个分支。
根据组分页,每个不同的组实例之间可以添加一个分页符,达到分页的效果。
操作: 在组属性窗口,勾选“在组的各实例之间”添加分页符即可:
另外,各组件之间也可以添加分页符,选定组件,右键,属性,可以选择在组件前面或者后面添加分页符。
本人在网上也找到一篇和本文相同主题的文章,写得蛮清楚的,给出链接:
http://www.cnblogs.com/OpenCoder/archive/2010/11/11/1875207.html
值得一提的是,这样手工分页有个弊端:
没有手工分页之前,在前台展现SSRS即席报表,默认首页展现50行记录,导出数据则在一个Excel文档。
一旦手工设置了分页,例如每页设置60000行记录,则在前台展现时首页也展现60000行记录,前台报表渲染展现有一定的压力,通过测试,发现耗时多了,并且有可能产生内存溢出问题。
针对这一问题,本人已经查阅了很多网站以及VS的文档,目前还没有找到一个很好的解决方案。所以设置报表分页需要衡量得失!
备注: 针对以上问题解决方法的猜想,SSRS是否支持设置每页(或首页)展现数据记录数的设定,如果可以通过设置可以分清导出和展现的不同分页设置,即可达到一个比较完美的效果。 如果以后发现有方法,再补充!