JAVA報表

          報表工具

          為什么說中國式報表特殊-5.2 分片

          中國報表的第二個重要特征是分片,與多源相關,但又不完全一樣。多源一般都會是分片的,但分片卻不一定是多源的。

          還是上面這兩個例子(見5.1 多數據源),兩個報表都很明顯地分成了兩片,每片都有自己獨立的規則,很難統一成一種規則處理。而我們手中的報表工具,如果不考慮采用子報表的話,都要求報表有統一的規則,整個報表只有一片可以重復的區域(細節區和相鄰的分組區),因為是單源的,想當然地以為只要一片重復區就夠了,理論上就不可能做到分片規則了。

          但中國報表中分片現象太常見了,同一批數據也可能按不同的主題統計匯總,比如人事表中并列著按民族劃分再按學歷劃分。事實的情況還遠不止分作兩片,常常是豎著五六片,橫著也是五六片,整個報表乘起來就有二十五六片。而且片與片之間又不是完全獨立,橫向的分片在縱向規則卻又是一致的,反之也是如此。既便想做成子表,也不大容易,每個分片的表頭都要重復編排,對齊就不說了。

          如果運氣好,雖然分片了,但整個表的樣式看起來還是一致的(比如上面的第二個表),那還可以使出最后的殺手锏——寫代碼!

          運氣不會時時都好,如果碰到那種上下(或左右)幾個分片中分組層數都不一樣的表,就算代碼能把數給算好,可格子卻拼不出那種上下不同的樣子,這會兒就會特別想念EXCEL了,至少樣式是可以很隨意的,寫代碼也就可以搞定了。

          具體到每個分片也不是省油的燈,不象老外弄得那么簡單,一下把所有的數都列出來,或者把所有的分組一個不落一個不重的列出來,這種搞法我們叫做“完全劃分”。對應的就還有“不完全劃分”,也就是分組中并不是把所有出現的情況都列出來(這種很常見),而且還可能重復列出(這個相對少見些)。比如我們按民族劃分人員時,不大可能把五十六個民族全來一遍,一般也就是列幾個大的民族再加個其它。比較典型的不完全劃分現象就是固定行列,無論數據庫中有多少記錄多少分組,只關心這幾種情況,表格永遠只有這幾行(列)。

          老外的東西天生就是和數據庫綁定的,固定行的不是搞不出來,可又要寫代碼或者復雜的SQL去準備數據,象著名的資產負債表,用這些報表工具去做簡直就是摧殘生命。

          而且就算是會變的,這些工具也還有個行列不對稱的問題,由于和數據庫貼得太緊,大家只見過記錄數會變的數據表,都沒怎么見過字段數也會變的數據表,所以它們也就專心處理行方向的變化,拒絕去處理列數會變的表。后來總算有了一些打補丁的交叉表模板,能對付用著,但總是用起來不那么得心應手,除非特別規整的交叉報表,否則這些大牌武器就又蝦米了。

          posted on 2006-12-08 15:57 java-report 閱讀(1412) 評論(0)  編輯  收藏

          My Links

          Blog Stats

          News

          常用鏈接

          隨筆檔案

          相冊

          收藏夾

          報表

          搜索

          最新評論

          閱讀排行榜

          主站蜘蛛池模板: 六盘水市| 宕昌县| 托克逊县| 隆德县| 绥江县| 寿宁县| 招远市| 南漳县| 德安县| 读书| 正镶白旗| 沛县| 分宜县| 即墨市| 五指山市| 邻水| 田阳县| 济源市| 温州市| 微山县| 浦江县| 伊通| 盐边县| 济源市| 永新县| 喀什市| 河源市| 余姚市| 嘉峪关市| 西峡县| 临城县| 潜江市| 华阴市| 鄂伦春自治旗| 瑞金市| 洪雅县| 资阳市| 博湖县| 沿河| 普洱| 湾仔区|