Jasper子报告没有显示

时间:2015-05-12 17:22:08

标签: jasper-reports subreport

我正在使用Eclipse JasperReports Studio并遇到了一个我无法解决的问题。我有一个非常基本的报告,详细字段返回大约30行。我有一个子报告,我想将其纳入主报告,但是当我添加它时,没有显示任何内容。我已经尝试将它添加到列页脚,页面页脚和x页面的x字段,以及详细信息字段中。由于它在检索的每一行之间添加了一个空白点,因此效果不佳。我有其他报告,在各个频段都有子报告,它们都运行良好。以下是col脚注的子报告代码:

    <columnFooter>
    <band height="110">
        <subreport>
            <reportElement isPrintRepeatedValues="false" x="0" y="10" width="555" height="100" uuid="34205e71-ec6b-422c-aa27-057678430999"/>
            <connectionExpression><![CDATA[$P{REPORT_CONNECTION}]]></connectionExpression>
            <subreportExpression><![CDATA["The_Report.jasper"]]></subreportExpression>
        </subreport>
    </band>
</columnFooter>

任何明显的原因都不会出现这种情况?我没有收到任何错误,主报告运行正常。子报表可以自行运行,它与主报表位于同一目录中。我在那里编译它,并且.jasper文件也存在。

2 个答案:

答案 0 :(得分:2)

验证子报表表达式是否指向正确/预期的子报表。有时(通常是由于复制和/或手动编辑现有的JRXML文件)子报表表达式仍然指向原始主报表的子报表Jasper文件。我自己也遇到了这个案子。

确保

<subreportExpression><![CDATA["The_Report.jasper"]]></subreportExpression>

不应该像

那样
<subreportExpression><![CDATA["The_New_SubReport.jasper"]]></subreportExpression>

或包含像

这样的Subreport目录
<subreportExpression><![CDATA[$P{SUBREPORT_DIR} + "The_New_SubReport.jasper"]]></subreportExpression>

您还应验证子报表是否需要数据才能显示。如果确实如此,并且您的查询未返回任何数据,则可以执行以下操作:

SELECT FIELD_NAME
FROM TABLE
WHERE KEY = $P{KEY}

UNION ALL

SELECT NULL AS FIELD_NAME
FROM DUAL WHERE (
  SELECT COUNT(*)
  FROM TABLE
  WHERE KEY = $P{KEY}
) = 0

答案 1 :(得分:0)

使用子报告时遇到了同样的问题 在编辑器中:删除内容表单connectionExpression
$P{REPORT_PARAMETERS_MAP}放入Parameters Map Expression为我做了诀窍。

源代码: <parametersMapExpression><![CDATA[$P{REPORT_PARAMETERS_MAP}]]></parametersMapExpression>