我想在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