如果我們要了解Java報表的發(fā)展史,首先研究一下Java語言的發(fā)展歷程。1995年5月Sun Microsysems公司推出Java程序設計語言和Java平臺。這種簡單的、跨平臺的、面向對象的、分布式的、健壯的、安全的語言出現(xiàn)后,全世界的目光都被這個神奇的語言所吸引了。正式這種偉大的革命,基于Java語言的各種軟件和工具如雨后春筍般出現(xiàn)。
在報表軟件市場JReport、Style Report即是其中兩個佼佼者, 然而作為當時報表行業(yè)龍頭的水晶報表并沒有對應的java版本,一大批以前使用Crystal Report開始轉向JReport 和Style Report,直到2004年報表市場一直是Crystal Report、JReport和Style Repprt 三足鼎立的局面。這段時間里國產(chǎn)軟件帆軟和潤乾在2001、2002開始開發(fā)報表產(chǎn)品,基本是04年后才開始有成型產(chǎn)品問世。
以Style Report 為例,我們來回顧下Java報表發(fā)展歷程:
* 2001年Style Report V4.0 發(fā)布定時計劃、安全歸檔等技術,開始專注解決企業(yè)級報表問題
* 2002 年Style Report V 4.5 發(fā)布基于web界面的自定義報表技術,解決即席報表問題;
* 2003年 style Report V5.0 實現(xiàn)基于SOAP JSP的系統(tǒng)集成技術,完成企業(yè)環(huán)境下異構系統(tǒng)間的集成;
* 2004年 Style Report V6.0 發(fā)布基于OLAP ROLAP的數(shù)據(jù)分析技術,逐步向商業(yè)智能領域開始拓展。
* 2005年Style Report V7.0 基于行列對稱擴展的復雜報表技術;同年,基于參數(shù)流的報表控制技術,將數(shù)據(jù)填報及工作流機制引入報表系統(tǒng)。
* 2007年 Stle Report V8.0實時數(shù)據(jù)分析(數(shù)據(jù)混搭)專利技術
* 2009年 Style Report V10.0發(fā)布多維圖表、矢量地圖等等數(shù)據(jù)可視化元素,分布式處理架構實現(xiàn)實時計算和展現(xiàn)的行業(yè)難題。
* 2012年,Style Report V11 移動應用、海量數(shù)據(jù)報表展現(xiàn)技術
而JReport的發(fā)展歷程也同樣是從報表打印數(shù)據(jù)、web報表應用、OLAP、復雜報表到移動應用,Java報表的功能進化史伴隨著客戶需求的演進而演進,伴隨著技術的革新而進步。國內(nèi)的Java報表需求有很強烈的中國特色風格---復雜式報表,包含復雜表頭、行列對稱擴展等等特殊需求也催生了潤乾報表的發(fā)展和強大。
以上的幾個代表廠商都是采用純Java語言編寫的Java報表,除此之外,市場之中還存在另外一種聲音:“支持Java的報表工具”。因為Java報表的跨平臺性諸多非Java報表廠商逐漸推出支持Java的報表工具,可以在Java程序中調(diào)用,這樣的產(chǎn)品就比較多了,總的來說包括一類是采用獨立報表服務器的Brio、Cognos、和勤,甚至包括大名鼎鼎的Crystal Report,以及另一類在前端有控件的,如數(shù)巨報表等。
通行的Java報表軟件能夠在J2EE環(huán)境下提供很好的集成性,而且運行環(huán)境比較簡單,只有配備JDK即可運行,另外具有高集成性,能夠輕松部署在各種操作系統(tǒng)中。它們都包含以下幾個功能塊:
* 數(shù)據(jù)連接、模型生成:靈活開放的ODBC技術確保報表展現(xiàn)以及設計端能夠與多種數(shù)據(jù)源的實現(xiàn)安全性高速度極快的讀取及連通性。另外,數(shù)據(jù)模型的生成和靈活搭建卻因不同的開發(fā)商不同給出的解決方案不同,例如Style Report有獨立的數(shù)據(jù)建模器,潤乾報表有自己專利的非線性數(shù)據(jù)模型。
* 報表服務器:一般情況下,報表服務器是個邏輯概念,并沒有一個物理的服務器在運行。它是作為應用服務器上的一個應用提交的,或者直接面向應用程序員提交的JAR包。
* 報表設計器:報表開發(fā)人員以及設計人員面對的直接操作平臺,主要分為流式報表布局以及類Excel的表格式布局方式。不同的Java報表軟件采用不同的設計模式,例如style Report采用流式報表布局,潤乾主要采用的表格式布局方式,各有優(yōu)劣,暫且不表。
* Web報表端:HTML語言的流行,加之Java本身的交互性特性促成了web報表應用成為必然趨勢。
* OLAP多維數(shù)據(jù)分析:隨著數(shù)據(jù)分析的需求逐漸增加,報表的需求不僅僅是靜態(tài)的展現(xiàn),當然這只是java報表的發(fā)展趨勢,不并不是所有的java報表都能做到,即使產(chǎn)品在宣傳中生成實現(xiàn),而實際應用起來相當粗淺。
* 報表輸出、打印:java報表數(shù)據(jù)需要各類表格樣式(交叉表、嵌套表、列表);支持各種圖表(如柱圖、餅圖等等);各種導出格式(包括excel、csv、pdf、xml等)
* 二次開發(fā)、集成:提供開放的API借口,根據(jù)客戶的個性化需求進行個性化定制和開發(fā)、并且支持各種功能塊擴展。
此外,隨著終端用戶對報表交互的需求,即席報表成為作為Java報表軟件里不可或缺的一部分應用。當然對于大型的企業(yè)級用戶,報表安全、監(jiān)控、計劃任務、集群等等企業(yè)級應用的特殊需求也讓Java報表的功能逐漸完善。
隨著HTML5的盛行和應用,報表的移動應用也逐漸成為必需;隨著企業(yè)級數(shù)據(jù)的海量式增長速度,對大數(shù)據(jù)量處理和展現(xiàn)的需要也同樣成為Java報表共同面臨的難題。任何一類產(chǎn)品的進步都伴隨著技術的革新以及客戶逐漸理性的需求而成長,Java報表必將如此。
轉自:http://inetsoft.blog.51cto.com/1848983/948021