專利名稱:一種快速實(shí)現(xiàn)交叉表的實(shí)現(xiàn)方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種計(jì)算機(jī)應(yīng)用技術(shù),具體地說(shuō)是一種快速實(shí)現(xiàn)交叉表的實(shí)現(xiàn)方法。
背景技術(shù):
在ERP應(yīng)用中,如何展示ERP中的數(shù)據(jù)是每個(gè)企業(yè)必須考慮與實(shí)現(xiàn)的一部分, 在企業(yè)報(bào)表中,類似《表_2》(如附圖2所示)的報(bào)表展示方式,是企業(yè)報(bào)表中比較常 用的一種方式,但是基于計(jì)算機(jī)的程序處理中尤其是基于關(guān)系型數(shù)據(jù)庫(kù)實(shí)現(xiàn)的數(shù)據(jù)統(tǒng)計(jì) 中,易于實(shí)現(xiàn)的是《表-1》(如附圖1所示)的形式?,F(xiàn)有技術(shù)中,為了實(shí)現(xiàn)《表-1》到《表_2》的數(shù)據(jù)交叉展示,交叉表需要循 環(huán)的方式確認(rèn)需要交叉顯示的部分?jǐn)?shù)據(jù)。通常要先確定fiMM信息(辦事處、姓名),再 確定迎MM信息(費(fèi)用項(xiàng)目),確定完以后,再根據(jù)行列的標(biāo)題信息,確定具體的金額數(shù) 據(jù)信息。如果是通過(guò)數(shù)據(jù)庫(kù)的SQL方式,每個(gè)單元的數(shù)據(jù)需要單獨(dú)的提取SQL,效率比 較低,對(duì)數(shù)據(jù)庫(kù)的壓力比較大。
發(fā)明內(nèi)容
本發(fā)明的技術(shù)任務(wù)是針對(duì)上述現(xiàn)有技術(shù)的不足,提供一種快速實(shí)現(xiàn)交叉表的實(shí) 現(xiàn)方法。該方法解決了報(bào)表展示時(shí)的數(shù)據(jù)交叉顯示問(wèn)題,提高了類似數(shù)據(jù)表的顯示速度 禾口效率。本發(fā)明的技術(shù)任務(wù)是按以下方式實(shí)現(xiàn)的一種快速實(shí)現(xiàn)交叉表的實(shí)現(xiàn)方法,其 特點(diǎn)是該方法基于內(nèi)存數(shù)組處理,采用單向循環(huán)處理方式,對(duì)原數(shù)組數(shù)據(jù)進(jìn)行數(shù)據(jù)處理。進(jìn)一步的,該方法包括以下步驟第一步、對(duì)查詢結(jié)果按照行標(biāo)題進(jìn)行排序(如果結(jié)果已經(jīng)是排序的可以省略)。 如數(shù)組Al:((銷售一部,張三,培訓(xùn)費(fèi),100.00),(銷售一部,高寶,材料費(fèi), 200.00),(銷售二部,李才,材料費(fèi),300.00),(銷售二部,李四,郵雜費(fèi),400.00))。第二步、通過(guò)一個(gè)循環(huán),找出需要顯示的主列數(shù)組,如All:((銷售一部, 張三),(銷售一部,高寶),(銷售二部,李才),(銷售二部,李四)),并同時(shí)生成 一個(gè)動(dòng)態(tài)離散輔助列數(shù)組,如 A12: ((,100.00,,100.00),(200.00,,,200.00), (300.00,,,300.00), (,,400.00,400.00), (500.00,100.00,400.00,1000.00))和 輔助列的表體數(shù)組,如A13:(材料費(fèi),培訓(xùn)費(fèi),郵雜費(fèi))。第三步、將主列數(shù)組、動(dòng)態(tài)離散輔助列數(shù)組和輔助列的表體數(shù)組組合成需要 展示的結(jié)果數(shù)組,如A2:((銷售一部,張三,,100.00,,100.00),(銷售一部,高 寶,200.00,,,200.00),(銷售二部,李才,300.00,,,300.00),(銷售二部,李 四,,,400.00,400.00),(合計(jì),,500.00,100.00,400.00,1000.00))。本發(fā)明的快速實(shí)現(xiàn)交叉表的實(shí)現(xiàn)方法與現(xiàn)有技術(shù)相比,在同一個(gè)循環(huán)中同時(shí)生成了新的行標(biāo)題數(shù)組、列標(biāo)題數(shù)組和動(dòng)態(tài)離散輔助列數(shù)組,避免了傳統(tǒng)方法中,先生產(chǎn) 行標(biāo)題數(shù)組,再生成列標(biāo)題數(shù)組,然后依據(jù)行列標(biāo)題數(shù)組生成輔助列的方式,及傳統(tǒng)方 法中,輔助列信息需要單獨(dú)循環(huán)生成的缺陷,具有以下突出的有益效果(一)本方法直接對(duì)原始數(shù)據(jù)表進(jìn)行處理,不影響原有的數(shù)據(jù)歸集過(guò)程,可以方 便的進(jìn)行集成和使用;(二)本技術(shù)完全基于內(nèi)存操作,脫離基于數(shù)據(jù)庫(kù)的SQL查詢依賴,解決了在報(bào) 表展示時(shí)的數(shù)據(jù)交叉顯示時(shí)的常見(jiàn)技術(shù)問(wèn)題,并采用單向循環(huán)的處理方式,提高了類似 數(shù)據(jù)表的顯示速度和效率,減少了不必要的系統(tǒng)開(kāi)支。
附圖1是現(xiàn)有技術(shù)基于計(jì)算機(jī)的程序處理中尤其是基于關(guān)系型數(shù)據(jù)庫(kù)實(shí)現(xiàn)的數(shù) 據(jù)統(tǒng)計(jì)中,易于實(shí)現(xiàn)的是表格實(shí)例(《表-1》);附圖2是現(xiàn)有技術(shù)中常用的企業(yè)報(bào)表實(shí)例(《表_2》)。附圖3是本發(fā)明快速實(shí)現(xiàn)交叉表的實(shí)現(xiàn)方法的處理流程框圖。
具體實(shí)施例方式參照說(shuō)明書附圖以具體實(shí)施例對(duì)本發(fā)明的一種快速實(shí)現(xiàn)交叉表的實(shí)現(xiàn)方法作以 下詳細(xì)地說(shuō)明。實(shí)施例如附圖1、2、3所示,本發(fā)明的快速實(shí)現(xiàn)交叉表的實(shí)現(xiàn)方法包括以下步驟對(duì)查詢結(jié)果按照行標(biāo)題進(jìn)行排序(如果結(jié)果已經(jīng)是排序的可以省略)。即數(shù)組 Al:((銷售一部,張三,培訓(xùn)費(fèi),100.00),(銷售一部,高寶,材料費(fèi),200.00),(銷 售二部,李才,材料費(fèi),300.00),(銷售二部,李四,郵雜費(fèi),400.00))。處理過(guò)程如下由于Al數(shù)組是已經(jīng)排序的數(shù)組,在循環(huán)中,依據(jù)當(dāng)前行的行標(biāo)題信息與上一行 的行標(biāo)題信息比對(duì)可以依次得到新的行標(biāo)題,同時(shí)對(duì)于新的列標(biāo)題,一般數(shù)組的長(zhǎng)度不 大,可以通過(guò)循環(huán)判斷的方式,得到新的列標(biāo)題并同時(shí)記錄新的列標(biāo)題的下標(biāo)信息,這 樣就可以同時(shí)依據(jù)新的列標(biāo)題的下標(biāo)信息與行標(biāo)題,得到當(dāng)前的費(fèi)用項(xiàng)目金額的輔助列 數(shù)組。最后將新的行標(biāo)題數(shù)組與動(dòng)態(tài)離散輔助列數(shù)組合并成需要展示的結(jié)果數(shù)組A2 ((銷售一部,張三,,100.00,,100.00),(銷售一部,高寶,200.00,,,200.00), (銷售二部,李才,300.00,,,300.00),(銷售二部,李四,,,400.00,400.00),
(合計(jì),,500.00,100.00,400.00,1000.00))。將原標(biāo)題數(shù)組中的交叉位置中的信息擴(kuò)充新的輔助標(biāo)題數(shù)組后得到新的列標(biāo)題 數(shù)組,這樣對(duì)原有的結(jié)果交叉顯示的處理就完成了。實(shí)施例在浪潮ERP-營(yíng)銷協(xié)同的產(chǎn)品中,自定義的統(tǒng)計(jì)查詢功能,通過(guò)public void GetResult (ref ArrayList AData, ref ArrayList AColCaption)的方法得到結(jié)果,再應(yīng)用 交叉表的處理方式后,通過(guò)簡(jiǎn)單的代碼重構(gòu)if(ColIsRow() ! =" 0" ){ColToRow(ref AData, refAColCaption) ; }就得到了新的展示結(jié)果。
權(quán)利要求
1.一種快速實(shí)現(xiàn)交叉表的實(shí)現(xiàn)方法,其特征在于該方法基于內(nèi)存數(shù)組處理,采用 單向循環(huán)處理方式,對(duì)原數(shù)組數(shù)據(jù)進(jìn)行數(shù)據(jù)處理。
2.根據(jù)權(quán)利要求1所述的快速實(shí)現(xiàn)交叉表的實(shí)現(xiàn)方法,其特征在于該方法包括以 下步驟第一步、對(duì)查詢結(jié)果進(jìn)行排序;第二步、通過(guò)一個(gè)循環(huán),找出需要顯示的行標(biāo)題數(shù)組,并同時(shí)生成一個(gè)動(dòng)態(tài)離散輔 助列數(shù)組和輔助列的標(biāo)題數(shù)組;第三步、將主列數(shù)組、動(dòng)態(tài)離散輔助列數(shù)組和輔助列的表體數(shù)組組合成需要展示的 結(jié)果數(shù)組。
全文摘要
本發(fā)明公開(kāi)了一種快速實(shí)現(xiàn)交叉表的實(shí)現(xiàn)方法,屬于計(jì)算機(jī)應(yīng)用技術(shù)領(lǐng)域。該方法基于內(nèi)存數(shù)組處理,采用單向循環(huán)處理方式,對(duì)原數(shù)組數(shù)據(jù)進(jìn)行數(shù)據(jù)處理。與現(xiàn)有技術(shù)相比,本發(fā)明的快速實(shí)現(xiàn)交叉表的實(shí)現(xiàn)方法具有性能高、效率快、易于集成使用等特點(diǎn),廣泛應(yīng)用于各種中式報(bào)表查詢結(jié)果展示之中,具有很好的推廣應(yīng)用價(jià)值。
文檔編號(hào)G06Q10/00GK102024210SQ20101061360
公開(kāi)日2011年4月20日 申請(qǐng)日期2010年12月30日 優(yōu)先權(quán)日2010年12月30日
發(fā)明者肖祝川 申請(qǐng)人:浪潮集團(tuán)山東通用軟件有限公司