2012-06-23

JasperReports 多欄設計(Multiple Columns)

Column 不是指 Table 的欄,而是 Word 的欄,多欄用在單筆資料過短,而 iReport 每一個 band 的寬度都是 page 寬度,所以若用單欄會相當浪費空間,或者資料筆數過多時,也可以用多欄減少頁數。


先開啟一張空報表,設定好資料來源與 SQL。


單點左邊的紅框,可以開啟 Report Query 對話窗;右邊的紅框以用來立即編報表,也就是將 XML 編譯成 Jasper 檔,本來都是用預覽來進行編譯,原來可以直接進行編譯


在第一個紅框輸入 SQL,可以用另兩個紅框預覽資料。

資料來源設定完成後,再來設定多欄,有三個地方可以設定,其實這三個地方都是在設定報表的屬性(properties)。
  • 在 Report Inspector 右點報表名稱,也就是樹狀的根,然後點屬性。
  • 主選單的 Format > Page format...
  • 預設位在主畫面右邊的屬性視窗會顯示目前選取物件的屬性,要選取報表物件,可以單點 Report Inspector 的報表名稱或者單點 Designer 裡 Margin 的位置,若屬性視窗沒有開啟,可以從主選單的視窗 > 屬性 開啟。
找到 Columns,預設為一,改成二或更多。


Page format 還可以設定使用的長度單位。


就可以看到 Designer 做出改變。


因為每一欄的設計都會一樣,所以只有第一欄是可編輯狀態,其他欄都是紅色斜線表示不可編輯。

Column Footer 預設都是在 Column 的最下方。


可以勾選報表屬性的「Float Column Footer」 ,讓 Column Footer 緊貼著前一個 Band 的後面。


注意預設是第一欄用完,才會用到第二欄,而不是左右跳,所以可能出現第二欄和第一欄的筆數相差懸殊的情況。


可以設定報表屬性「Print Order」 ,從預設值 Vertical 改為 Horizontal。


資料走向就從垂直向改成水平向,多用在資料長度較短,也可以節省報表空間。



沒有留言:

張貼留言