為什么說(shuō)中國(guó)式報(bào)表特殊-5.1 多數(shù)據(jù)源
數(shù)據(jù)統(tǒng)計(jì)方面的問(wèn)題要比報(bào)表樣式的問(wèn)題多得多,也嚴(yán)重得多,要分幾個(gè)方面來(lái)研討。
中國(guó)報(bào)表統(tǒng)計(jì)方面第一個(gè)重要特征是多數(shù)據(jù)源。
所謂多數(shù)據(jù)源是指同一張報(bào)表的數(shù)據(jù)會(huì)來(lái)自多個(gè)不同的數(shù)據(jù)表或視圖,甚至來(lái)自多個(gè)不同的異構(gòu)數(shù)據(jù)庫(kù)!
1
)人員信息表
姓名 |
|
性別 |
|
年齡 |
|
政治面目 |
|
學(xué)歷 |
|
職稱 |
|
家庭住址 |
|
||||
家庭成員 |
|||||
稱呼 |
姓名 |
性別 |
年齡 |
單位 |
|
|
|
|
|
|
|
|
|
|
|
|
正常情況下會(huì)在數(shù)據(jù)庫(kù)中設(shè)計(jì)兩張數(shù)據(jù)表來(lái)保存這個(gè)表格中的數(shù)據(jù)。
2)
成本銷售表
月 |
購(gòu)進(jìn)貨物 |
銷出貨物 |
余額 |
||||||
煙 |
酒 |
茶 |
糖 |
煙 |
酒 |
茶 |
糖 |
||
期初 |
|
|
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
2 |
|
|
|
|
|
|
|
|
|
3 |
|
|
|
|
|
|
|
|
|
合計(jì) |
|
|
|
|
|
|
|
|
|
一般為了業(yè)務(wù)系統(tǒng)處理方便,購(gòu)進(jìn)和銷出信息在數(shù)據(jù)庫(kù)中也會(huì)是兩個(gè)數(shù)據(jù)表,這張報(bào)表中不僅有兩組來(lái)源不同的數(shù)據(jù),而且之間還要運(yùn)算(余額)。
帶七、八個(gè)數(shù)據(jù)源,關(guān)聯(lián)n張表的中國(guó)式報(bào)表非常多。
對(duì)于第一張表,上下部分格式完全不同,如果用拖拽式工具,只能采用子報(bào)表的方法,也就是把下半部分造成一個(gè)子表貼進(jìn)去,這就使得原本就極難對(duì)齊的格線變得更難對(duì)齊,如果再增加三五個(gè)子表,考慮到每個(gè)子表都會(huì)根據(jù)數(shù)據(jù)庫(kù)中數(shù)據(jù)擴(kuò)展,整張報(bào)表還不知道會(huì)變成多大;其次主子表之間除了簡(jiǎn)單的參數(shù)傳遞外,互相之間無(wú)法溝通,想在子表中進(jìn)行運(yùn)算,還得重新再算。所以,傳統(tǒng)的子報(bào)表能不用盡量不用。
第二張表,樣式不復(fù)雜,兩個(gè)數(shù)據(jù)表叉乘,寫(xiě)個(gè)復(fù)雜點(diǎn)的
SQL
就行。如果一個(gè)報(bào)表中有七八個(gè)、上十個(gè)數(shù)據(jù)源呢?數(shù)據(jù)庫(kù)做
n
張表的叉乘,有點(diǎn)高等數(shù)學(xué)基礎(chǔ)的同志應(yīng)該都能算出來(lái)要花的時(shí)間。而且復(fù)雜的
SQL
查錯(cuò)、維護(hù)都很麻煩,跟寫(xiě)代碼好像也沒(méi)什么差別。
當(dāng)然你可以寫(xiě)代碼,包括寫(xiě)存儲(chǔ)過(guò)程準(zhǔn)備中間表,但是如果這么做,還要報(bào)表工具干什么?
posted on 2006-11-08 10:26 java-report 閱讀(1240) 評(píng)論(0) 編輯 收藏