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