我将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.

似乎第一个子报表正在尝试处理其subreport(embedded subreport),但是SUBREPORT_DIR尚未解析,或未正确用于生成子子报表的名称。

有什么我想念的吗?应该如何处理这种情况?

最佳答案

点击Subreport1,转到properties tab -> Subreport properties -> Parameters
您将把' MasterReport 'SUBREPORT_DIR参数作为参数传递给' Subreport1 '。
创建此条目:

名称:SUBREPORT_DIR表达式:$P{SUBREPORT_DIR}
不要忘记重新编译报告,并确保在应用程序服务器中重新发布Web应用程序。

关于java - 如何将jasper文件路径传递到子报表的子报表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3702565/

10-11 22:07