如何在Java代码中访问JasperReports的变量?

时间:2015-03-10 19:16:56

标签: java jasper-reports

我想从 Java 代码中的 JasperReports 访问VARIABLE。更具体地说,我需要在填写报告后知道 Java 代码中的REPORT_COUNT和SUBREPORT_COUNT。我已经尝试将其设置为属性,但这不起作用。

报告已安排,如果没有数据,我不想发送电子邮件。我已经尝试将“当没有数据”设置为“打印0页”,然后检查java代码中的页数。如果只有主数据或仅存在子报表中的数据,则此方法无效。如果主报表或子报表没有数据,我希望它打印0页。

我确信这已被问过,但我找不到我需要的东西。如果有人能指出我正确的方向,我们将不胜感激。

2 个答案:

答案 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的行,则此方法将不起作用,在这种情况下,您无法确定它是否真的没有数据。