2011-08-25 24 views
10

我有一個要求,將封裝所有的細節+在JasperReports + iReport的報告中的列標題的邊框。但是,如果我嘗試繪製一個矩形框或列表框,並在列標題,詳細信息和列腳註中顯示,則會出現錯誤,指出元素位置無效。如何圍繞列標題,頁腳和細節部分繪製邊框?

我想一個選擇是使用圖像(就像良好的舊HTML時代沒有CSS ...),但它會是一個PITA,因爲如果一個字段溢出或如果有人改變高度或節的寬度,圖像將不得不改變...

任何其他的替代品?

謝謝。

回答

10

要做到這一點,你可以將幀放入每個樂隊中,設置其大小以完全填充樂隊。然後在框架上設置邊框以在所有三個樂隊周圍複製邊框,以便標題在頂部,左側和右側有一個邊框;頁腳有底部,左側和右側;並且細節帶僅在左側和右側具有邊框。請參閱下面的示例代碼。

<columnHeader> 
    <band height="61" splitType="Stretch"> 
     <frame> 
      <reportElement x="0" y="0" width="555" height="61"/> 
      <box> 
       <topPen lineWidth="2.0" lineStyle="Solid"/> 
       <leftPen lineWidth="2.0" lineStyle="Solid"/> 
       <rightPen lineWidth="2.0" lineStyle="Solid"/> 
      </box> 
     </frame> 
    </band> 
</columnHeader> 
<detail> 
    <band height="125" splitType="Stretch"> 
     <frame> 
      <reportElement x="0" y="0" width="555" height="125"/> 
      <box> 
       <leftPen lineWidth="2.0" lineStyle="Solid"/> 
       <rightPen lineWidth="2.0" lineStyle="Solid"/> 
      </box> 
     </frame> 
    </band> 
</detail> 
<columnFooter> 
    <band height="45" splitType="Stretch"> 
     <frame> 
      <reportElement x="0" y="0" width="555" height="45"/> 
      <box> 
       <leftPen lineWidth="2.0" lineStyle="Solid"/> 
       <bottomPen lineWidth="2.0" lineStyle="Solid"/> 
       <rightPen lineWidth="2.0" lineStyle="Solid"/> 
      </box> 
     </frame> 
    </band> 
</columnFooter> 

結果應該是這樣的: Screenshot from iReport

+0

還應該使用'isFloatColumnFooter',否則,在細節和列腳之間會有差距。 '' –

0

您可以使用您繪製一個矩形爲目的的背景帶。

0

使用帶有框架或矩形的背景帶似乎效果最好,但如果第一頁和後續頁面具有不同的頁眉元素,則調整框架/矩形的大小可能有點棘手。

單向旋轉的方法是在任何標題,頁眉和頁腳波段 上添加一個框架/矩形,它是不透明/白色併發送到後面。這會掩蓋背景圖像。

這意味着它將顯示在Detail Band中,因此根據需要,頁眉和頁腳框可能需要底部/頂部邊框。

(我發現在邊帶邊框中使用細節帶中的邊框的問題並不完全正常,因爲有時重複的細節帶不會填充每個頁面,因此邊緣的邊緣會留下空隙)

0
  1. 點擊你的碧玉報告。
  2. 轉到基本元素。
  3. 選擇矩形。