how to display data less than 5 row in jasper reports

后端 未结 2 387
难免孤独
难免孤独 2021-01-07 08:51

I have created a report table. I have set it to display 5 rows of data per page. The problem now is when there are less than 5 rows of data the table will not appear.

相关标签:
2条回答
  • 2021-01-07 09:38

    Sorry that I couldn't reply earlier, as I'd a busy day at work. After looking at your report design, I found that 'Page Break' functionality is not something that you really need. I just changed the Group Expression for the group that you have, to : $F{PARENT_NAME} + (($V{REPORT_COUNT} % 5 == 0) ? "1" : "2") and set the 'Start on new page' parameter to true. Also, I changed the Chart data. Check the below jrxml data:

    <?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="ChartLineBless" language="groovy" pageWidth="842" pageHeight="595" orientation="Landscape" columnWidth="802" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20">
        <property name="ireport.zoom" value="1.0"/>
        <property name="ireport.x" value="0"/>
        <property name="ireport.y" value="0"/>
        <parameter name="P_YEAR" class="java.lang.String">
            <defaultValueExpression><![CDATA[]]></defaultValueExpression>
        </parameter>
        <parameter name="P_AGENCY_CODE" class="java.lang.String">
            <defaultValueExpression><![CDATA[]]></defaultValueExpression>
        </parameter>
        <parameter name="P_SECTOR_LOOK_CODE" class="java.lang.String">
            <defaultValueExpression><![CDATA[]]></defaultValueExpression>
        </parameter>
        <field name="PARENT_NAME" class="java.lang.String"/>
        <field name="PARENT_NAME_SECTOR" class="java.lang.String"/>
        <field name="AGENCY_PARENT_CODE" class="java.lang.String"/>
        <field name="AGENCY_CODE" class="java.lang.String"/>
        <field name="AGENCY_NAME" class="java.lang.String"/>
        <field name="YEAR" class="java.lang.String"/>
        <field name="SECTOR_ID" class="java.lang.String"/>
        <field name="SECTOR_NAME" class="java.lang.String"/>
        <field name="DYEAR1" class="java.math.BigDecimal"/>
        <field name="DYEAR2" class="java.math.BigDecimal"/>
        <field name="DYEAR3" class="java.math.BigDecimal"/>
        <field name="DYEAR4" class="java.math.BigDecimal"/>
        <field name="DYEAR5" class="java.lang.String"/>
        <field name="YR1" class="java.math.BigDecimal"/>
        <field name="YR2" class="java.math.BigDecimal"/>
        <field name="YR3" class="java.math.BigDecimal"/>
        <field name="YR4" class="java.math.BigDecimal"/>
        <field name="YR5" class="java.math.BigDecimal"/>
        <variable name="YR1_1" class="java.math.BigDecimal" resetType="Group" resetGroup="agensi" calculation="Sum">
            <variableExpression><![CDATA[$F{YR1}]]></variableExpression>
        </variable>
        <variable name="YR2_1" class="java.math.BigDecimal" resetType="Group" resetGroup="agensi" calculation="Sum">
            <variableExpression><![CDATA[$F{YR2}]]></variableExpression>
        </variable>
        <variable name="YR3_1" class="java.math.BigDecimal" resetType="Group" resetGroup="agensi" calculation="Sum">
            <variableExpression><![CDATA[$F{YR3}]]></variableExpression>
        </variable>
        <variable name="YR4_1" class="java.math.BigDecimal" resetType="Group" resetGroup="agensi" calculation="Sum">
            <variableExpression><![CDATA[$F{YR4}]]></variableExpression>
        </variable>
        <variable name="YR5_1" class="java.math.BigDecimal" resetType="Group" resetGroup="agensi" calculation="Sum">
            <variableExpression><![CDATA[$F{YR5}]]></variableExpression>
        </variable>
        <group name="agensi" isStartNewPage="true" minHeightToStartNewPage="550">
            <groupExpression><![CDATA[$F{PARENT_NAME} + 
    (($V{REPORT_COUNT} % 5 == 0) ? "1" : "2")]]></groupExpression>
            <groupHeader>
                <band height="98">
                    <textField>
                        <reportElement x="332" y="84" width="85" height="14"/>
                        <box>
                            <pen lineWidth="0.5"/>
                            <topPen lineWidth="0.5"/>
                            <leftPen lineWidth="0.5"/>
                            <bottomPen lineWidth="0.5"/>
                            <rightPen lineWidth="0.5"/>
                        </box>
                        <textElement textAlignment="Center"/>
                        <textFieldExpression><![CDATA[$F{DYEAR2}]]></textFieldExpression>
                    </textField>
                    <textField>
                        <reportElement x="247" y="84" width="85" height="14"/>
                        <box>
                            <pen lineWidth="0.5"/>
                            <topPen lineWidth="0.5"/>
                            <leftPen lineWidth="0.5"/>
                            <bottomPen lineWidth="0.5"/>
                            <rightPen lineWidth="0.5"/>
                        </box>
                        <textElement textAlignment="Center"/>
                        <textFieldExpression><![CDATA[$F{DYEAR1}]]></textFieldExpression>
                    </textField>
                    <staticText>
                        <reportElement x="43" y="71" width="204" height="27"/>
                        <box>
                            <pen lineWidth="0.5"/>
                            <topPen lineWidth="0.5"/>
                            <leftPen lineWidth="0.5"/>
                            <bottomPen lineWidth="0.5"/>
                            <rightPen lineWidth="0.5"/>
                        </box>
                        <textElement textAlignment="Center" verticalAlignment="Middle"/>
                        <text><![CDATA[Agency Name]]></text>
                    </staticText>
                    <staticText>
                        <reportElement x="10" y="71" width="33" height="27"/>
                        <box>
                            <pen lineWidth="0.5"/>
                            <topPen lineWidth="0.5"/>
                            <leftPen lineWidth="0.5"/>
                            <bottomPen lineWidth="0.5"/>
                            <rightPen lineWidth="0.5"/>
                        </box>
                        <textElement textAlignment="Center" verticalAlignment="Middle"/>
                        <text><![CDATA[No.]]></text>
                    </staticText>
                    <textField>
                        <reportElement x="417" y="84" width="85" height="14"/>
                        <box>
                            <pen lineWidth="0.5"/>
                            <topPen lineWidth="0.5"/>
                            <leftPen lineWidth="0.5"/>
                            <bottomPen lineWidth="0.5"/>
                            <rightPen lineWidth="0.5"/>
                        </box>
                        <textElement textAlignment="Center"/>
                        <textFieldExpression><![CDATA[$F{DYEAR3}]]></textFieldExpression>
                    </textField>
                    <staticText>
                        <reportElement x="247" y="71" width="425" height="13"/>
                        <box>
                            <pen lineWidth="0.5"/>
                            <topPen lineWidth="0.5"/>
                            <leftPen lineWidth="0.5"/>
                            <bottomPen lineWidth="0.5"/>
                            <rightPen lineWidth="0.5"/>
                        </box>
                        <textElement textAlignment="Center"/>
                        <text><![CDATA[Year]]></text>
                    </staticText>
                    <staticText>
                        <reportElement x="672" y="71" width="85" height="27"/>
                        <box>
                            <pen lineWidth="0.5"/>
                            <topPen lineWidth="0.5"/>
                            <leftPen lineWidth="0.5"/>
                            <bottomPen lineWidth="0.5"/>
                            <rightPen lineWidth="0.5"/>
                        </box>
                        <textElement textAlignment="Center" verticalAlignment="Middle"/>
                        <text><![CDATA[Total]]></text>
                    </staticText>
                    <textField>
                        <reportElement x="587" y="84" width="85" height="14"/>
                        <box>
                            <pen lineWidth="0.5"/>
                            <topPen lineWidth="0.5"/>
                            <leftPen lineWidth="0.5"/>
                            <bottomPen lineWidth="0.5"/>
                            <rightPen lineWidth="0.5"/>
                        </box>
                        <textElement textAlignment="Center"/>
                        <textFieldExpression><![CDATA[$F{DYEAR5}]]></textFieldExpression>
                    </textField>
                    <textField>
                        <reportElement x="502" y="84" width="85" height="14"/>
                        <box>
                            <pen lineWidth="0.5"/>
                            <topPen lineWidth="0.5"/>
                            <leftPen lineWidth="0.5"/>
                            <bottomPen lineWidth="0.5"/>
                            <rightPen lineWidth="0.5"/>
                        </box>
                        <textElement textAlignment="Center"/>
                        <textFieldExpression><![CDATA[$F{DYEAR4}]]></textFieldExpression>
                    </textField>
                    <staticText>
                        <reportElement x="0" y="22" width="802" height="26"/>
                        <textElement textAlignment="Center" verticalAlignment="Middle"/>
                        <text><![CDATA[5 YEAR STATISTICS ON APPLICATION RECEIVED (BY ALL AGENCIES)]]></text>
                    </staticText>
                </band>
            </groupHeader>
            <groupFooter>
                <band height="208">
                    <printWhenExpression><![CDATA[$V{REPORT_COUNT} % 5 == 0]]></printWhenExpression>
                    <textField>
                        <reportElement x="672" y="0" width="85" height="20"/>
                        <box>
                            <pen lineWidth="0.5"/>
                            <topPen lineWidth="0.5"/>
                            <leftPen lineWidth="0.5"/>
                            <bottomPen lineWidth="0.5"/>
                            <rightPen lineWidth="0.5"/>
                        </box>
                        <textElement textAlignment="Center"/>
                        <textFieldExpression><![CDATA[new Integer($V{YR1_1}.intValue() + $V{YR2_1}.intValue()+
    $V{YR3_1}.intValue()+ $V{YR4_1}.intValue())+ $V{YR5_1}.intValue()]]></textFieldExpression>
                    </textField>
                    <staticText>
                        <reportElement x="10" y="0" width="237" height="20"/>
                        <box>
                            <pen lineWidth="0.5"/>
                            <topPen lineWidth="0.5"/>
                            <leftPen lineWidth="0.5"/>
                            <bottomPen lineWidth="0.5"/>
                            <rightPen lineWidth="0.5"/>
                        </box>
                        <textElement textAlignment="Center"/>
                        <text><![CDATA[                                                                   Total]]></text>
                    </staticText>
                    <textField>
                        <reportElement x="587" y="0" width="85" height="20"/>
                        <box>
                            <pen lineWidth="0.5"/>
                            <topPen lineWidth="0.5"/>
                            <leftPen lineWidth="0.5"/>
                            <bottomPen lineWidth="0.5"/>
                            <rightPen lineWidth="0.5"/>
                        </box>
                        <textElement textAlignment="Center"/>
                        <textFieldExpression><![CDATA[$V{YR5_1}]]></textFieldExpression>
                    </textField>
                    <textField>
                        <reportElement x="502" y="0" width="85" height="20"/>
                        <box>
                            <pen lineWidth="0.5"/>
                            <topPen lineWidth="0.5"/>
                            <leftPen lineWidth="0.5"/>
                            <bottomPen lineWidth="0.5"/>
                            <rightPen lineWidth="0.5"/>
                        </box>
                        <textElement textAlignment="Center"/>
                        <textFieldExpression><![CDATA[$V{YR4_1}]]></textFieldExpression>
                    </textField>
                    <textField>
                        <reportElement x="417" y="0" width="85" height="20"/>
                        <box>
                            <pen lineWidth="0.5"/>
                            <topPen lineWidth="0.5"/>
                            <leftPen lineWidth="0.5"/>
                            <bottomPen lineWidth="0.5"/>
                            <rightPen lineWidth="0.5"/>
                        </box>
                        <textElement textAlignment="Center"/>
                        <textFieldExpression><![CDATA[$V{YR3_1}]]></textFieldExpression>
                    </textField>
                    <textField>
                        <reportElement x="332" y="0" width="85" height="20"/>
                        <box>
                            <pen lineWidth="0.5"/>
                            <topPen lineWidth="0.5"/>
                            <leftPen lineWidth="0.5"/>
                            <bottomPen lineWidth="0.5"/>
                            <rightPen lineWidth="0.5"/>
                        </box>
                        <textElement textAlignment="Center"/>
                        <textFieldExpression><![CDATA[$V{YR2_1}]]></textFieldExpression>
                    </textField>
                    <textField>
                        <reportElement x="247" y="0" width="85" height="20"/>
                        <box>
                            <pen lineWidth="0.5"/>
                            <topPen lineWidth="0.5"/>
                            <leftPen lineWidth="0.5"/>
                            <bottomPen lineWidth="0.5"/>
                            <rightPen lineWidth="0.5"/>
                        </box>
                        <textElement textAlignment="Center"/>
                        <textFieldExpression><![CDATA[$V{YR1_1}]]></textFieldExpression>
                    </textField>
                    <lineChart>
                        <chart>
                            <reportElement x="144" y="34" width="549" height="173"/>
                            <chartTitle/>
                            <chartSubtitle/>
                            <chartLegend/>
                        </chart>
                        <categoryDataset>
                            <dataset resetType="Page"/>
                            <categorySeries>
                                <seriesExpression><![CDATA["YEAR1"]]></seriesExpression>
                                <categoryExpression><![CDATA[$F{DYEAR1}]]></categoryExpression>
                                <valueExpression><![CDATA[$V{YR1_1}]]></valueExpression>
                            </categorySeries>
                            <categorySeries>
                                <seriesExpression><![CDATA["Year2"]]></seriesExpression>
                                <categoryExpression><![CDATA[$F{DYEAR2}]]></categoryExpression>
                                <valueExpression><![CDATA[$V{YR2_1}]]></valueExpression>
                            </categorySeries>
                            <categorySeries>
                                <seriesExpression><![CDATA["YEAR3"]]></seriesExpression>
                                <categoryExpression><![CDATA[$F{DYEAR3}]]></categoryExpression>
                                <valueExpression><![CDATA[$V{YR3_1}]]></valueExpression>
                            </categorySeries>
                            <categorySeries>
                                <seriesExpression><![CDATA["YEAR4"]]></seriesExpression>
                                <categoryExpression><![CDATA[$F{DYEAR4}]]></categoryExpression>
                                <valueExpression><![CDATA[$V{YR4_1}]]></valueExpression>
                            </categorySeries>
                            <categorySeries>
                                <seriesExpression><![CDATA["YEAR5"]]></seriesExpression>
                                <categoryExpression><![CDATA[$F{DYEAR5}]]></categoryExpression>
                                <valueExpression><![CDATA[$V{YR5_1}]]></valueExpression>
                            </categorySeries>
                        </categoryDataset>
                        <linePlot>
                            <plot/>
                        </linePlot>
                    </lineChart>
                    <break>
                        <reportElement x="0" y="206" width="802" height="1"/>
                    </break>
                </band>
            </groupFooter>
        </group>
        <background>
            <band splitType="Stretch"/>
        </background>
        <detail>
            <band height="20" splitType="Stretch">
                <textField>
                    <reportElement x="43" y="0" width="204" height="20"/>
                    <box>
                        <pen lineWidth="0.5"/>
                        <topPen lineWidth="0.5"/>
                        <leftPen lineWidth="0.5"/>
                        <bottomPen lineWidth="0.5"/>
                        <rightPen lineWidth="0.5"/>
                    </box>
                    <textElement/>
                    <textFieldExpression><![CDATA[$F{PARENT_NAME_SECTOR}]]></textFieldExpression>
                </textField>
                <textField>
                    <reportElement x="247" y="0" width="85" height="20"/>
                    <box>
                        <pen lineWidth="0.5"/>
                        <topPen lineWidth="0.5"/>
                        <leftPen lineWidth="0.5"/>
                        <bottomPen lineWidth="0.5"/>
                        <rightPen lineWidth="0.5"/>
                    </box>
                    <textElement textAlignment="Center"/>
                    <textFieldExpression><![CDATA[$F{YR1}]]></textFieldExpression>
                </textField>
                <textField>
                    <reportElement x="332" y="0" width="85" height="20"/>
                    <box>
                        <pen lineWidth="0.5"/>
                        <topPen lineWidth="0.5"/>
                        <leftPen lineWidth="0.5"/>
                        <bottomPen lineWidth="0.5"/>
                        <rightPen lineWidth="0.5"/>
                    </box>
                    <textElement textAlignment="Center"/>
                    <textFieldExpression><![CDATA[$F{YR2}]]></textFieldExpression>
                </textField>
                <textField>
                    <reportElement x="417" y="0" width="85" height="20"/>
                    <box>
                        <pen lineWidth="0.5"/>
                        <topPen lineWidth="0.5"/>
                        <leftPen lineWidth="0.5"/>
                        <bottomPen lineWidth="0.5"/>
                        <rightPen lineWidth="0.5"/>
                    </box>
                    <textElement textAlignment="Center"/>
                    <textFieldExpression><![CDATA[$F{YR3}]]></textFieldExpression>
                </textField>
                <textField>
                    <reportElement x="502" y="0" width="85" height="20"/>
                    <box>
                        <pen lineWidth="0.5"/>
                        <topPen lineWidth="0.5"/>
                        <leftPen lineWidth="0.5"/>
                        <bottomPen lineWidth="0.5"/>
                        <rightPen lineWidth="0.5"/>
                    </box>
                    <textElement textAlignment="Center"/>
                    <textFieldExpression><![CDATA[$F{YR4}]]></textFieldExpression>
                </textField>
                <textField>
                    <reportElement x="587" y="0" width="85" height="20"/>
                    <box>
                        <pen lineWidth="0.5"/>
                        <topPen lineWidth="0.5"/>
                        <leftPen lineWidth="0.5"/>
                        <bottomPen lineWidth="0.5"/>
                        <rightPen lineWidth="0.5"/>
                    </box>
                    <textElement textAlignment="Center"/>
                    <textFieldExpression><![CDATA[$F{YR5}]]></textFieldExpression>
                </textField>
                <textField>
                    <reportElement x="10" y="0" width="33" height="20"/>
                    <box>
                        <pen lineWidth="0.5"/>
                        <topPen lineWidth="0.5"/>
                        <leftPen lineWidth="0.5"/>
                        <bottomPen lineWidth="0.5"/>
                        <rightPen lineWidth="0.5"/>
                    </box>
                    <textElement textAlignment="Center"/>
                    <textFieldExpression><![CDATA[$V{COLUMN_COUNT}]]></textFieldExpression>
                </textField>
                <textField>
                    <reportElement x="672" y="0" width="85" height="20"/>
                    <box>
                        <pen lineWidth="0.5"/>
                        <topPen lineWidth="0.5"/>
                        <leftPen lineWidth="0.5"/>
                        <bottomPen lineWidth="0.5"/>
                        <rightPen lineWidth="0.5"/>
                    </box>
                    <textElement textAlignment="Center"/>
                    <textFieldExpression><![CDATA[new Integer($F{YR1}.intValue() + $F{YR2}.intValue()+ $F{YR3}.intValue()+ $F{YR4}.intValue())+ $F{YR5}.intValue()]]></textFieldExpression>
                </textField>
            </band>
        </detail>
        <columnFooter>
            <band height="23">
                <textField evaluationTime="Report">
                    <reportElement x="445" y="3" width="40" height="20"/>
                    <textElement/>
                    <textFieldExpression><![CDATA[" " + $V{PAGE_NUMBER}]]></textFieldExpression>
                </textField>
                <textField>
                    <reportElement x="365" y="3" width="80" height="20"/>
                    <textElement textAlignment="Right"/>
                    <textFieldExpression><![CDATA["Page "+$V{PAGE_NUMBER}+" of"]]></textFieldExpression>
                </textField>
            </band>
        </columnFooter>
    </jasperReport>
    
    0 讨论(0)
  • 2021-01-07 09:52

    What you can do is to create a dummy group with 'minHeightToStartNewPage' property set to something like 700/800 (depends on your report design) for 'portrait' and 500/550 (depends on your report design) for 'Landscape' setup. You can then set the value of printWhenExpression for this dummy group as '$V{REPORT_COUNT} % 5 == 0'.

    NOTE: If the value of minHeightToStartNewPage is not set correctly (more than the length of page), it can run into infinite loop problems.

    0 讨论(0)
提交回复
热议问题