Jasper reports 在jasper reports 3.7.2中插入插入插入表格,每页仅打印10行

Jasper reports 在jasper reports 3.7.2中插入插入插入表格,每页仅打印10行,jasper-reports,Jasper Reports,我有一个jasper代码,它以表格格式打印报告,报告的值在运行时从java类传递,我使用jasper reports 3.7.2 jar打印报告。jasper代码如下所示: <?xml version="1.0" encoding="UTF-8"?> <jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchem

我有一个jasper代码,它以表格格式打印报告,报告的值在运行时从java类传递,我使用jasper reports 3.7.2 jar打印报告。jasper代码如下所示:

<?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="grouping_on_zipcode_basis" pageWidth="1400" pageHeight="750" orientation="Landscape" isIgnorePagination="true" columnWidth="1300" leftMargin="30" rightMargin="30" topMargin="20" bottomMargin="20" isFloatColumnFooter="true" >
    <property name="ireport.zoom" value="1.0"/>
    <property name="ireport.x" value="0"/>
    <property name="ireport.y" value="0"/>
    <property name="ireport.scriptlethandling" value="0"/>
    <property name="ireport.encoding" value="UTF-8"/>
    <import value="net.sf.jasperreports.engine.*"/>
    <import value="java.util.*"/>
    <import value="net.sf.jasperreports.engine.data.*"/>
    <style name="table">
        <box>
            <pen lineWidth="1.0" lineColor="#000000"/>
        </box>
    </style>
    <style name="table_TH" mode="Opaque" backcolor="#F0F8FF">
        <box>
            <pen lineWidth="0.5" lineColor="#000000"/>
        </box>
    </style>
    <style name="table_CH" mode="Opaque" forecolor="#FFFFFF" backcolor="#006F3A">
        <box>
            <pen lineWidth="0.5" lineColor="#000000"/>
        </box>
    </style>
    <style name="table_TD" mode="Opaque" backcolor="#57A7E8">
        <box>
            <pen lineWidth="0.5" lineColor="#000000"/>
        </box>
        <conditionalStyle>
            <conditionExpression><![CDATA[Boolean.valueOf($V{REPORT_COUNT}.intValue() % 2 == 0)]]></conditionExpression>
            <style backcolor="#FFFFFF"/>
        </conditionalStyle>
    </style>
    <subDataset name="tableDataset" >
        <field name="participantName" class="java.lang.String"/>
        <field name="Ssn" class="java.lang.String"/>
        <field name="Zipcode" class="java.lang.String"/>
    </subDataset>
        <field name="Ssn" class="java.lang.String"/>
        <field name="Zipcode" class="java.lang.String"/>
    <background>
        <band />
    </background>
    <title>
        <band height="200">
            <componentElement>
                <reportElement key="table" style="table" x="146" y="150" width="299" height="46" isRemoveLineWhenBlank="true" />
                <jr:table xmlns:jr="http://jasperreports.sourceforge.net/jasperreports/components" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports/components http://jasperreports.sourceforge.net/xsd/components.xsd">
                    <datasetRun subDataset="tableDataset">
                        <datasetParameter name="REPORT_DATA_SOURCE">
                           <datasetParameterExpression><![CDATA[$P{REPORT_DATA_SOURCE}]]></datasetParameterExpression>
                        </datasetParameter>
                    </datasetRun>
                    <jr:column width="90" >
                        <jr:columnHeader style="table_CH" height="30" rowSpan="1">
                            <staticText>
                                <reportElement x="0" y="0" width="90" height="30" />
                                <text><![CDATA[PARTICIPANT NAME]]></text></staticText>
                        </jr:columnHeader>
                        <jr:detailCell style="table_TD" height="20" rowSpan="1">
                            <textField>
                                <reportElement x="0" y="0" width="90" height="20" >
                                </reportElement>
                                <textFieldExpression><![CDATA[$F{participantName}]]></textFieldExpression>
                            </textField>
                        </jr:detailCell>
                    </jr:column>
                    <jr:column width="90" >
                        <jr:columnHeader style="table_CH" height="30" rowSpan="1">
                            <staticText>
                                <reportElement x="0" y="0" width="90" height="30" >
                                <printWhenExpression><![CDATA[new Boolean($F{Ssn}!= null)]]></printWhenExpression>
                                </reportElement>
                                <text><![CDATA[SSN]]></text>
                            </staticText>
                        </jr:columnHeader>
                        <jr:detailCell style="table_TD" height="20" rowSpan="1">
                            <textField isBlankWhenNull="true">
                                <reportElement isRemoveLineWhenBlank="true" x="0" y="0" width="90" height="20" />
                                <textFieldExpression><![CDATA[$F{Ssn}]]></textFieldExpression>
                            </textField>
                        </jr:detailCell>
                    </jr:column>
                    <jr:column width="90" >
                            <printWhenExpression><![CDATA[new Boolean($F{Zipcode}!= null)]]></printWhenExpression>
                        <jr:columnHeader style="table_CH" height="30" rowSpan="1">
                            <staticText>
                                <reportElement x="0" y="0" width="90" height="30" >
                                    <printWhenExpression><![CDATA[new Boolean($F{Zipcode}!= null)]]></printWhenExpression>
                                </reportElement>
                                <text><![CDATA[ZIPCODE]]></text>
                            </staticText>
                        </jr:columnHeader>
                        <jr:detailCell style="table_TD" height="20" rowSpan="1">
                            <textField isBlankWhenNull="true">
                                <reportElement isRemoveLineWhenBlank="true" x="0" y="0" width="90" height="20" />
                                <textFieldExpression><![CDATA[$F{participantZip}]]></textFieldExpression>
                            </textField>
                        </jr:detailCell>
                    </jr:column>
                </jr:table>
            </componentElement>
        </band>
        </title>
    <columnFooter>
        <band />
    </columnFooter>
    <pageFooter>
        <band />
    </pageFooter>
    <summary>
        <band />
    </summary>
</jasperReport>
<jr:detailCell style="table_TD" height="30" rowSpan="1">
                            <textField>
                                <reportElement x="0" y="0" width="90" height="18"/>
                                <textElement/>
                                <textFieldExpression class="java.lang.String"><![CDATA[$F{participantName}]]></textFieldExpression>
                            </textField>
                            <break type="Column">
                                <reportElement x="0" y="19" width="90" height="1">
                                    <printWhenExpression><![CDATA[new java.lang.Boolean((int)($V{REPORT_COUNT}.intValue())%10==0)]]></printWhenExpression>
                                </reportElement>
                            </break>
                        </jr:detailCell>


现在我只想在每个表中打印10行,接下来的值必须在下一页的新表中打印,然后继续。但所有表必须只包含10行。请帮帮我

我找到了一个方法。我们可以使用“表达式打印时”在详细信息单元格的末尾插入分栏符。代码如下:

<?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="grouping_on_zipcode_basis" pageWidth="1400" pageHeight="750" orientation="Landscape" isIgnorePagination="true" columnWidth="1300" leftMargin="30" rightMargin="30" topMargin="20" bottomMargin="20" isFloatColumnFooter="true" >
    <property name="ireport.zoom" value="1.0"/>
    <property name="ireport.x" value="0"/>
    <property name="ireport.y" value="0"/>
    <property name="ireport.scriptlethandling" value="0"/>
    <property name="ireport.encoding" value="UTF-8"/>
    <import value="net.sf.jasperreports.engine.*"/>
    <import value="java.util.*"/>
    <import value="net.sf.jasperreports.engine.data.*"/>
    <style name="table">
        <box>
            <pen lineWidth="1.0" lineColor="#000000"/>
        </box>
    </style>
    <style name="table_TH" mode="Opaque" backcolor="#F0F8FF">
        <box>
            <pen lineWidth="0.5" lineColor="#000000"/>
        </box>
    </style>
    <style name="table_CH" mode="Opaque" forecolor="#FFFFFF" backcolor="#006F3A">
        <box>
            <pen lineWidth="0.5" lineColor="#000000"/>
        </box>
    </style>
    <style name="table_TD" mode="Opaque" backcolor="#57A7E8">
        <box>
            <pen lineWidth="0.5" lineColor="#000000"/>
        </box>
        <conditionalStyle>
            <conditionExpression><![CDATA[Boolean.valueOf($V{REPORT_COUNT}.intValue() % 2 == 0)]]></conditionExpression>
            <style backcolor="#FFFFFF"/>
        </conditionalStyle>
    </style>
    <subDataset name="tableDataset" >
        <field name="participantName" class="java.lang.String"/>
        <field name="Ssn" class="java.lang.String"/>
        <field name="Zipcode" class="java.lang.String"/>
    </subDataset>
        <field name="Ssn" class="java.lang.String"/>
        <field name="Zipcode" class="java.lang.String"/>
    <background>
        <band />
    </background>
    <title>
        <band height="200">
            <componentElement>
                <reportElement key="table" style="table" x="146" y="150" width="299" height="46" isRemoveLineWhenBlank="true" />
                <jr:table xmlns:jr="http://jasperreports.sourceforge.net/jasperreports/components" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports/components http://jasperreports.sourceforge.net/xsd/components.xsd">
                    <datasetRun subDataset="tableDataset">
                        <datasetParameter name="REPORT_DATA_SOURCE">
                           <datasetParameterExpression><![CDATA[$P{REPORT_DATA_SOURCE}]]></datasetParameterExpression>
                        </datasetParameter>
                    </datasetRun>
                    <jr:column width="90" >
                        <jr:columnHeader style="table_CH" height="30" rowSpan="1">
                            <staticText>
                                <reportElement x="0" y="0" width="90" height="30" />
                                <text><![CDATA[PARTICIPANT NAME]]></text></staticText>
                        </jr:columnHeader>
                        <jr:detailCell style="table_TD" height="20" rowSpan="1">
                            <textField>
                                <reportElement x="0" y="0" width="90" height="20" >
                                </reportElement>
                                <textFieldExpression><![CDATA[$F{participantName}]]></textFieldExpression>
                            </textField>
                        </jr:detailCell>
                    </jr:column>
                    <jr:column width="90" >
                        <jr:columnHeader style="table_CH" height="30" rowSpan="1">
                            <staticText>
                                <reportElement x="0" y="0" width="90" height="30" >
                                <printWhenExpression><![CDATA[new Boolean($F{Ssn}!= null)]]></printWhenExpression>
                                </reportElement>
                                <text><![CDATA[SSN]]></text>
                            </staticText>
                        </jr:columnHeader>
                        <jr:detailCell style="table_TD" height="20" rowSpan="1">
                            <textField isBlankWhenNull="true">
                                <reportElement isRemoveLineWhenBlank="true" x="0" y="0" width="90" height="20" />
                                <textFieldExpression><![CDATA[$F{Ssn}]]></textFieldExpression>
                            </textField>
                        </jr:detailCell>
                    </jr:column>
                    <jr:column width="90" >
                            <printWhenExpression><![CDATA[new Boolean($F{Zipcode}!= null)]]></printWhenExpression>
                        <jr:columnHeader style="table_CH" height="30" rowSpan="1">
                            <staticText>
                                <reportElement x="0" y="0" width="90" height="30" >
                                    <printWhenExpression><![CDATA[new Boolean($F{Zipcode}!= null)]]></printWhenExpression>
                                </reportElement>
                                <text><![CDATA[ZIPCODE]]></text>
                            </staticText>
                        </jr:columnHeader>
                        <jr:detailCell style="table_TD" height="20" rowSpan="1">
                            <textField isBlankWhenNull="true">
                                <reportElement isRemoveLineWhenBlank="true" x="0" y="0" width="90" height="20" />
                                <textFieldExpression><![CDATA[$F{participantZip}]]></textFieldExpression>
                            </textField>
                        </jr:detailCell>
                    </jr:column>
                </jr:table>
            </componentElement>
        </band>
        </title>
    <columnFooter>
        <band />
    </columnFooter>
    <pageFooter>
        <band />
    </pageFooter>
    <summary>
        <band />
    </summary>
</jasperReport>
<jr:detailCell style="table_TD" height="30" rowSpan="1">
                            <textField>
                                <reportElement x="0" y="0" width="90" height="18"/>
                                <textElement/>
                                <textFieldExpression class="java.lang.String"><![CDATA[$F{participantName}]]></textFieldExpression>
                            </textField>
                            <break type="Column">
                                <reportElement x="0" y="19" width="90" height="1">
                                    <printWhenExpression><![CDATA[new java.lang.Boolean((int)($V{REPORT_COUNT}.intValue())%10==0)]]></printWhenExpression>
                                </reportElement>
                            </break>
                        </jr:detailCell>

谢谢。我想用ireport限制每页的行数。这确实有帮助。