1

我是 Jasper Reports 的新手。我有 2 组的报告。根据查询,正在打印多个页面。

第 1 组高度 - 95 分和第 2 组高度 - 144 分

我希望将这些多页打印在一页中(我想在一页中合并 5 页)。每个页面高度为 239 点。(即使页面内容少于 239 点,我想将剩余部分保持为空白,并在 239 点之后开始下一页)。我尝试创建一个报告并将上述报告作为子报告包含在内,并将主报告的高度设置为 1195 (239 * 5) 点。尽管如此,这些都被打印在不同的页面上。

导出的结果是: 报告打印时看起来像这样

报告的主要设计是: 主报告 - 这包括 2 个子报告

第一个子报表设计是: 第一份子报告

第二个子报表设计是: 第二分报告
请帮我解决这个问题。

4

1 回答 1

0

我已经根据您的规格进行了测试,它似乎工作得很好。我可以在这里给你一些建议。

  1. 在您的主报告设计中,子报告元素的高度无关紧要,只要它等于基础带区即可。如果子报表元素较短,则差异将出现在结果中。
  2. 子报告的页面高度无关紧要,只是乐队的总高度。
  3. 检查以确保尚未在您创建的组上选择“在新页面上开始”选项。这是最有可能的问题。

如果前 3 项未能解决您的问题,请查看下面的示例并比较差异。

主报告:

<?xml version="1.0" encoding="UTF-8"?>
<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="MainReport1" language="groovy" pageWidth="595" pageHeight="1195" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="0" bottomMargin="0">
    <property name="ireport.zoom" value="1.0"/>
    <property name="ireport.x" value="0"/>
    <property name="ireport.y" value="0"/>
    <parameter name="SUBREPORT_DIR" class="java.lang.String" isForPrompting="false">
        <defaultValueExpression><![CDATA["C:\\Users\\Bizz\\Documents\\JasperReports\\"]]></defaultValueExpression>
    </parameter>
    <queryString>
        <![CDATA[SELECT
     PRODUCT."ID" AS PRODUCT_ID,
     PRODUCT."NAME" AS PRODUCT_NAME,
     PRODUCT."COST" AS PRODUCT_COST
FROM
     "PUBLIC"."PRODUCT" PRODUCT]]>
    </queryString>
    <field name="PRODUCT_ID" class="java.lang.Integer"/>
    <field name="PRODUCT_NAME" class="java.lang.String"/>
    <field name="PRODUCT_COST" class="java.math.BigDecimal"/>
    <group name="Group1">
        <groupExpression><![CDATA[$F{PRODUCT_ID}]]></groupExpression>
        <groupHeader>
            <band height="50">
                <subreport>
                    <reportElement x="0" y="0" width="200" height="50"/>
                    <subreportParameter name="ProductID">
                        <subreportParameterExpression><![CDATA[$F{PRODUCT_ID}]]></subreportParameterExpression>
                    </subreportParameter>
                    <connectionExpression><![CDATA[$P{REPORT_CONNECTION}]]></connectionExpression>
                    <subreportExpression><![CDATA[$P{SUBREPORT_DIR} + "MainReport1_subreport2.jasper"]]></subreportExpression>
                </subreport>
            </band>
        </groupHeader>
    </group>
    <group name="Group2">
        <groupExpression><![CDATA["2"]]></groupExpression>
        <groupHeader>
            <band height="50">
                <subreport>
                    <reportElement x="0" y="0" width="200" height="50"/>
                    <subreportParameter name="ProductID">
                        <subreportParameterExpression><![CDATA[$F{PRODUCT_ID}]]></subreportParameterExpression>
                    </subreportParameter>
                    <connectionExpression><![CDATA[$P{REPORT_CONNECTION}]]></connectionExpression>
                    <subreportExpression><![CDATA[$P{SUBREPORT_DIR} + "MainReport1_subreport1.jasper"]]></subreportExpression>
                </subreport>
            </band>
        </groupHeader>
    </group>
    <background>
        <band splitType="Stretch"/>
    </background>
    <title>
        <band splitType="Stretch"/>
    </title>
    <pageHeader>
        <band splitType="Stretch"/>
    </pageHeader>
    <columnHeader>
        <band splitType="Stretch"/>
    </columnHeader>
    <detail>
        <band splitType="Stretch"/>
    </detail>
    <columnFooter>
        <band splitType="Stretch"/>
    </columnFooter>
    <pageFooter>
        <band splitType="Stretch"/>
    </pageFooter>
    <summary>
        <band splitType="Stretch"/>
    </summary>
</jasperReport>

子报表1:

<?xml version="1.0" encoding="UTF-8"?>
<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="MainReport1_subreport1" language="groovy" pageWidth="555" pageHeight="95" columnWidth="555" leftMargin="0" rightMargin="0" topMargin="0" bottomMargin="0">
    <property name="ireport.zoom" value="1.0"/>
    <property name="ireport.x" value="0"/>
    <property name="ireport.y" value="0"/>
    <parameter name="ProductID" class="java.lang.Integer"/>
    <queryString>
        <![CDATA[SELECT
     PRODUCT."ID" AS PRODUCT_ID,
     PRODUCT."NAME" AS PRODUCT_NAME,
     PRODUCT."COST" AS PRODUCT_COST
FROM
     "PUBLIC"."PRODUCT" PRODUCT
where
  product_id = $P{ProductID}]]>
    </queryString>
    <field name="PRODUCT_ID" class="java.lang.Integer"/>
    <field name="PRODUCT_NAME" class="java.lang.String"/>
    <field name="PRODUCT_COST" class="java.math.BigDecimal"/>
    <background>
        <band splitType="Stretch"/>
    </background>
    <title>
        <band splitType="Stretch"/>
    </title>
    <pageHeader>
        <band splitType="Stretch"/>
    </pageHeader>
    <columnHeader>
        <band splitType="Stretch"/>
    </columnHeader>
    <detail>
        <band height="95" splitType="Stretch">
            <staticText>
                <reportElement x="0" y="0" width="100" height="20"/>
                <textElement/>
                <text><![CDATA[PRODUCT_ID]]></text>
            </staticText>
            <textField>
                <reportElement x="100" y="0" width="100" height="20"/>
                <textElement/>
                <textFieldExpression><![CDATA[$F{PRODUCT_ID}]]></textFieldExpression>
            </textField>
            <staticText>
                <reportElement x="0" y="20" width="100" height="20"/>
                <textElement/>
                <text><![CDATA[PRODUCT_NAME]]></text>
            </staticText>
            <textField>
                <reportElement x="100" y="20" width="100" height="20"/>
                <textElement/>
                <textFieldExpression><![CDATA[$F{PRODUCT_NAME}]]></textFieldExpression>
            </textField>
            <staticText>
                <reportElement x="0" y="40" width="100" height="20"/>
                <textElement/>
                <text><![CDATA[PRODUCT_COST]]></text>
            </staticText>
            <textField>
                <reportElement x="100" y="40" width="100" height="20"/>
                <textElement/>
                <textFieldExpression><![CDATA[$F{PRODUCT_COST}]]></textFieldExpression>
            </textField>
            <componentElement>
                <reportElement x="0" y="60" width="200" height="35"/>
                <jr:barbecue xmlns:jr="http://jasperreports.sourceforge.net/jasperreports/components" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports/components http://jasperreports.sourceforge.net/xsd/components.xsd" type="3of9" drawText="false" checksumRequired="false">
                    <jr:codeExpression><![CDATA[$F{PRODUCT_ID}]]></jr:codeExpression>
                </jr:barbecue>
            </componentElement>
        </band>
    </detail>
    <columnFooter>
        <band splitType="Stretch"/>
    </columnFooter>
    <pageFooter>
        <band splitType="Stretch"/>
    </pageFooter>
    <summary>
        <band splitType="Stretch"/>
    </summary>
</jasperReport>

子报告2:

<?xml version="1.0" encoding="UTF-8"?>
<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="MainReport1_subreport2" language="groovy" pageWidth="555" pageHeight="888" columnWidth="555" leftMargin="0" rightMargin="0" topMargin="0" bottomMargin="0">
    <property name="ireport.zoom" value="1.0"/>
    <property name="ireport.x" value="0"/>
    <property name="ireport.y" value="0"/>
    <parameter name="ProductID" class="java.lang.Integer"/>
    <queryString>
        <![CDATA[SELECT
     PRODUCT."ID" AS PRODUCT_ID,
     PRODUCT."NAME" AS PRODUCT_NAME,
     PRODUCT."COST" AS PRODUCT_COST
FROM
     "PUBLIC"."PRODUCT" PRODUCT
where
  product_id = $P{ProductID}]]>
    </queryString>
    <field name="PRODUCT_ID" class="java.lang.Integer"/>
    <field name="PRODUCT_NAME" class="java.lang.String"/>
    <field name="PRODUCT_COST" class="java.math.BigDecimal"/>
    <background>
        <band splitType="Stretch"/>
    </background>
    <title>
        <band splitType="Stretch"/>
    </title>
    <pageHeader>
        <band splitType="Stretch"/>
    </pageHeader>
    <columnHeader>
        <band splitType="Stretch"/>
    </columnHeader>
    <detail>
        <band height="144" splitType="Stretch">
            <staticText>
                <reportElement x="0" y="0" width="100" height="20"/>
                <textElement/>
                <text><![CDATA[PRODUCT_ID]]></text>
            </staticText>
            <textField>
                <reportElement x="100" y="0" width="100" height="20"/>
                <textElement/>
                <textFieldExpression><![CDATA[$F{PRODUCT_ID}]]></textFieldExpression>
            </textField>
            <staticText>
                <reportElement x="0" y="20" width="100" height="20"/>
                <textElement/>
                <text><![CDATA[PRODUCT_NAME]]></text>
            </staticText>
            <textField>
                <reportElement x="100" y="20" width="100" height="20"/>
                <textElement/>
                <textFieldExpression><![CDATA[$F{PRODUCT_NAME}]]></textFieldExpression>
            </textField>
            <staticText>
                <reportElement x="0" y="40" width="100" height="20"/>
                <textElement/>
                <text><![CDATA[PRODUCT_COST]]></text>
            </staticText>
            <textField>
                <reportElement x="100" y="40" width="100" height="20"/>
                <textElement/>
                <textFieldExpression><![CDATA[$F{PRODUCT_COST}]]></textFieldExpression>
            </textField>
            <componentElement>
                <reportElement x="0" y="60" width="302" height="84"/>
                <jr:barbecue xmlns:jr="http://jasperreports.sourceforge.net/jasperreports/components" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports/components http://jasperreports.sourceforge.net/xsd/components.xsd" type="3of9" drawText="false" checksumRequired="false">
                    <jr:codeExpression><![CDATA[$F{PRODUCT_ID}]]></jr:codeExpression>
                </jr:barbecue>
            </componentElement>
        </band>
    </detail>
    <columnFooter>
        <band splitType="Stretch"/>
    </columnFooter>
    <pageFooter>
        <band splitType="Stretch"/>
    </pageFooter>
    <summary>
        <band splitType="Stretch"/>
    </summary>
</jasperReport>
于 2012-05-17T00:47:13.490 回答