填写碧玉报告时取得进展
我想在Jasper报告填写编译报告时向用户提供进展。 基本上我想在执行时取得进展:
JasperFillManager.fillReport(JasperReport rpt,Map params,JRDataSource src)
反正有没有实现这个目标?
来自Jasper Reports版本4.6.0您可以使用FillListener
:
AsynchronousFillHandle handle = AsynchronousFillHandle.createHandle(jasperReport, params, dataSource); handle.addFillListener(new FillListener() { @Override public void pageUpdated(JasperPrint jasperPrint, int pageIndex) { log.info("pageUpdated " + pageIndex); } @Override public void pageGenerated(JasperPrint jasperPrint, int pageIndex) { log.info("pageGenerated " + pageIndex); } });
注意 :要构建4.6.0版本从svn获取源代码并使用ant:
svn co http://jasperforge.org/svn/repos/jasperreports (user/pass: anonymous) cd jasperreports\trunk\jasperreports ant jar
我正在使用PrimeFaces中的这些组件来显示报告正在生成:
我没有任何真正的方法来确定我的报告编译和填充所需的总时间,因此我选择不使用实际的进度条,有时在报告完成之前填充。
我担心无法监控填充jasper报告的进度(从版本4.0.2开始) – net.sf.jasperreports.engine.fill.JRFiller
不提供任何类型的进度通知。