【问题标题】:Jasper Reports: How can I print multiple pages in one pageJasper Reports:如何在一页中打印多页
【发布时间】:2012-05-17 08:47:13
【问题描述】:

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

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

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

导出的结果是:

主要的报表设计是:

第一个子报表设计是:

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

【问题讨论】:

  • 你能把你的报表设计截图贴在 iReport 上吗?
  • @Alex,它不允许我添加图像。报告设计请找到链接_http://www.flickr.com/photos/78994541@N06

标签: jasper-reports ireport


【解决方案1】:

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

  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>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-02
    • 1970-01-01
    相关资源
    最近更新 更多