我被困在一个场景中,我必须将Sub报告作为参数传递给我的Jasper报告对象。我是Jasper和Spring Boot的新手。因为当我在本地传递参数列表中的子报告时,它可以正常工作,但当我在服务器上部署它时,它会说找不到我的fileName.jrxml。
这不是参数问题。其文件路径问题。由于Springboot中的文件路径解析,您需要在服务器上以流的形式加载jrxml文件。有时会创建复杂的路径,而这些路径通常找不到,或者人们在定义路径时出错。你必须遵循一些步骤。
-
在项目的Resources目录中创建文件夹
-
将您的jrxml放在中
-
将jrxml文件加载为Stream
InputStream流=getClass((.getResourceAsStream("/yourdir/yourfile.jrxml"(;
-
将流编译为jasperReport Object
JasperReport子报表JasperCompileManager.comileReport(流(;
-
现在在参数列表中传递它,在您的家长报告中使用相同的名称
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);