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找不到子报表,即使路径正确也是如此。

解决此问题的方法:

  1. 传递$P{SUBREPORT_DIR}到主报告(在本例中为“ /valid/path/”),将此参数放入HashMap<String, Object>-标准方式将参数传递给jasper。
  2. $P{SUBREPORT_DIR} 从主报表传递到子报表作为参数:$P{SUBREPORT_DIR}主报表-> $P{SUBREPORT_DIR}子报表(这种方式在存在子报表时使用,从子报表调用)
  3. 在主报表中,将表达式设置为子报表为$P{SUBREPORT_DIR}+“ sub.report.jasper”

以上是 JasperReports:找不到子报表 的全部内容, 来源链接: utcz.com/qa/411558.html

回到顶部