Jasper reports isIgnorePagination时如何拆分到新页面?

Jasper reports isIgnorePagination时如何拆分到新页面?,jasper-reports,Jasper Reports,使用Jaspersoft studio 6.2 包含详细和摘要栏的主报告。主报告摘要栏中的子报告。主报告本身(如果没有子报告)将分为两页,因此我选中了isIgnorePagination,主报告(如果没有子报告)将显示为一页 默认情况下,子报表本身拆分为9页,当我选中isIgnorePagination时,它显示为一个单独的页面。好的当我将子报表与上面的所有设置放在主报表中时,它显示为一个单独的页面。如何在一页中制作主报告,在另一页中制作子报告(总共两页) 编辑 尝试了中断组件,它可以工作,但仍

使用Jaspersoft studio 6.2

包含详细和摘要栏的主报告。主报告摘要栏中的子报告。主报告本身(如果没有子报告)将分为两页,因此我选中了
isIgnorePagination
,主报告(如果没有子报告)将显示为一页

默认情况下,子报表本身拆分为9页,当我选中
isIgnorePagination
时,它显示为一个单独的页面。好的当我将子报表与上面的所有设置放在主报表中时,它显示为一个单独的页面。如何在一页中制作主报告,在另一页中制作子报告(总共两页)

编辑

尝试了中断组件,它可以工作,但仍然存在问题。主报告的页面高度必须设置为足够大,以同时包含主报告和子报告,否则将有超过2页,但这将在主报告底部留下太多空白。下面是一个例子来说明我的意思

主报告

    <?xml version="1.0" encoding="UTF-8"?>
    <!-- Created with Jaspersoft Studio version 6.2.0.final using JasperReports Library version 6.2.0  -->
    <!-- 2016-04-26T16:13:43 -->
    <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="test11" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="ce9d78e1-7194-4754-aaf9-93e871d2a5cf">
        <property name="com.jaspersoft.studio.data.sql.tables" value=""/>
        <property name="com.jaspersoft.studio.data.defaultdataadapter" value="datamart"/>
        <property name="com.jaspersoft.studio.unit." value="pixel"/>
        <queryString>
            <![CDATA[select 1 as a
    union all select 2 as a]]>
        </queryString>
        <field name="a" class="java.lang.Integer"/>
        <variable name="Total" class="java.lang.Integer" calculation="Sum">
            <variableExpression><![CDATA[$F{a}]]></variableExpression>
        </variable>
        <background>
            <band splitType="Stretch"/>
        </background>
        <columnHeader>
            <band height="50">
                <staticText>
                    <reportElement x="54" y="0" width="100" height="30" uuid="e9116c0f-c827-4cb3-95d1-9155f4be7cb7"/>
                    <text><![CDATA[a]]></text>
                </staticText>
            </band>
        </columnHeader>
        <detail>
            <band height="49" splitType="Stretch">
                <textField>
                    <reportElement x="50" y="10" width="100" height="30" uuid="79fa53fa-48e2-43d0-96a4-0cda54e95c25"/>
                    <textFieldExpression><![CDATA[$F{a}]]></textFieldExpression>
                </textField>
            </band>
        </detail>
        <summary>
            <band height="297" splitType="Stretch">
                <textField>
                    <reportElement mode="Opaque" x="52" y="16" width="100" height="30" backcolor="#C4E5F6" uuid="2a393151-947e-4f1d-ab24-e456ce56bd19"/>
                    <textFieldExpression><![CDATA[$V{Total}]]></textFieldExpression>
                </textField>
                <subreport>
                    <reportElement x="62" y="97" width="200" height="200" uuid="b342cbae-597b-4ca5-b00d-3a4d047910f8"/>
                    <connectionExpression><![CDATA[$P{REPORT_CONNECTION}]]></connectionExpression>
                    <subreportExpression><![CDATA["test12.jasper"]]></subreportExpression>
                </subreport>
                <break>
                    <reportElement x="0" y="60" width="619" height="1" uuid="ccc2155d-6a2e-4c23-a972-88bb871cb17d"/>
                </break>
            </band>
        </summary>
    </jasperReport>

子报告

    <?xml version="1.0" encoding="UTF-8"?>
    <!-- Created with Jaspersoft Studio version 6.2.0.final using JasperReports Library version 6.2.0  -->
    <!-- 2016-04-26T16:14:10 -->
    <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="test12" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="3601f813-f6da-4105-a4d8-5c1ee1dd54d4">
        <property name="com.jaspersoft.studio.data.sql.tables" value=""/>
        <property name="com.jaspersoft.studio.data.defaultdataadapter" value="datamart"/>
        <queryString>
            <![CDATA[select 10 as col 
    union all select 20  as col]]>
        </queryString>
        <field name="col" class="java.lang.Integer"/>
        <variable name="total" class="java.lang.Integer" calculation="Sum">
            <variableExpression><![CDATA[$F{col}]]></variableExpression>
        </variable>
        <background>
            <band splitType="Stretch"/>
        </background>
        <columnHeader>
            <band height="61" splitType="Stretch">
                <staticText>
                    <reportElement x="73" y="0" width="100" height="30" uuid="5f2cfa26-c7ab-413e-94cf-80c1f1b288eb"/>
                    <text><![CDATA[col]]></text>
                </staticText>
            </band>
        </columnHeader>
        <detail>
            <band height="125" splitType="Stretch">
                <textField>
                    <reportElement x="73" y="90" width="100" height="30" uuid="3af983fb-00e2-4bb9-9e91-2d2214ca95d7"/>
                    <textFieldExpression><![CDATA[$F{col}]]></textFieldExpression>
                </textField>
            </band>
        </detail>
        <summary>
            <band height="49" splitType="Stretch">
                <textField>
                    <reportElement mode="Opaque" x="74" y="19" width="100" height="30" backcolor="#FFCC33" uuid="b333fb92-8aa8-4f00-9a1a-db24657d5521"/>
                    <textFieldExpression><![CDATA[$V{total}]]></textFieldExpression>
                </textField>
            </band>
        </summary>
    </jasperReport>


主报告中有一个中断,这很好,2页,一页用于主报告,一页用于子报告,但主报告在底部留下了太多空白,如果我降低主报告的高度(例如,到400像素),将有超过2页。是否可以只获得两个页面而没有太多空白?

要为每个页面实现不同的大小,您需要使用
jasperReport
标记上的属性
isIgnorePagination=“true”

isIgnorePagination
为true时,break元素默认被忽略您需要通过将此属性设置为
apply来启用它

忽略-在未分页的报告中忽略分页符。(默认)
应用- 在未分页的报告中,可以使用分页符


这将启用中断组件,您可以使用

<break> 
    <reportElement x="0" y="0" width="100" height="1" uuid="604c65b5-1127-4874-a63c-9b1a98dbf25c"/>
</break>


使用标题栏、详细信息栏(主报告)和摘要栏(子报告),属性为isSummaryNewPage=“true”,这样您就有两个页面或使用中断组件。似乎很奇怪,你需要使用IgnorePagination,你能创建一个Hi I'm new to jasper报告吗。在哪里可以找到isSummaryNewPage或break组件?isSummaryNewPage是jasperReport标记上的属性(如果选择根结构标记,则可以在属性中找到它)。break是一个组件,它包含一个页面分隔符或列分隔符(如果使用IDE,可以在调色板中找到它)。添加了一个示例,break组件可以工作,但仍然存在一个问题。不同页面上需要不同的页面高度?该设置会生成两个单独的页面。但主报表或第一个报表似乎会调整大小以适应摘要栏中的子报表。因此,主报告仍然有巨大的空白。我的示例并不明显,但您可以通过更改子报表中的查询来轻松测试它,以生成更多的详细数据,这样您就能够看到问题。您已将isIgnorePagination=“true”和页面高度设置为最小值?是的,isIgnorePagination=“true”,对于主高度=250,子报表高度=400,两者都是最小值(低于此值时,它将报告错误,因为它无法适应页面高度),但是第一个报告显示的页面可能有几千像素的高度,报告下方有巨大的空白。原因是子报告现在显示了更多详细信息(请记住,我已更改了查询)。您可以对其进行测试,查询是通用的。
<break> 
    <reportElement x="0" y="0" width="100" height="1" uuid="604c65b5-1127-4874-a63c-9b1a98dbf25c"/>
</break>