現在我們在設計一個軟件時,往往還要考慮到報表的設計。但要用java來設計一個報表系統, 是一件比較困難的事。現在只要用免費的open source軟件 -- jasper report 再加上 ireport 便可以簡單地完成一份報表了。
jasper report 是整個報表的核心,ireport 只是提供jasper report的 gui 介面。其實,我們下載ireport,已經包含了jasper report了,請到這裏下載:ireport.sourceforge.net (現在最新版應該是 0.3.2)
當你下載ireport後,請打開ireport, 你會看見如下:
現在 ireport都已經很成熟,但還是有bugs,而且如果你想完全自己控制你的 data 和 validation,最好還是自己來寫一個 java 檔處理;利用 ireport 做 design,自己寫 java檔來處理 fill data是比較有彈性的做法。
好,現在就來一個簡單的報表吧!首先按 ireport 的 file -> new document :
在report name 裏鍵入 "simplereport"(注意:不要有空挌),然後按"ok"。
在主畫面裏,你會看到一張空白的報表:
title, pageHeader columnHeader, etc. 這些我們叫做 "band" 。好,現在我們在 title 這條band 裏加上 static text。
按這個static text tool,然係在title 上拖拉出一個一定大小的位置。
拖拉後放手,便會看見如下:
對著這個 box double click,便彈出一個properties box:

轉去 static text 的那個tab,然後鍵入 my simple report:
再轉到 font 這個tab,set size = 18,和選擇bold:
之後按右上角"x"離開這個視窗。出回去後,你會看見原本空白的報表變成了如下:
現在我們把mouse 放在這條線上,向下拉,以增大 pageHeader這條band的空間。
拉大後的 pageheader band:
像之前那樣,在page header band 裏拉下一個空間然後放手。
然後按右上角"x"離開。
因為我們在報表裏用上了一個parameter,所以現在我們按 parameters這個button,為報表加入一個參數。
按parameters 後會彈出一個視窗:
按 new ,然後填入"NAME" (注意:分大小寫的)
按OK離開。再按右上角"x"離開parameters視窗。
好了,一齊完成後,按file -> save,然後save 成 simple.xml。
這一part 的 ireport 便完成了。
然後開eclipse,new 一個project,把所有ireport 的 libraries 都加進去。copy simple.xml 到project 的folder裏。
在project裏建立一個Simple.java, 在main裏鍵入:
JasperReport jasperReport = JasperManager.compileReport(jasperDesign);
Connection conn = Database.getConnection(); //隨便起一個空的database connection
Map parameters = new HashMap();
parameters.put("NAME", "CSJDN");
JasperPrint jasperPrint = JasperManager.fillReport(jasperReport,parameters, conn);
JasperManager.printReportToPdfFile(jasperPrint, "BasicReport.pdf");
JasperViewer.viewReport(jasperPrint);