JasperReports是一个开源的java报表制作引擎
JasperReports是一個(gè)開源的java報(bào)表制作引擎
http://jasperreports.sourceforge.net
iReport是JasperReports的一個(gè)GUI工具,用來生成JasperReports的jrxml文件。
http://ireport.sourceforge.net
首先使用iReport制作報(bào)表的模板(我自己起的名詞):
??? 運(yùn)行iReport,新建一個(gè)report。
??? 在Title band中輸入報(bào)表的名稱,好象使用pageheader band也可以,目前我還沒有弄明白2者具體的差別。
??? 在column header band中放置一些static text,做為報(bào)表的列標(biāo)題。
??? 在detal band中放入一些textfield,顯示報(bào)表的詳細(xì)數(shù)據(jù)。
??? 在summary band中放入類似于"合計(jì)"之類的textfield,這個(gè)band是顯示在最后一行數(shù)據(jù)的下放。
??? 在LastPageFooter band中放入想在最后一頁(yè)顯示的信息,比如說"審閱人簽名"之類的。
這樣報(bào)表的框架就基本上搭好了,然后compile一下檢查是否有錯(cuò)誤,如果沒有錯(cuò)誤那么就可以在程序中使用這個(gè)報(bào)表模板了。
JasperReports介紹:
???
??? 使用JasperReports生成報(bào)表是非常簡(jiǎn)單的,僅僅使用net.sf.jasperreports.engine包中的幾個(gè)類即可完成報(bào)表的生成、預(yù)覽、打印、導(dǎo)出等各個(gè)功能。
1.? net.sf.jasperreports.engine.JasperCompileManager類。
??? 使用這個(gè)類的幾個(gè)靜態(tài)方法即可完成對(duì)報(bào)表的編譯工作(具體參見api文檔)
??? 編譯完成后可以JasperCompileManager有兩種處理方式:
??? ?? 1> 返回一個(gè)JasperReport對(duì)象
??? ?? 2> 在.jrxml文件所在的目錄生成一個(gè).jasper文件
??? 這兩種方式是由程序員自己選擇的。不過我比較傾向使用.jasper文件,畢竟報(bào)表的結(jié)構(gòu)不是每天都在改動(dòng),所以每次重新編譯報(bào)表并不是很劃算。
2.? net.sf.jasperreports.engine.JasperFillManager類
??? 這個(gè)類的作用是用數(shù)據(jù)填充報(bào)表。它可以使用JasperReport對(duì)象也可以使用。jasper文件做為報(bào)表模板。
??? 它同樣有2中處理方式:
??? ????? 1> 返回一個(gè)JsaperPrint對(duì)象。
??? ?? ?? 2> 在.jasper文件所在目錄生成一個(gè).jrprint文件
??? 這個(gè)類使用net.sf.jasperreports.engine.JRDataSource接口的實(shí)現(xiàn)做為數(shù)據(jù)源。任何實(shí)現(xiàn)了JRDataSource的類均可做為數(shù)據(jù)源使用
??? 在net.sf.jasperreports.engine.data包中定義了一些數(shù)據(jù)源,可根據(jù)自己的需要選擇。這里我使用的是JRTableModelDataSource做為
??? 數(shù)據(jù)源(因?yàn)槲业膱?bào)表還要顯示在Table中)。
3. net.sf.jasperreports.engine.JasperPrintManager和net.sf.jasperreports.engine.JasperExportManager
?? 者兩個(gè)類的作用是打印、導(dǎo)出報(bào)表
?? 他們使用 JasperPrint 和 .jrprint文件做為輸入。
?? 可以根據(jù)自己的需要使用里面的方法。
例:
??? ?? import net.sf.jasperreports.engine.*;
??? ?? import net.sf.jasperreports.view.*;
??? ?? public class CompileReport {
??? ?? ?? public static void main(String args[]) {
??? ?? ?? ?? try {
??? ?? ?? ?? ?? //編譯report.jrxml并在report.jrxml所在的目錄中生成report.jasper文件
??? ?? ?? ?? ?? JasperCompileManager.compileReportToFile("report.jrxml");
??? ?? ?? ?? ?? //填充數(shù)據(jù),這里使用的是JREmptyDataSource
??? ??? ?? ?? ? JasperFillManager.fillReportToFile("report.jasper", null, new JREmptyDataSource(50));
??? ?? ?? ?? ?? //預(yù)覽報(bào)表,false代表不是使用xml文件。
??? ??? ?? ?? ? JasperViewer view = new JasperViewer("reports.jrprint", false);
??? ??? ??? ??? view.pack();
??? ??? ??? ??? view.setVisible(true);
??? ?? ?? ?? }
??? ?? ?? ?? catch (Exception e) {
??? ?? ?? ?? ?? e.printStackTrace()
??? ?? ?? ?? }
??? ?? ?? }
??? ?? }
總結(jié)
以上是生活随笔為你收集整理的JasperReports是一个开源的java报表制作引擎的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ubuntu9.10升级成功
- 下一篇: Spring Cloud Zuul网关