在运行时将 Jasper 子报告作为参数传递 Spring 引导

Pass Jasper Sub Report as a Parameter at runtime Spring Boot

我被困在一个场景中,我必须将 Sub 报告作为参数传递给我的 Jasper 报告 Object.I 我是 Jasper 的新手并且 Spring Boot。因为当我在本地传递参数列表中的子报告时它工作正常但是当我将它部署在服务器上时它说我的 fileName.jrxml not found.

不是参数问题。它的文件路径问题。您需要在服务器上以流的形式加载 jrxml 文件,因为在 Springboot 中解析文件路径有时会创建通常找不到的复杂路径,或者人们会在定义路径时出错。 您必须遵循一些步骤。

  1. 在项目的资源目录中创建文件夹

  2. 将你的 jrxml 放在那里

  3. 将您的 jrxml 文件加载为 Stream

InputStream 流=getClass().getResourceAsStream("/yourdir/yourfile.jrxml");

  1. 将 Stream 编译成 jasperReport 对象

    JasperReport subReportJasperCompileManager.compileReport(流);

  2. 现在将其传递到父报告中同名的Param List

    parameters.put("sub_report_setting", subJasperReportSetting);

这是第 3,4 和第 5 步。

InputStream stream=getClass().getResourceAsStream("/yourdir/yourfile.jrxml");
JasperReport subReportJasperCompileManager.compileReport(stream);
parameters.put("sub_report", subJasperReportSetting);