如何将jasper文件路径传递给子报表的子报表

Man*_*anu 4 java jasper-reports

我正在使用iReport工具和JasperReports 1.3.4.

我有一个主报告,其中包含两个子报告.其中一个子报表具有嵌入式子报表.所有.jasper文件都驻留在同一目录中.

iReport生成了一个名为的参数SUBREPORT_DIR.subreportExpression将子报表文件名表示为![CDATA[$P{SUBREPORT_DIR} + "subreport.jasper"].

从iReport内部生成报告时,一切都很有效.但是,我有一个小的Java Web应用程序,我试图用来生成报告.我将"SUBREPORT_DIR"参数传递给JasperFillManager.fillReport(String sourceFileName, Map parameters, JRBeanCollectionDatasource).这SUBREPORT_DIR将设置为主报告所在的目录.

fillReport抛出异常:

 net.sf.jasperreports.engine.JRException: Could not load object from location :
    .sub-subreport.jasper.
Run Code Online (Sandbox Code Playgroud)

看来第一个子报表正在尝试处理它subreport(embedded subreport),但是SUBREPORT_DIR没有解析,或者正确使用它来生成子子报表的名称.

有什么我想念的吗?该方案应该如何处理?

小智 5

点击进入Subreport1,进入properties tab -> Subreport properties -> Parameters

您将' MasterReport ' SUBREPORT_DIR参数作为参数传递给' Subreport1 '.创建此条目:

姓名:SUBREPORT_DIR 表达:$P{SUBREPORT_DIR}

不要忘记重新编译报告,并确保在应用程序服务器中重新发布您的Web应用程序.