java復雜報表模型與實現方法
作為java程序員,大家可能都聽說過,或用過birt, 據說,現在birt的東家actual,正式入駐中國市場,聯想到前些天杰表.2008的推出,今年,注定是國內的報表軟件市場不平靜的一年。birt的最大好處是開源,不足是水土不服,做起復雜報表來不方便,復雜報表主要說的是行上,列上有多個并列分組的交叉報表,國產報表工具大都關注復雜報表需求,而洋品牌的報表軟件工具,如jasperreport,crystalreport,這方面關注不夠,所以做起復雜報表來很吃力。
做什么事情必須先有觀念,然后,付諸實現,做軟件則更進一步,必須將這些觀念結構化,即模型化。對復雜報表需求的處理,國內報表軟件廠商時下,用得最多的是類excel報表模型,即以單元格為中心報表模型,最早產品化的,是用友華表,當然它不屬于java陣營的,java陣營的現在有潤乾,finereport,杰表4.0,類excel報表模型大家都覺得,功能很強,但最大問題是,學習起來不方便,不知道你在大學里,微積分考多少,如果你90分以下,那你最好別碰那東西。
杰表.2008采用的復雜報表模型,相對來說,比excel模型容易得多,比如下圖是一個典型的復雜報表,該報表用于按不同分類方法

復雜報表的復雜性在于結構復雜,比如上圖報表列上存在多個并列分組,不僅如此,行上也可能存在多個并行分組;不僅有多個并列分組,也可能各并列分組的嵌套數不一樣;不僅各個分組來源于同一個
盡管如此,我們仍然可以把復雜的交叉報表,看作下圖所示的結構,表格包括A,B,C,D四部分,其中B,C是兩個表格,決定了交叉表的結構。B表格非常特殊,第一,該表格向右生長的,而一般我們常見向下生長,如C 表格。第二,該表格有多個并列分組,而一般報表工具中,表格對象最外圍只能有一個分組,盡管其嵌套數是可以多重的。

杰表.2008以上述結構分析為基礎,引入了超級表格對象,該對象就是通過嵌入兩個擴展方向不同的子表格,行頭表和列頭表,來完成交叉報表的結構性問題。兩表均可以有任意多的并列分組,每個分組可以有

杰表的超級表格對象結合杰表的DOM報表數據模型,可以演化出任意復雜的多源,多組交叉表,下面試舉幾例說明之。(點擊進入查看)
列上并行分組交叉表
層次不等的交叉表
行列并行分組的交叉表
多數據集的交叉表
計算比去年增長數
計算比去年同期增長數
計算占比
顯示排名
按照匯總值排序的交叉報表
交叉表折頁處理
交叉表居中