2012-03-19 264 views
1

我已經創建了一個報告表。我已將其設置爲每頁顯示5行數據。現在的問題是當表格不會出現少於5行的數據時。如何在jasper報告中顯示少於5行的數據

我在每個部分都放了$V{REPORT_COUNT} %5 == 0

如何修改此公式,以便數據行即使少於5行也能顯示?

+0

您是否嘗試過使用'page break'元素? – 2012-03-19 10:34:39

+0

可能的重複:[如何限制每個頁面上的行數?](http://stackoverflow.com/questions/9617082/how-do-i-limit-the-number-of-rows-on-each -page) – 2012-08-02 14:45:26

回答

4

對不起,我不能早些回覆,因爲我會在忙碌的一天工作。看完你的報告設計之後,我發現'Page Break'功能並不是你真正需要的。我只是將您擁有的羣組的組表達式更改爲:$ F {PARENT_NAME} + (($ V {REPORT_COUNT}%5 == 0)?「1」:「2」)並設置'開始新頁面「參數爲true。另外,我更改了圖表數據。檢查下面的jrxml數據:

<?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

我試過了。您提供的jxml文件。首先,從桌子上爆出的那一排。因爲您將startpagenew = true,因此每個頁面只顯示一行。當我取消選中時,數據顯示5行每頁。但是,總行和圖表不會顯示在最後一頁上。其次,我有變更組表達式是$ F {PARENT_NAME_SECTOR} +(($ V {REPORT_COUNT}%5 == 0)?「1」:「2」)。我嘗試更新這個文件,並希望你能修復它,並給我反饋 – 2012-03-22 02:31:22

+0

我不知道你的要求,但給了這個想法如何實現。你必須做其餘的! – bchetty 2012-03-22 08:05:00

+0

這樣的情況。我想在一個表格中顯示5行每頁。每行獲得數字1-5。我嘗試你的榜樣。是的,這是成功的。但問題是最後一頁的數據不顯示。我不知道爲什麼。你能看到我的照片嗎?我也在上面更新我的代碼。你可以看到那個代碼。這裏是我的照片。首頁和最後一頁 [1]:http://i.stack.imgur.com/GJamQ.jpg [2]:http://i.stack.imgur.com/xrfUR.jpg – 2012-03-22 12:48:12

2

你可以做的是創建一個'minHeightToStartNewPage'屬性設置爲類似於700/800(取決於你的報告設計)的'肖像'和500/550(取決於你的報告設計)景觀「設置。然後,您可以將此虛擬組的printWhenExpression值設置爲'$ V {REPORT_COUNT}%5 == 0'。

注意:如果minHeightToStartNewPage的值設置不正確(超過頁面長度),則可能會遇到無限循環問題。

+0

虛擬組?我從來沒有在我的報告中看到這個功能。我怎麼能得到它。你能告訴我嗎?請以我爲例。 – 2012-03-20 00:59:42

+0

如果你能爲我提供jrxml文件,我可以告訴你如何做到這一點。 – bchetty 2012-03-20 08:53:04

+0

我已經把我的code.Hope你可以立即回覆。謝謝。 – 2012-03-21 14:38:28

相關問題