2016-09-22 55 views
3

我正在Jasper Reports上工作。在我的報告中,我想要像我的數據下面的邊框樣式如何在頁面末尾繪製一條線?

 
______ ______ ______ ______ 
|__H1__|__H2__|__H3__|__H4__| 
|  |  |  |  | 
|  |  |  |  | 
|  |  |  |  | 
|  |  |  |  | 
|______|______|______|______| 

----------Page Footer-------- 

我想獲得每頁最後一行的底部邊框。我目前得到的是類似

 
______ ______ ______ ______ 
|__H1__|__H2__|__H3__|__H4__| 
|  |  |  |  | 
|  |  |  |  | 
|  |  |  |  | 
|  |  |  |  | 

需要有一個頁腳的差距,所以我不能在頁腳中使用一行。另外,如果我確實在頁腳中使用了一行,報表的最後一行將沒有底部邊框。

有沒有一種方法可以根據行作爲頁面的最後一行來有條件地啓用Bottom邊界?

screenshot of the report

回答

4

繪製線然後columnFooter帶,並設置isFloatColumnFooter="true"

isFloatColumnFooter=true,呈現列腳註只是在該特定列

最後的細節或組頁腳下面

<?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="Blank_A4_8" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" isFloatColumnFooter="true" uuid="28bc671c-47fc-4083-8211-a3f952643349"> 
    <property name="com.jaspersoft.studio.data.defaultdataadapter" value="5 empty records"/> 
    <queryString> 
     <![CDATA[]]> 
    </queryString> 
    <columnHeader> 
     <band height="1"> 
      <line> 
       <reportElement x="0" y="0" width="300" height="1" uuid="226f98ce-bb08-4741-a5af-3073ce2aee3a"/> 
       <graphicElement> 
        <pen lineWidth="0.5"/> 
       </graphicElement> 
      </line> 
     </band> 
    </columnHeader> 
    <detail> 
     <band height="30" splitType="Stretch"> 
      <property name="com.jaspersoft.studio.unit.height" value="pixel"/> 
      <textField> 
       <reportElement x="150" y="0" width="150" height="30" uuid="5279e4bc-05ce-46d7-b4cf-ef703d105d92"> 
        <property name="com.jaspersoft.studio.unit.width" value="pixel"/> 
       </reportElement> 
       <box padding="5"> 
        <topPen lineWidth="0.0"/> 
        <leftPen lineWidth="0.5"/> 
        <rightPen lineWidth="0.5"/> 
       </box> 
       <textElement verticalAlignment="Middle"/> 
       <textFieldExpression><![CDATA["Text Field " + $V{REPORT_COUNT}]]></textFieldExpression> 
      </textField> 
      <textField> 
       <reportElement x="0" y="0" width="150" height="30" uuid="96e9515f-fab2-483d-926b-6bc799199562"/> 
       <box padding="5"> 
        <topPen lineWidth="0.0"/> 
        <leftPen lineWidth="0.5"/> 
        <rightPen lineWidth="0.5"/> 
       </box> 
       <textElement verticalAlignment="Middle"/> 
       <textFieldExpression><![CDATA[$V{REPORT_COUNT}]]></textFieldExpression> 
      </textField> 
     </band> 
    </detail> 
    <columnFooter> 
     <band height="1" splitType="Stretch"> 
      <property name="com.jaspersoft.studio.unit.height" value="pixel"/> 
      <line> 
       <reportElement x="0" y="0" width="300" height="1" uuid="226f98ce-bb08-4741-a5af-3073ce2aee3a"/> 
       <graphicElement> 
        <pen lineWidth="0.5"/> 
       </graphicElement> 
      </line> 
     </band> 
    </columnFooter> 
</jasperReport> 

輸出(有5條空數據源上運行)

Result

注意,創建報告,發票的等,以修復 線頁面上時(即不依賴於數據源)可以使用 background頻帶。

+0

非常感謝您的詳細回覆。我嘗試了您的建議,並且除了最後一頁以外,所有頁面都能正常工作,因爲列表頁腳在摘要之後顯示。有沒有辦法在最後一頁不顯示列頁腳? –

+0

@PrakashAr在jasperReport標籤上有一個屬性,isSummaryNewPage =「true」,你也有isSummaryWithPageHeaderAndFooter =「false」試試這些。 –