码迷,mamicode.com
首页 > 其他好文 > 详细

关于iReport报表的分页

时间:2015-12-04 16:23:18      阅读:199      评论:0      收藏:0      [点我收藏+]

标签:

问题:二手车认证系统的检测报告采用iReport开发,开发者自定义了一张超级长的纸张,导致打印时自动缩放到了一张A4纸上。需要修改使之能够合理的分页打印,这是来到新公司的第一个任务。

技术分享
解决方案一:

1、iReport报表自定义页面,需要分页的地方使用分页符技术分享进行分页
2、生成PDF报表

3、按照如下说明进行打印

技术分享


采用这种方式,显示出的PDF报表有大片空白,但是打印是正常的。查看PDF时每页下方大片的空白导致用户体验极差,不采用此方式。

方案二:

还是使用“自定义”纸张,采用“海报”方式打印,PDF会自动把一张很长的页面的内容拆分到多个A4页面上,需要仔细调整每页的内容。

技术分享


注:得用IE浏览器,360、谷歌等浏览器需要先另存到本地,然后再使用Adobe Reader自己提供的打印功能。



教客户使用时又发现问题了,因为是使用技术分享开发和调试的,但是到了实际的打印机上分页效果不一样。
方案三:

把每一页的内容单独放到一个子报表上,然后父表去调用6个子报表。每个子表前放一个分页符。这样终于完美解决问题了。














iReport分页打印开发调试过程中遇到的坑总结如下:

1、如果在子表中使用 Text Field 控件直接显示参数,那么不要放在 Detail 区,显示不出来(如果也同时显示从数据库中查询出的表数据,那么 Detail 区应该能显示出来);要放在 Page Header 或者 Title 区。

2、Field放在Detail区,也可以在 Page Header 区。

3、报表的 When No Data 属性,选择“All Sections,No Detail”。

4、在[窗口]-[组件面板]中可以找回组件面板。

5、主表的数据是从Java代码中通过JSON格式传进去的,主表中定义了200来个Field,如果需要在子表中使用这些数据,那么需要在子表中定义参数,然后在主表 Subreport 控件的 Parameters 属性中对子表参数赋值。

技术分享



技术分享 本文用菊子曰发布

关于iReport报表的分页

标签:

原文地址:http://www.cnblogs.com/sdsunjing/p/5019604.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!