【发布时间】:2020-06-22 10:45:38
【问题描述】:
我尝试使用 ResultSet 创建 Jasper Print 来构建带有打印的 PDF 报告。 问题是,Jasper Print 的创建速度非常慢。 ResultSet 是一个包含大约 5000 行的表。创建打印需要超过 2 分钟。
我找到了这个解决方案:JasperReports fillReport too slow and resource consuming
但这对我不起作用。 不同的是,我使用的是动态报告。
JasperPrint jasperPrint = DynamicJasperHelper.generateJasperPrint(dynamicReport, new ClassicLayoutManager(), resultSet);
编辑: 关键部分在JRVerticalFiller类的fillReport方法中。
if (this.next()) {
this.fillReportStart();
while(this.next()) {
this.fillReportContent();
}
this.fillReportEnd();
}
fillReportContent 方法被一次又一次地调用了将近两分钟。
【问题讨论】:
-
您使用过 Java 分析器吗?你试过调试吗?
-
JRVerticalFiller 类中的 fillReport 方法需要很长时间。首先我想,它是一个无限循环。但是创建 ReportContent 需要花费很多时间。
标签: java performance jasper-reports dynamic-jasper