復(fù)雜報(bào)表復(fù)雜在哪?

復(fù)雜報(bào)表復(fù)雜在哪?

ID:34510245

大?。?29.91 KB

頁(yè)數(shù):3頁(yè)

時(shí)間:2019-03-07

復(fù)雜報(bào)表復(fù)雜在哪?_第1頁(yè)
復(fù)雜報(bào)表復(fù)雜在哪?_第2頁(yè)
復(fù)雜報(bào)表復(fù)雜在哪?_第3頁(yè)
資源描述:

《復(fù)雜報(bào)表復(fù)雜在哪?》由會(huì)員上傳分享,免費(fèi)在線(xiàn)閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。

1、復(fù)雜報(bào)表復(fù)雜在哪?報(bào)表開(kāi)發(fā)者總會(huì)遇到一些較為復(fù)雜的報(bào)表,這類(lèi)報(bào)表的數(shù)目通常很少,但花費(fèi)的開(kāi)發(fā)時(shí)間卻很多,有時(shí)候還會(huì)變成疑難問(wèn)題。本文將討論這些復(fù)雜報(bào)表到底復(fù)雜在哪方面,以及該用什么方法去解決,希望對(duì)提高報(bào)表的開(kāi)發(fā)效率有所幫助。以前的復(fù)雜報(bào)表主要復(fù)雜在前端:?單元格合并,斜線(xiàn)表頭。?字體風(fēng)格根據(jù)數(shù)據(jù)大小發(fā)生變化。?任意單元格之間的計(jì)算。比如針對(duì)幾條特殊的明細(xì)數(shù)據(jù),計(jì)算它們和匯總值的比例。?片區(qū)之間有規(guī)律的計(jì)算。比如橫向表頭是產(chǎn)品分類(lèi),縱向表頭由兩種分組拼成:三層機(jī)構(gòu)分組、單層年度分組,交叉處要顯示某類(lèi)產(chǎn)品在不同分組中的銷(xiāo)售額。?不規(guī)則分組。比如按照州、州

2、府間隔顯示各州的產(chǎn)品銷(xiāo)量(總計(jì)時(shí)不能重復(fù)計(jì)算州府的銷(xiāo)量)。報(bào)表工具經(jīng)過(guò)十年的發(fā)展,上述前端難題大都已經(jīng)得到了妥善的解決,比如StyleReport、RunqianReport、QlikView、Tableau,它們各自用不同的方法解決了上述難題?,F(xiàn)在的報(bào)表主要復(fù)雜在后端,即數(shù)據(jù)源的計(jì)算。?復(fù)雜的業(yè)務(wù)邏輯。比如:找出連續(xù)三個(gè)月銷(xiāo)售額增長(zhǎng)超過(guò)10%的銷(xiāo)售人員,展示他們的銷(xiāo)售額和銷(xiāo)量。再比如:找出購(gòu)買(mǎi)過(guò)參數(shù)列表中所有item的Customer,展示這些Customer的帳戶(hù)余額。?跨庫(kù)計(jì)算。比如:某企業(yè)要根據(jù)績(jī)效和基本工資核算不同工種員工的實(shí)際工資,基本工資

3、存儲(chǔ)在財(cái)務(wù)管理軟件的MSSQL數(shù)據(jù)庫(kù)中,而績(jī)效分?jǐn)?shù)存儲(chǔ)在績(jī)效考核系統(tǒng)的Oracle數(shù)據(jù)庫(kù)中,請(qǐng)將績(jī)效分?jǐn)?shù)轉(zhuǎn)化為工資數(shù)額并呈現(xiàn)在報(bào)表中。再比如:某連鎖商場(chǎng)各門(mén)店都有自己的數(shù)據(jù)庫(kù),總部需要用報(bào)表來(lái)呈現(xiàn)這些數(shù)據(jù)的匯總結(jié)果。?非數(shù)據(jù)庫(kù)數(shù)據(jù)源的計(jì)算。比如:根據(jù)Excel中的數(shù)據(jù),從多只股票中選出連續(xù)上漲5天的股票;根據(jù)日志中的數(shù)據(jù),展示出指定時(shí)間段內(nèi)每個(gè)用戶(hù)對(duì)每種產(chǎn)品的關(guān)注時(shí)間等。?多源合并為單源。比如,BIRT、CrystalReport、JapserReport等報(bào)表工具對(duì)多數(shù)據(jù)庫(kù)支持不夠方便,經(jīng)常需要編寫(xiě)用戶(hù)自定義數(shù)據(jù)源將多源合并為單源。常見(jiàn)的報(bào)表工具只負(fù)

4、責(zé)將取到的數(shù)據(jù)呈現(xiàn)出來(lái),不涉及后端數(shù)據(jù)的生成,報(bào)表開(kāi)發(fā)者必須自己想辦法解決上述問(wèn)題,因此報(bào)表后端的復(fù)雜性一直是困擾報(bào)表開(kāi)發(fā)者的最大障礙,也是復(fù)雜報(bào)表之所以顯得復(fù)雜的主因。同時(shí),現(xiàn)代報(bào)表講究簡(jiǎn)潔易讀,用戶(hù)對(duì)復(fù)雜樣式的要求在逐漸降低,而對(duì)數(shù)據(jù)本身的關(guān)注程度更高,復(fù)雜報(bào)表的重點(diǎn)早已從前端呈現(xiàn)轉(zhuǎn)移到后端數(shù)據(jù)源。事實(shí)上,前端的復(fù)雜性也大多可以通過(guò)后端來(lái)解決,比如片區(qū)之間有規(guī)律的計(jì)算、不規(guī)則分組,這就使報(bào)表數(shù)據(jù)源的計(jì)算更加重要。解決報(bào)表中復(fù)雜的數(shù)據(jù)源計(jì)算,可以采用SQLSP,中間數(shù)據(jù)庫(kù)、自定義數(shù)據(jù)源等三種方式。SQLSP理論上可以解決復(fù)雜的業(yè)務(wù)邏輯,但一方面僅

5、限于單數(shù)據(jù)庫(kù)的情況,對(duì)于其他情況無(wú)能為力,比如:非數(shù)據(jù)庫(kù)數(shù)據(jù)源、跨庫(kù)計(jì)算、多源合并為單源。另一方面,復(fù)雜業(yè)務(wù)邏輯并非普通的報(bào)表開(kāi)發(fā)者就能輕易實(shí)現(xiàn),往往需要調(diào)配更加資深的程序員。由此可見(jiàn),SQLSP能解決的問(wèn)題有限,對(duì)人員的要求較高,不足之處非常明顯。中間數(shù)據(jù)庫(kù)可以用來(lái)實(shí)現(xiàn)跨庫(kù)計(jì)算,即把異種數(shù)據(jù)庫(kù)的數(shù)據(jù)加載到同一個(gè)數(shù)據(jù)庫(kù),再用報(bào)表工具來(lái)訪(fǎng)問(wèn)中間數(shù)據(jù)庫(kù)中的統(tǒng)一視圖。中間數(shù)據(jù)庫(kù)一般需要單獨(dú)配置,會(huì)增加額外的成本負(fù)擔(dān)。另外,中間數(shù)據(jù)庫(kù)有一個(gè)加載的過(guò)程,實(shí)時(shí)性比較差。如果想實(shí)現(xiàn)增量實(shí)時(shí)加載,就需要建立調(diào)度任務(wù)或在源庫(kù)中添加觸發(fā)器和時(shí)間戳,并書(shū)寫(xiě)較為復(fù)雜的數(shù)據(jù)加

6、載腳本,顯然,額外的開(kāi)發(fā)工作量會(huì)顯著增加。不僅如此,很多商業(yè)軟件的數(shù)據(jù)庫(kù)是不允許擅自修改的,無(wú)法添加觸發(fā)器和時(shí)間戳,性能的提升也就無(wú)從談起。由此可見(jiàn),中間數(shù)據(jù)庫(kù)的不足之處是成本高、開(kāi)發(fā)工作量大、實(shí)時(shí)性和性能得不到保障。非數(shù)據(jù)庫(kù)數(shù)據(jù)源的計(jì)算也可以采用中間數(shù)據(jù)庫(kù)的辦法,優(yōu)缺點(diǎn)也大致相同,區(qū)別主要在實(shí)時(shí)性和成本上。首先,非數(shù)據(jù)庫(kù)數(shù)據(jù)源難以增加觸發(fā)器和時(shí)間戳,無(wú)法實(shí)現(xiàn)實(shí)時(shí)計(jì)算。其次,很多非數(shù)據(jù)庫(kù)數(shù)據(jù)源的數(shù)據(jù)量較大,會(huì)占用寶貴的數(shù)據(jù)庫(kù)存儲(chǔ)空間,成本更高。比如前面根據(jù)日志數(shù)據(jù)計(jì)算關(guān)注時(shí)間的例子,商業(yè)網(wǎng)站每天的日志都有幾千萬(wàn)條,一年的數(shù)據(jù)可能就有幾個(gè)TB之多,中間數(shù)

7、據(jù)庫(kù)不得不面臨頻繁升級(jí)之苦。大數(shù)據(jù)量還會(huì)對(duì)性能產(chǎn)生較大的影響,要想提升數(shù)據(jù)庫(kù)的性能,就要采用并行數(shù)據(jù)庫(kù),成本非常昂貴。自定義數(shù)據(jù)源是大部分報(bào)表工具都會(huì)提供的接口,解決多源合并為單源的問(wèn)題比較方便,其中最常見(jiàn)的是用戶(hù)自定義JavaBean。用戶(hù)自定義JavaBean允許開(kāi)發(fā)者用高級(jí)語(yǔ)言將異構(gòu)數(shù)據(jù)庫(kù)、異種數(shù)據(jù)源、半結(jié)構(gòu)化數(shù)據(jù)源的數(shù)據(jù)合并為單一數(shù)據(jù)源,優(yōu)點(diǎn)是靈活自由無(wú)所不能,但缺點(diǎn)也同樣明顯。和SQL/esProc/R這類(lèi)專(zhuān)業(yè)的數(shù)據(jù)計(jì)算語(yǔ)言不同,JAVA等高級(jí)語(yǔ)言缺乏結(jié)構(gòu)化計(jì)算函數(shù),開(kāi)發(fā)者首先要實(shí)現(xiàn)過(guò)濾、分組、匯總、排名、排序、唯一值、關(guān)聯(lián)算法等大量的底層函

8、數(shù)才能進(jìn)行計(jì)算,開(kāi)發(fā)工作量巨大。對(duì)于一般甚至是較為簡(jiǎn)單的算法來(lái)說(shuō),用高級(jí)語(yǔ)言實(shí)現(xiàn)都極為困難。R

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫(huà)的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問(wèn)題,請(qǐng)放心下載。
2. 本文檔由用戶(hù)上傳,版權(quán)歸屬用戶(hù),天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶(hù)請(qǐng)聯(lián)系客服處理。