如何使用Jasper加载子报表资源?

使用Jasper,我可以使用资源来加载报告。因此,要加载主报告,我使用类似以下内容的内容:

InputStream is = getClass().getResourceAsStream("/resources/report1.jrxml");

design = JRXmlLoader.load(is);

但是,如果report1.jrxml中有一个子报表,怎么说在 /resources/sub.jrxml中 呢?

回答:

我这样做是这样的:

jasperDesign = JRXmlLoader.load(rootpath + "/WEB-INF/templates/Report.jrxml");

jasperDesignSR = JRXmlLoader.load(rootpath + "/WEB-INF/templates/SubReport.jrxml");

JasperReport jasperReport = JasperCompileManager.compileReport(jasperDesign);

JasperReport jasperReportSR = JasperCompileManager.compileReport(jasperDesignSR);

parameters.put("SubReportParam", jasperReportSR);

JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, parameters, dataSource);

“ SubReportParam”将是“ JasperReport”类型的参数,作为您报表中的SubreportExpression。

在.jrxml中:

<parameter name="SubReportParam" class="net.sf.jasperreports.engine.JasperReport" isForPrompting="false"/>

我不知道您是否在报表设计中使用IReport。右键单击子报表,您应该找到SubreportExpression。参数是我传递给“

fillReport”的地图

祝好运。

以上是 如何使用Jasper加载子报表资源? 的全部内容, 来源链接: utcz.com/qa/403611.html

回到顶部