带有子报表的报表显示空白页

问题描述

我的简单报告包含三个子报告,所有这些都可以单独正确预览 AFAICT。但是,主报表预览始终显示两个空白页。

它从 Über JAR 应用程序(一个包含所有内容的 JAR)显示,因此子报表可以作为资源访问,而不是从常规文件系统(基于 Windows)访问。

所以我调整了参数以在两种访问文件的形式之间切换,一种用于在 JasperSoft Studio 中进行可视化,另一种用于在应用程序中常规使用。根据调用报告的方式,参数会发生变化。

在下面的模板中,最后两个子报告引用实现了切换,第一个被设置为测试目的,以访问常规文件系统路径。所以我希望至少可以正确显示。

我做错了什么?这些文件似乎可用(至少我没有收到关于它们的错误或警告)。

我已切换到最新的 JasperSoft Studio 版本(目前为 6.16.0.final),但在我的情况下无济于事。

在 JS Studio 中,我使用的数据源在我弄乱 JRXML 文件(用于应用 i18n)之前曾经可以工作。它是来自不同项目的数据源,其 bin 文件夹已添加到应用程序项目的构建路径中。

我可以将数据源更改为“一个空记录”也无济于事。

我还尝试引用 .jasper 文件代替 .jrxml,但也没有用。

如果有人有任何建议或需要更多信息,请告诉我。

ViewCustomer.jrxml:

<?xml version="1.0" encoding="UTF-8"?>
<!-- Created with Jaspersoft Studio version 6.16.0.final using JasperReports Library version 6.16.0-48579d909b7943b64690c65c71e07e0b80981928  -->
<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="test" pageWidth="612" pageHeight="792" whenNoDataType="AllSectionsNoDetail" columnWidth="612" leftMargin="0" rightMargin="0" topMargin="0" bottomMargin="0" isSummaryNewPage="true" uuid="9ac8b394-36b0-409a-8a94-b8147d9c2d21">
    <property name="com.jaspersoft.studio.data.defaultdataadapter" value="Customer Info Data Adapter"/>
    <import value="com.myapp.Main"/>
    <parameter name="DEFAULT_SUBREPORT_DIR" class="java.lang.String" isForPrompting="false">
        <defaultValueExpression><![CDATA["C:\\the\\correct\\absolute\\report\\folder\\"]]></defaultValueExpression>
    </parameter>
    <parameter name="SUBREPORT_DIR" class="java.lang.String" isForPrompting="false">
        <defaultValueExpression><![CDATA[$P{DEFAULT_SUBREPORT_DIR}]]></defaultValueExpression>
    </parameter>
    <parameter name="CUSTOMER_INFO_SUBREPORT" class="java.lang.String" isForPrompting="false">
        <defaultValueExpression><![CDATA[$P{SUBREPORT_DIR} + "CustomerInfo.jrxml"]]></defaultValueExpression>
    </parameter>
    <parameter name="CUSTOMER_ADDRESSES_SUBREPORT" class="java.lang.String" isForPrompting="false">
        <defaultValueExpression><![CDATA[$P{SUBREPORT_DIR}.equals($P{DEFAULT_SUBREPORT_DIR}) ? $P{SUBREPORT_DIR} + "CustomerAddresses.jrxml" : Main.class.getResource($P{SUBREPORT_DIR} + "CustomerAddresses.jrxml").toString()]]></defaultValueExpression>
    </parameter>
    <parameter name="CUSTOMER_ORDERS_SUBREPORT" class="java.lang.String" isForPrompting="false">
        <defaultValueExpression><![CDATA[$P{SUBREPORT_DIR}.equals($P{DEFAULT_SUBREPORT_DIR}) ? $P{SUBREPORT_DIR} + "CustomerOrders.jrxml" : Main.class.getResource($P{SUBREPORT_DIR} + "CustomerOrders.jrxml").toString()]]></defaultValueExpression>
    </parameter>
    <parameter name="customerInfos" class="java.util.List" isForPrompting="false">
        <defaultValueExpression><![CDATA[new java.util.ArrayList()]]></defaultValueExpression>
    </parameter>
    <parameter name="customerAddresses" class="java.util.List" isForPrompting="false">
        <defaultValueExpression><![CDATA[new java.util.ArrayList()]]></defaultValueExpression>
    </parameter>
    <parameter name="customerOrders" class="java.util.List" isForPrompting="false">
        <defaultValueExpression><![CDATA[new java.util.ArrayList()]]></defaultValueExpression>
    </parameter>
    <title>
        <band height="213">
            <subreport>
                <reportElement x="10" y="10" width="590" height="70" uuid="e98a3620-58d6-47c1-8c93-6ca3d749b31c"/>
                <dataSourceExpression><![CDATA[new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource($P{customerInfos})]]></dataSourceExpression>
                <subreportExpression><![CDATA[$P{CUSTOMER_INFO_SUBREPORT}]]></subreportExpression>
            </subreport>
            <subreport>
                <reportElement x="11" y="140" width="590" height="60" uuid="bc0c1758-9ce9-4f6d-a01c-2c77f59ae1fb"/>
                <dataSourceExpression><![CDATA[new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource($P{customerAddresses})]]></dataSourceExpression>
                <subreportExpression><![CDATA[$P{CUSTOMER_ADDRESSES_SUBREPORT}]]></subreportExpression>
            </subreport>
        </band>
    </title>
    <summary>
        <band height="217">
            <subreport>
                <reportElement x="11" y="10" width="589" height="190" uuid="8ef01d8f-21fd-4cb6-86a9-fb35967c4430"/>
                <dataSourceExpression><![CDATA[new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource($P{customerOrders})]]></dataSourceExpression>
                <subreportExpression><![CDATA[$P{CUSTOMER_ORDERS_SUBREPORT}]]></subreportExpression>
            </subreport>
        </band>
    </summary>
</jasperReport>

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...