用了幾天JasperReport,寫下一點心得.希望對於入門JasperReport的同仁們有協助.
首先,需要明白的是什麼是report.通俗一點說,就是將資料以某種格式展現出來.在這裡2有2格重要的方面,即資料和展現.
對於資料,無非就是資料庫裡的資料以及經過對這些未經處理資料處理的資料.展現就是以某種格式將這些資料表現出來.
對於一個剛開始接觸JasperReport的人來說,恐怕首先一點概念都不懂.OK,我將圍繞上面提到的2個方面展開來說.
如何製作一個JasperReport報表,這是我們最關心的.
步驟通常如下:
Step1:建立一個表現資料的template,這個就是一個模型了,只需要將資料往裡面裝即可.
如何建立一個template?可以採用iReport來設計,他的最新版本支援當前JasperReport的最新版本1.3.3(截止撰寫本文的日期).這樣你只需要往裡面拖拖element即可,例如StaticText,TextField等.
注意,這個template檔案是以.jrxml結尾的,用記事本開啟,無非就是一個xml檔案而已.
Step2:編譯step1建立的template ,即jrxml檔案.這樣會編譯為一個jasper檔案,這是一個二進位檔案.
問題:為什麼要編譯它?
其實也不是必須的,也可以在運行時來編譯.仔細一想,如果在運行時來編譯,如果有100個使用者調用相同的report,難道系統會編譯100次?這樣下來,其效率極其低下.如果將之直接編譯好,也就節省了這100次的時間了.所以還是編譯為好,從另一個角度來說,report的模板很少改變的.
問題又來了,如何編譯呢?最簡單的方式是利用iReport來編譯,這個和IDE有點類似.當然還有其他的方法來編譯,那就是JasperReport自己提供的API來編譯,不過這個還需要寫代碼等,有點麻煩,不過等我們熟悉了JasperReport之後,再使用也未嘗不可.剛開始入門時,越簡單越好.
Step3:填充資料,拿行話說就是fill report.
本來這步可能在step2也可能涉及到.但為了系統講解,還是移到這裡.JasperReport填充資料有多種方法,不過最常用的就2種:一是直接在jrxml檔案裡嵌入sql語句,而是建立一個自己的資料來源,記得這個資料來源從JRDataSource繼承而來.JRDataSource有個方法一定要實現,即next以及getFieldValue,具體參見其API
Step 4,將資料表現出來
JasperReport很明顯可以將資料存放區為PDF,xls,html等.
可能我們最常見的是將資料在瀏覽器直接顯示,那麼如何做到呢?很簡單, JRHtmlExporter就可以完成.設定以下參數,然後匯出即可.匯出的可是html資料喲.只需要將這些html資料在頁面上顯示就沒有問題了.具體參看JRHtmlExporter的api文檔.
也許你還想將report匯出到pdf,xls,doc文檔,非常簡單,利用jasperReport提供的serverlet類即可. net.sf.jasperreports.j2ee.servlets.PdfServlet用於PDF, net.sf.jasperreports.j2ee.servlets.XlsServlet用於xls, net.sf.jasperreports.j2ee.servlets.RtfServlet用於rtf.
如果對於JasperReport內建的不滿意,那就自己寫吧.
以上就是一些基本步驟.後面將寫一篇文章介紹template的結構以及組成.