所以,问题是我们在JasperReport Dialog中向用户创建的文档显示.用户可以按打印图标并将其发送到打印机.
在所有三个级别上,似乎在客户端的计算机上占用了太多资源:创建报告,在屏幕上显示报告并将其发送到打印机.一个示例PC是AMD Duron 800MHz,具有256MB RAM,因此我们需要了解是否可以进行一些优化以获得更好的用户体验.
它还需要在具有2GHz处理器和1GB RAM的"普通"计算机上占用大量资源,因此我需要查看是否有一个选项来调整JasperReport以减少对资源的影响.
过度使用子报告会增加报告的资源需求.每个子报表在填充时间内产生自己的线程.此外,如果您正在使用scriptlet或帮助程序类,请确保正确清理它们创建的所有资源.还要确保您使用的是最新的JR软件包.
一个说明.JR api包含一组虚拟器.填写报表时,整个填充的报表将创建为对象(JasperPrint).根据报表中的页数,此对象可能会变得非常大.可以将虚拟器配置为在达到设置的页面阈值时写入文件系统.
通常这会减少总体内存使用量,但会增加填充时间 一个包可能是gzip虚拟器,而不是写入文件系统,使用gzip压缩生成的对象.
以下是有关该主题的常见问题解答:http: //community.jaspersoft.com/wiki/support-large-reports
它所引用的例子可以通过下载JR源获得.
http://sourceforge.net/project/showfiles.php?group_id=36382&package_id=28579
从高级视图来看,如果您在应用程序中运行此报告,则可以实例化虚拟器(此处是列出已知实现类的接口):http: //jasperreports.sourceforge.net/api/net/sf/jasperreports/发动机/ JRVirtualizer.html
然后在填充时使用引用:
JRDataSource ds = new JREmptyDataSource(10); JRFileVirtualizer virtualizer = new JRFileVirtualizer(2, "tmp"); JasperPrint jasperPrint = fillReport(fileName, ds, virtualizer);
如果您在iReport中,可以在选项 - >设置中配置虚拟器.
我希望这是有帮助的.
卢克