Posted on 2012-08-07 17:14
思達商智 閱讀(894)
評論(0) 編輯 收藏 所屬分類:
Java報表設(shè)計
Java報表工具,首先可以分成兩大類:純Java報表工具,和支持Java的報表工具。
支持Java的報表工具
我們所說的”支持”Java的報表工具.其實就是非Java的報表工具,但是可以在Java程序中調(diào)用.這樣的產(chǎn)品很多,總的講一大類是采用獨立報表服務(wù)器的,如Crystal Report,Brio,Cognos,和勤等;另一大類是在前端有控件的,如數(shù)巨報表等。
純Java報表工具
純Java的報表工具,就是用java語言編寫的報表工具,包括報表引擎、內(nèi)核、設(shè)計器界面、操作等。主要的有:Style Report,潤乾報表、Jasper Report,Birt,F(xiàn)ine Report,ireport,杰表等。
筆者只針對其中三款純Java報表的中國式報表的處理做簡單比較: 所謂中國式報表或者說復(fù)雜報表,其最根本的特征就是其格間關(guān)系的復(fù)雜度和布局擴展的靈活性,比起傳統(tǒng)的以數(shù)據(jù)分組和聚合為基礎(chǔ)的報表來說,中國式報表的布局和格間計算都復(fù)雜得多,所以很多傳統(tǒng)的報表工具比如最著名的水晶報表在處理起這類復(fù)雜報表時就顯得比較吃力。
Java報表工具--潤乾:類似于Excel的可以支持任意行列擴展的報表處理模式。
- 優(yōu)點:靈活性高。用戶可以通過對每個單元格的腳本進行簡單的計算和數(shù)據(jù)處理,然后通過單元格之間的關(guān)聯(lián),進行分組和匯總等工作。但和傳統(tǒng)結(jié)構(gòu)化報表設(shè)計不同的是報表表格不再有一個固定的格式,最后的結(jié)果更是通過單元格的擴展,好像搭積木似的拼接起來。此類處理辦法是最完全的處理辦法,國內(nèi)其它廠家紛紛效仿。
- 缺點:學(xué)習(xí)和設(shè)計的難度和效率。由于這種報表設(shè)計方法本身建立在很嚴謹?shù)臄?shù)學(xué)模型的基礎(chǔ)上,所以對于沒有很強數(shù)學(xué)功底或者編程經(jīng)驗的普通人員來說,學(xué)習(xí)和掌握這種報表擴展和關(guān)聯(lián)技術(shù)常常需要很長的時間。第二個難點是在報表設(shè)計完成之后,其他人來維護和理解困難也很大,這類報表寫起來感覺功能十分強大,但讀起來有點像天書。
Java報表工具--杰表:通過拖拽加拼接的操作結(jié)合結(jié)構(gòu)化設(shè)計的報表處理模式。
- 優(yōu)點: 依靠拖放式操作的的報表設(shè)計方式,以復(fù)雜報表模型,通過嵌入超級表格對象,將復(fù)雜報表的多層表頭以及分組問題能瞬間解決。相對于潤乾報表的學(xué)習(xí)難度和設(shè)計難度就低的多,并且操作過程簡便,節(jié)約開發(fā)時間成本。
- 缺點:感覺功能限制還是比較大,尤其是對于中國式報表需要打印需求時,需要利用applet打印,需要在客戶端安裝十幾MB 的JRE。當談杰表提供100k左右的Jatoolsprinter控件,來改進打印,對于用戶來說需要另付費。
Java報表工具—Style Report將結(jié)構(gòu)化設(shè)計和行列任意擴展相結(jié)合的混合型報表處理模式。
- 優(yōu)勢:易用。用戶對于大部分比較規(guī)則的傳統(tǒng)表格,就可以通過拖拽直接建立報表而不需要學(xué)習(xí)復(fù)雜的腳本編程。而如果表格的復(fù)雜程度超過了一般拖拽等結(jié)構(gòu)化設(shè)計所能夠解決的難度,用戶就可以通過與Excel相類似的任意行列擴展的方式來設(shè)計表格
- 缺點:報表表格的設(shè)計有兩套機制,用戶需要學(xué)習(xí)兩種不同的設(shè)計方法。根據(jù)項目的具體需求和人員配置,這些優(yōu)缺點哪個更重要就要自己判斷了。
當然,對復(fù)雜表格的支持只是選擇報表軟件很多要求中的一點。如果是一次性的使用,我們可以只關(guān)注軟件和當前需求的匹配,如果是準備長期使用的軟件,就需要關(guān)注軟件總體設(shè)計思維和它長期的發(fā)展方向。