在設計報表時,我們可以用直接拖曳的方式將元素配置在模板,這時候就會開始有些疑問:
那我該使用什麼元素?
一個最簡約的報表至少都會有文字,在設計報表標題、表頭的時候,最常使用的文字型元素就是Static Text與Text Field:
如果是初學者,從上一篇的簡介到現在可能還是一頭霧水,我們直接來做個簡單的例子,因應中秋節烤肉,設計一個購買烤肉用品的統計Excel表。
想好要什麼樣子的報表後,先刪除不需要的Band,在Band上面點滑鼠右鍵 → Delete,只留下Title, Page Header, Column Header, Detail, Summary
因為是匯出Excel,我不需要報表四個邊保留Margin,因此(1.)到左下區域點選報表名稱「Demo」 → (2.)到右下屬性區域點擊「Edit Page Format」 → (3.)將Margins都設為0,(也能適時在此視窗調整報表模板寬高)
調整Band高度:(1.)點選Band → (2.)在右下屬性區域調整高度,我想把每個Band都調整為30px
(1.)從右側Basic Elements區域拖曳所需的元素到Band區塊中,點兩下就可以編輯元素的文字;點一下選取元素時,可在右下屬性區域調整元素的(2.)邊框、(3.)長寬、(4.)文字的字體與對齊方式等等
除了元素的佈局外,最重要的是後端的資料要怎麼對應到模板上,這時候就需要Parameters與Fields。這兩個東西與Text Field的關係密不可分,主要的功用如下:
$P{parameterName}
$F{fieldName}
Parameters與Fields都需要定義型別,且型別與Java相同,String,Long,Double,List等等都能夠選擇。
接著範例1的模板,設定與後端程式對應的Parameters與Fields
新增Parameters:我們有「購買日期」與「金額總計」這兩個Parameters要設定,因此到左下區域的「Parameters」點右鍵 -> Create Parameter
到右下的屬性區域設定名稱與Java型別,新增後Parameter就會出現在「Parameters」列表中
(1.)分別到「購買日期」與「金額總計」Text field點兩下,會彈出Expression Editor視窗 -> (2.)在左側點擊「Parameters」 -> (3.)到中間的區域往下拉會找到剛剛新增的Parameter -> (4.)游標到上方表達式區域點一下使游標focus -> 對要使用的Parameter點兩下,表達式就會自動加上去了
▲注意不要將表達式放在字串裡,而是使用「+」串接,例如"購買日期:" + $P{formatDate}
新增Fields:我們有「商品名稱」、「購買金額」、「購買數量」、「購買金額小計」四個Fields,同樣到左下區域的「Fields」點右鍵 -> Create Field
接下來的設定都與新增Parameters一樣,要設定名稱與型別,只是點選的地方換成Fields,就不贅述了
都設定好之後大概會是這個樣子:
終於完成啦~
下一篇會針對Java後端以模擬的DataSource對應我們模板的Parameters與Fields,並使用JasperReports API完成報表的生命週期。