JAVA報(bào)表

          報(bào)表工具

          為什么說中國式報(bào)表特殊-5.3 跨行組運(yùn)算

          中國報(bào)表統(tǒng)計(jì)方面的第三個(gè)復(fù)雜點(diǎn)是格間運(yùn)算,特別是跨行組的運(yùn)算。

          要統(tǒng)計(jì)就要有運(yùn)算,所有的報(bào)表開發(fā)工具都提供了計(jì)算匯總的功能。運(yùn)算只有兩種,一種是行內(nèi)各列之間的運(yùn)算,另一種是針對某組(或全體)所有數(shù)據(jù)進(jìn)行的匯總(可能帶條件),兩種運(yùn)算可以組合。

          但是,在中國的報(bào)表中只有要時(shí)間序列的,多半就要涉及到比上期、比去年同期之類的運(yùn)算,這種運(yùn)算跨行甚至跨組了。而這種能力,咱們手上這些報(bào)表開發(fā)工具就又沒有了。其原因在于:這類工具都和數(shù)據(jù)庫的概念匹配得很好,而數(shù)據(jù)庫的行是沒有次序的,不知道誰是誰的上一行,比上期就沒法定義了,比去年同期這種跨組運(yùn)算更是想不明白了。為了解決這些問題,有些工具添加了一些引用上行或累積值的特殊函數(shù),但跨組運(yùn)算依然沒法處理,只有再寫代碼了。

          這種比較有規(guī)律的需求還不算太難辦,編程序準(zhǔn)備數(shù)據(jù)或是寫個(gè)復(fù)雜點(diǎn)的SQL語句都能處理。但中國表中常常還會(huì)有些獨(dú)立的格子,其運(yùn)算方法和誰都不相干,或是從表格中東南西北挑幾個(gè)格子加減乘除一番,或者干脆又要到數(shù)據(jù)庫中再做SELECT運(yùn)算,與其它格子之間無規(guī)律可循。這可不是在后臺(tái)寫點(diǎn)程序準(zhǔn)備好數(shù)據(jù)就完了的,需要生成完表格后,再編程序計(jì)算出這些數(shù)填進(jìn)去,這種搞法一般就得采用報(bào)表的腳本或者宿主開發(fā)語言來寫代碼了。

          這三個(gè)較大的數(shù)據(jù)統(tǒng)計(jì)問題已經(jīng)把大伙折磨得差不多吧,其它相關(guān)的還有一些次要問題,比如參數(shù)和宏的引入、交叉表的表頭向右對齊問題等等,就不細(xì)說了。

          posted on 2006-12-15 09:47 java-report 閱讀(1163) 評論(0)  編輯  收藏

          主站蜘蛛池模板: 贵南县| 西平县| 固原市| 固始县| 当涂县| 青川县| 山阴县| 文成县| 南充市| 安岳县| 石嘴山市| 唐海县| 隆昌县| 兴仁县| 台北县| 双江| 石嘴山市| 门源| 美姑县| 蓬安县| 遂昌县| 旅游| 建始县| 宁德市| 咸阳市| 阿坝县| 蚌埠市| 萨迦县| 临安市| 赞皇县| 红河县| 郑州市| 阳城县| 郁南县| 新营市| 包头市| 济南市| 即墨市| 叙永县| 沙坪坝区| 永善县|