JasperReports:找不到子报表
我试图找出为什么我的报告停止工作后我添加了一个报表给它。我已经确认并尝试过所有类似的问题在这里,这里和这里。没有成功。子报表肯定位于同一目录中。定义看起来像:
<subreport isUsingCache="false"> <reportElement uuid="db816b3c-a13d-440f-a6a2-f899762e61e4" x="0" y="89" width="555" height="100"/>
<subreportParameter name="footerAddress">
<subreportParameterExpression><![CDATA[$P{footerAddress}]]></subreportParameterExpression>
</subreportParameter>
<subreportParameter name="footerManager">
<subreportParameterExpression><![CDATA[$P{footerManager}]]></subreportParameterExpression>
</subreportParameter>
<subreportParameter name="footerContact">
<subreportParameterExpression><![CDATA[$P{footerContact}]]></subreportParameterExpression>
</subreportParameter>
<subreportParameter name="footerBank">
<subreportParameterExpression><![CDATA[$P{footerBank}]]></subreportParameterExpression>
</subreportParameter>
<subreportExpression class="net.sf.jasperreports.engine.JasperReport"><![CDATA[$P{SUBREPORT_DIR}]]></subreportExpression>
</subreport>
$ P {SUBREPORT_DIR}在哪里 "/valid/path/sub.report.jasper"
而且仍然出现错误: Resource not found at /valid/path/sub.report.jasper
为什么??
回答:
在第一条消息中
$P{SUBREPORT_DIR}“ /valid/path/sub.report.jasper”
在哪里
$P{SUBREPORT_DIR}
是目录,但不是文件名。这是第一个错误。
第二个:有时jasper找不到子报表,即使路径正确也是如此。
解决此问题的方法:
- 传递
$P{SUBREPORT_DIR}
到主报告(在本例中为“ /valid/path/”
),将此参数放入HashMap<String, Object>
-标准方式将参数传递给jasper。 $P{SUBREPORT_DIR}
从主报表传递到子报表作为参数:$P{SUBREPORT_DIR}主报表->$P{SUBREPORT_DIR}
子报表(这种方式在存在子报表时使用,从子报表调用)- 在主报表中,将表达式设置为子报表为
$P{SUBREPORT_DIR}+“ sub.report.jasper”
以上是 JasperReports:找不到子报表 的全部内容, 来源链接: utcz.com/qa/411558.html