填写碧玉报告时取得进展

Cra*_*aig 8 java jasper-reports

我想在Jasper报告填写编译报告时向用户提供进展.基本上我想在执行时取得进展:

JasperFillManager.fillReport(JasperReport rpt,Map params,JRDataSource src)

反正有没有实现这个目标?

mar*_*osh 2

从 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);
    }
});
Run Code Online (Sandbox Code Playgroud)

注意:要构建 4.6.0 版本,请从 svn 获取源代码并使用 ant:

svn co http://jasperforge.org/svn/repos/jasperreports (user/pass: anonymous)
cd jasperreports\trunk\jasperreports
ant jar
Run Code Online (Sandbox Code Playgroud)