我有一个jasper代码以表格格式打印报告,报告的值在运行时从java类传递,我使用jasper报告3.7.2 jar来打印报告。碧玉代码如下:
<?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>
现在我想在每个表中只打印10行,并且下一页中的新值必须打印在下一页的新表中。但是所有表必须只包含10行。请帮帮我..!
答案 0 :(得分:0)
<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>