OpenHandX-Report 1.01
多維度報表工具
2011-9-9
作者:彭明華
本文檔中的任何部分都不得以任何手段任何形式進行復制與傳播
目錄
1 前言
OpenHandx-Report是一個輕量級的多維度Excel報表工具,核心采用了Poi和OpenHandX-chart,同時支持Excel的2003和2007文件格式輸出。OpenHandx-Report之所以不叫報表平臺而只叫做報表工具,是因為OpenHandx-Report使用簡單、沒有花哨的功能,他本身沒有自己的模板設計工具和報表服務功能。OpenHandx-Report一切都遵循開發(fā)人員的習慣,使開發(fā)人員學習成本更低。他也具有一些商業(yè)報表平臺所沒有的功能,如:海量數據的支持、模板影射技術等。
2 需求
OpenHandx-Report 1.0需要:
l Java 5
l open-common
l open-chart
l jfreechart-1.0.13(與open-chart相關包)
l poi-3.6
l xmlbeans2.3(與poi-3.6相關包)
l dom4j-1.6(與poi-3.6相關包)
l geronimo-stax-api_1.0(與poi-3.6相關包)
l commons-beanutils-1.7
l commons-logging-1.0.4
3 名次解釋
l 交叉表數據:分析型數據庫星型(雪花型)結構的數據
l 列表(多維度)數據:關系型數據庫的列表數據
4 主要特性
l Excel2003和2007兩種格式-在同一套配置同一套數據下只要分別提供Excel2003和2007兩個格式的模板就能提供兩種格式的報表輸出
l 報表設計簡單并所見即所得- Excel就是OpenHandx-Report的報表設計工具,Excel本身的功能和方便性就超過任何一款報表設計工具,并且絕大多數開發(fā)人員都會使用
l 復雜和大型報表異步輸出-提供報表異步輸出,并提供異步生成的監(jiān)控接口可以時時監(jiān)控報表的完成情況和生成錯誤
l 海量數據的支持-集成了OpenHandx-common特有持久技術能一次從數據庫中取出所有數據(只要硬盤的剩余空間足夠大),并將這海量數據當作數據源生成報表
l 5種表格功能-支持靜態(tài)單元格、普通列表、固定列表、交叉表、固定交叉表等5種格式,這些功能能滿足聯機報表和分析性報表的需求
l 9種圖表功能-支持的圖表有區(qū)域圖、柱狀圖、儀表圖、折線圖、餅圖、雷達圖、環(huán)狀圖、點圖、瀑布圖
l 強大的數據計算功能-OpenHandx-Report具有OpenHandx-Common所有的表達式計算功能,同時支持數據匯總、記錄數、平均值等功能
l 同一Sheet表單同時支持多種展現方式-在同一個Sheet表上可以輸出多個表格數據和圖表,目前OpenHandx-Report支持5種表格、9種圖表
l 同一數據源多Sheet表單支持-同一個數據源可以根據需求輸出到不同的Sheet表單,這樣有利于同時展現不同種類的業(yè)務數據,也能滿足最終客戶的不同需求
l 多重數據展示功能-采用模板影射技術,能將多個數據源影射到一套模板并合成一個Excel文件輸出,這樣滿足最終客戶的特殊需求
l Excel2003和2007兩種格式-在同一套配置同一套數據下只要分別提供Excel2003和2007兩個格式的模板就能提供兩種格式的報表輸出。
5 多個報表支持
同一個Sheet支持多個報表,并支持混合多種類型報表、圖表。即同一Sheet表單同時支持多種展現方式。
6 多Sheet支持
在同一個Excel中支持多個Sheet報表渲染
7 多重數據支持
模板如下:
目標報表:
采用模板影射技術,能將多個數據源影射到一套模板并合成一個Excel文件輸出。
如:模板中只有一個“銷售明細”sheet,目標報表可以根據當前數據渲染多個“xx月銷售明細”sheet
8 交叉表
交叉表是面向數據挖掘分析維表
交叉表例子展示了:
1、 多個維度的交叉(行維度:地區(qū)、省份、城市,列維度:種類、水果、月份)
2、 多個度量值的展示(數量、金額)
3、 多個維度、多個度量匯總統計、單元格合并(按地區(qū)、省份、種類、水果小計)
4、 最后是總計、平均值
除了以上的展示外還有以下功能:
1. 小計、總計分別提供求平均值、記錄數,并允許自定義表達式方式對不同維度進行單元格間的計算
2. 小計、總計顯示風格上可以定義在維度字段、表格的最后,也允許定義在維度字段、表格的最前
3. 多個度量值的顯示默認是縱向排列,也可以橫向排列
4. 度量值的顯示可以按照預先定義的模板格式化輸出
5. 允許自定所有維度不排序、排序、倒序
6. 每個度量值、維度、小計、總計可以設置顯示字體、字體大小、顏色、是否粗體、是否斜體
9 固定交叉表
固定交叉表也是面向數據挖掘分析維表,但是客戶只要需展示部分的數據,數據的選取規(guī)則由模板來確定
比如:
該模板是按照客戶需求只想展示白菜、青椒、土豆等水果蔬菜,下面的表單展示部分月的數據
例子中可以看出固定交叉表繼承了交叉表的所有特性:
1. 同樣支持多個維度、多個度量值的展示
2. 同樣支持多個維度、多個度量匯總統計、單元格合并(按地區(qū)、省份、種類、水果小計)
3. 按照模板定義篩選數據
10 列表
列表是面向聯機開發(fā)的普通數據表
列表例子展示了:
1. 多列字段數據的展示(地區(qū)、省份、城市、種類、數量、金額)
2. 支持多個列表字段值(數量、金額)
3. 提供多列匯總統計、單元格合并(地區(qū)、省份、城市)
除了以上的展示外還有以下功能:
1. 小計、總計分別提供求平均值、記錄數,并允許自定義表達式方式對不同匯總字段進行單元格間的計算
2. 小計、總計顯示風格上可以定義在維度字段、表格的最后,也允許定義在匯總字段、表格的最前
3. 匯總的顯示默認是提供按行匯總統計,也可以按列匯總統計
4. 字段值的顯示可以按照預先定義的模板格式化輸出
5. 每個值、小計、總計可以設置顯示字體、字體大小、顏色、是否粗體、是否斜體
11 固定列表
固定列表也是聯機開發(fā)的普通數據表,但是客戶只要需展示部分的數據,數據的選取規(guī)則由模板來確定
比如:
該模板是按照客戶需求只想展示白菜、青椒、土豆等水果蔬菜,下面的表單展示部分月的數據
例子中可以看出固定列表繼承了列表的所有特性:
1. 同樣支持多列數據展示
2. 按照模板定義篩選數據
12 靜態(tài)數據
列表是面向靜態(tài)數據,如:報表表頭、固定日期
如:前面一個圖的“OpenHandx蔬菜水果公司”
13 圖表
支持的圖表有AreaChart(區(qū)域圖)、BarChart(柱狀圖)、DialChart(儀表圖)、LineChart(折線圖)、PieChart(餅圖)、PolarChart(雷達圖)、RingChart(環(huán)狀圖)、ScatterChart(點圖)、WaterfallChart(瀑布圖),并支持圖表維度之間的匯總計算。
下載地址:http://code.google.com/p/openhandx2/downloads/list