原文出處:http://blog.csdn.net/legendinfo/archive/2004/10/27/154876.aspx
JasperReports
JasperReports是一個(gè)流行,完全開放源代碼的報(bào)表工具,你能夠使用XML報(bào)表模版在屏幕上顯示報(bào)表,打印或者保存為一個(gè)PDF文檔。JasperReport主要是包含一個(gè)Report Engine來解釋XML。
使用jasperreports的大致流程是:
1.定義報(bào)表格式文件(XML文件),這個(gè)格式文件可以手寫也可以用ireport(圖形界面)生成。
2.編譯報(bào)表格式文件。jasperreports提供相關(guān)的方法,只需要調(diào)用一下就可以了,生成*.jasper。
3.調(diào)用*.jasper生成報(bào)表。
在報(bào)表設(shè)計(jì)工具中設(shè)計(jì)xml報(bào)表模板。設(shè)計(jì)完畢后,啟動(dòng)Report Engine,把xml編譯成jasper文件,然后通過jdbc或其他數(shù)據(jù)源填充數(shù)據(jù),生成jprint對(duì)象或文件,然后通過JasperView來顯示報(bào)表,最后打印或輸出為(PDF, HTML, XLS,
CSV and XML files)。JasperReport的數(shù)據(jù)源可以通過jdbc,也可以是我們自己提供的數(shù)據(jù)源比如Object[][],Vecotor等。
對(duì)于JasperReports報(bào)表設(shè)計(jì)工具卻有多個(gè),包含jasperEdit,JasperDesing,ireport(推薦)。
三者功能上的一些比較:
|
JasperDesign
|
ireport
|
JasperEdit
|
Xml文本編輯
|
無
|
無
|
有
|
可視化操作
|
差
|
好
|
一般
|
穩(wěn)定性
|
差
|
好
|
好
|
可操作性
|
差
|
好
|
|
速度
|
差
|
很好
|
一般
|
可否直接預(yù)覽報(bào)表
|
不行
|
不行
|
可以
|
JasperReports資料較多,API組織很到位,各種Demo,Viewer很齊全。已收集到其收費(fèi)文檔。IReport的資料也較多。JasperReports導(dǎo)出的各種格式的圖標(biāo)樣式比JfreeReport的對(duì)應(yīng)格式美觀。
美國(guó)JDJ Java報(bào)表工具評(píng)選開源工具第一。
優(yōu)點(diǎn):
1、 它是開源和免費(fèi)的,便于研究和修改;100%的純java開發(fā),免去平臺(tái)限制。
2、 對(duì)于程序員來說,其設(shè)計(jì)是有第三方的可視化設(shè)計(jì)工具iReport支持的,這樣可以避免一些常范的語法錯(cuò)誤。
3、 最重要的是,它把報(bào)表樣式放在一個(gè)xml文件中定義,因此我們要作自定義的報(bào)表,只需集中控制這個(gè)xml文件。
4、 jasper提供了參數(shù)的應(yīng)用,然后可以在一個(gè)jsp文件中去初始化這些參數(shù),為我們作xml的集中控制帶來了很大的方便。
缺點(diǎn):
1、 報(bào)表的格式幾乎是不可變的,只能是列表式,如果要作變通,必須在數(shù)據(jù)上作變通。
2、 沒有格線,報(bào)表的美觀效果有可能會(huì)受到影響,也影響了打印的效果。
3、 如果是自生成xml文件,ireport 是用不上的,所以有許多的語法問題都要特別注意。
4、 目前用它來作自定義報(bào)表的文檔幾乎沒有,因此經(jīng)驗(yàn)支持相對(duì)較少。
5、 因?yàn)槭敲赓M(fèi)的,所以沒有技術(shù)支持。
JasperReports報(bào)表需要編譯,生成一個(gè)中間文件.jasper。
Java程序可以用JasperReports提供的API直接解析.jasper文件顯示報(bào)表。
開發(fā)時(shí)間:從2001開始開發(fā),目前版本0.5.3。
JfreeReport
JFreeReport是JFreeReport.Org基于LGPL授權(quán)協(xié)議提供的一組java包,是JFreeChart的姐妹項(xiàng)目,用于生成各類報(bào)表。JFreeReport的數(shù)據(jù)繼承自Swing組件的TableModel接口,使用基于XML的報(bào)表格式定義文件對(duì)報(bào)表進(jìn)行格式化。JFreeReport生成的報(bào)表可以分頁(yè)預(yù)覽、打印,而且支持導(dǎo)出為多種格式的文件如pdf、Excel、CSV、html等。更重要的是,JFreeReport不僅支持基于C/S結(jié)構(gòu)的系統(tǒng),而且支持基于B/S結(jié)構(gòu)的系統(tǒng)中的在線報(bào)表顯示。
使用JFreeReport生成報(bào)表通常需要以下三個(gè)基本步驟:
生成可通過TableModel接口訪問的數(shù)據(jù)。
生成一個(gè)JFreeReport實(shí)例,他定義了我們?nèi)绾胃袷交@示數(shù)據(jù)。
將數(shù)據(jù)和JFreeReport實(shí)例連接起來,并且將該JFreeReport實(shí)例傳給PreviewDialog的一個(gè)實(shí)例顯示給用戶。
JFreeReport中使用了兩種基于XML的報(bào)表定義文件來保存報(bào)表定義信息:簡(jiǎn)單格式和擴(kuò)展格式.很明顯,簡(jiǎn)單格式不能夠完全的描述JFreeReport支持的全部報(bào)表定義信息,但是他更易于上手使用。而擴(kuò)展格式則能夠?qū)?/span>JFreeReport的報(bào)表定義提供完整的支持,但是擴(kuò)展格式太詳細(xì)了,不太容易使用。
JfreeReport沒有可視化的報(bào)表設(shè)計(jì)工具。
JfreeReport不需編譯成中間文件,對(duì)象直接在內(nèi)存中傳遞。
缺點(diǎn):不能結(jié)合jdbc得到數(shù)據(jù)來填充報(bào)表,只能自定義數(shù)據(jù)源。
例子很少,沒有web demo。文檔收費(fèi)。
開發(fā)時(shí)間:從2002年開始開發(fā),目前版本0.8.4_10
開源報(bào)表工具選擇:建議JasperReports+iReport
posted on 2007-11-15 14:57
阿蜜果 閱讀(4090)
評(píng)論(2) 編輯 收藏 所屬分類:
JFreeReport