在运行时将Jasper Sub Report作为参数传递给Spring Boot



我被困在一个场景中,我必须将Sub报告作为参数传递给我的Jasper报告对象。我是Jasper和Spring Boot的新手。因为当我在本地传递参数列表中的子报告时,它可以正常工作,但当我在服务器上部署它时,它会说找不到我的fileName.jrxml。

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

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

  2. 将您的jrxml放在中

  3. 将jrxml文件加载为Stream

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

  1. 将流编译为jasperReport Object

    JasperReport子报表JasperCompileManager.comileReport(流(;

  2. 现在在参数列表中传递它,在您的家长报告中使用相同的名称

    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);

最新更新