本人一直在走.NET技術路線,考慮到後期公司搞JAVA項目,也算是進行技術災備,開始對JAVA技術進行關註。萬事開頭難,也是上來一頭包。沒辦法,頂著上吧。上面開始分給我任務了。就是對後期項目報表進行方案選型。哥們兒花了兩周的時間總算是提供了幾個方案,以供相關人員選擇。特將此次過程整理如下: 一、萬事 ...
本人一直在走.NET技術路線,考慮到後期公司搞JAVA項目,也算是進行技術災備,開始對JAVA技術進行關註。萬事開頭難,也是上來一頭包。沒辦法,頂著上吧。上面開始分給我任務了。就是對後期項目報表進行方案選型。哥們兒花了兩周的時間總算是提供了幾個方案,以供相關人員選擇。特將此次過程整理如下:
一、萬事開頭難,百度幫上前。兩眼一摸黑,搜完才算完。
JAVA只是瞭解過,真要從無到有,也是要慢慢做上一兩個項目的。既然如此,借上此機會,先橫刀立馬再說。百度一搜,果然在JAVA項目中可以用的報表琳琅滿目,看的我是眼花繚亂。 經過一番整理後,發現大家都是在用開源報表iReport,一陣竊喜。不管怎麼著,實現機制也相對容易。不過,美中不足的是,最後一版是2014年,在社區裡面還發現,此軟體已經不再後期維護,這不是要了親命嘛。不管怎麼說,先試試吧,搞出來一個樣子也好。經過一番學習,報表也設計出來了,集成到demo程式中也可以出來PDF報表。此時,又發現一個問題,中文不支持,坑是一個接一個啊。沒辦法,在網上一頓找,發現需要向font.jar中填加相應的字體,配置相關的參數。好吧,乖乖配置上後,報表終於出來了。還是挺有成就感的。
此時,想到前面項目中報表的樣式,我想用此報表是否可以實現(在.NET項目中,報表使用的是RDLC)。好嘛,不試不知道,一試嚇一跳。不支持我需要的列跨行展示,這真是稍微提高點複雜度就直接掛了。讓我也是由衷的醉了。百度查一下大家怎麼處理的,最後的結果是大家都沒處理成這個問題。去國外的論壇網站上看看,也是同樣的結果。看來iReport雖然好用,考慮到功能不全,版本斷篇兒,也只能放棄了。鬱悶!
二、以為逢迴路轉,實際黑暗一片
既然此路不通,只能轉別的方向了。iReport既然不支持了,我想是不是此項目已經轉到其他組織,或者進行了版本更新改了名字。後來在相關官網上發現有jasperReport,下載安裝後發現果然如此,從界面來看很像Eclipse的開發環境,使用友好性也提高了。不過經過實驗後,用到自己的項目上,集成思路完全可以按照iReport方式來集成。對於我所需要的複雜報表依舊無法實現。看了想用這款報表來做展示,簡單的數據展示沒有問題,但是複雜一些的還是不要考慮了。
不過在網上查的資料,發現有的項目用的是BIRT,不過此報表我搞了半天也沒搭出環境來,不說設計器在哪兒,光需要引用的集成包那叫一個多啊,還需要配置各種配置文件。總之,在初次涉及報表功能時,最好不要採用此種方案,否則會倍受折磨。
三、開源雖然好,依舊收費強
既然開源的已經無法滿足,只好轉向商用收費的報表工具了。通過網上的瞭解,帆軟報表(FineReport)、潤乾報表在市面上的評價還是不錯的。後來研究後,發現二者的區別不是很大,在用戶使用友好性、難易度方面。個人更偏向於帆軟。兩者均可以設計複雜的報表展示。最後用帆軟設計的demo報表集成到項目中。
綜上所述,在此次報表選型過程中,根據能否滿足項目功能、成本、難易度幾個維度來考慮。個人認為,商用報表工具優先考慮,其次在可以折中的情況下,jasperReport也是不錯的選擇,最後我沒有搞定的就是BIRT,集成起來很麻煩,不知道在做報表設計的時候會是什麼感受。希望做過此部分的同行們可以給出建議,共同學習。