我们正在使用jasper API(JasperFillManager.fillReport,JasperExportManager.exportReportToPdfFile)
我们希望使用不同的参数在循环中执行该报告,因此添加了以下代码
JasperPrint jasperPrint = null;
// Fill report
Iterator i1 = l1.iterator();
Iterator i2 = l2.iterator();
int i = 1;
while (i1.hasNext() && i2.hasNext()) {
parameters.put("SUBJECTOID", (String) i1.next());
parameters.put("HISTORYRECORD", (String) i2.next());
try (ProfilePoint fillReport = ProfilePoint
.profileAction("ProfAction_ReportHelper_fillJasperReport")) {
jasperReport = JasperCompileManager.compileReport(jrxmlPath);
jasperPrint = JasperFillManager.fillReport(jasperReport, parameters, emptyDataSource);
System.out.println("fillReport**********" + i);
}
// Export to PDF
try (ProfilePoint exportReport = ProfilePoint
.profileAction("ProfAction_ReportHelper_exportJasperReport")) {
JasperExportManager.exportReportToPdfFile(jasperPrint,
"C:\\JASPER\\JASPEROUTPUT\\Report" + i + ".pdf");
System.out.println("exportReportToPdfFile**********" + i);
}
i++;
jasperPrint = null;
jasperReport = null;
那么我们有15个参数,发生了什么事,因此生成了15个PDF文件,但是只有第一个PDF文件包含数据,其他14个为空白。
我们尝试了多种方法,例如一次编译,多次编译,将jasper代码提取到方法中,但结果仍然相同
在jasper或类似内容中是否有任何缓存或某种设置?
答案 0 :(得分:0)
感谢@ dada67 征求意见
我为每次迭代传递了一个新的emptydatasource,并且它起作用了。
非常感谢.. !!!