我想从 Java 代码中的 JasperReports 访问VARIABLE。更具体地说,我需要在填写报告后知道 Java 代码中的REPORT_COUNT和SUBREPORT_COUNT。我已经尝试将其设置为属性,但这不起作用。
报告已安排,如果没有数据,我不想发送电子邮件。我已经尝试将“当没有数据”设置为“打印0页”,然后检查java代码中的页数。如果只有主数据或仅存在子报表中的数据,则此方法无效。如果主报表或子报表没有数据,我希望它打印0页。
我确信这已被问过,但我找不到我需要的东西。如果有人能指出我正确的方向,我们将不胜感激。
答案 0 :(得分:2)
尝试以下方法:
JasperReport jasperReport = (JasperReport) JRLoader.loadObject("path/to/your.jasper");
// prior to version 4.6.0, you should use JRFiller.createFiller(jasperReport)
JRFiller.createFiller(DefaultJasperReportsContext.getInstance(), jasperReport);
JasperPrint print = filler.fill(yourParameterMap, yourDatasource);
Object value = filler.getVariableValue(variableName); // here's what you need
请注意,您再也无法使用JasperFillManager.fillReport
。
答案 1 :(得分:-1)
@brunobastosg如果我们有报告返回一行包含所有空字段且data_found中为0的行,则此方法将不起作用,在这种情况下,您无法确定它是否真的没有数据。