實(shí)務(wù)課程:會(huì)計(jì)課程稅務(wù)課程免費(fèi)試聽(tīng)招生方案 初當(dāng)會(huì)計(jì)崗位認(rèn)知會(huì)計(jì)基礎(chǔ)財(cái)務(wù)報(bào)表會(huì)計(jì)電算化

綜合輔導(dǎo):會(huì)計(jì)實(shí)務(wù)行業(yè)會(huì)計(jì)管理會(huì)計(jì)審計(jì)業(yè)務(wù) 初當(dāng)出納崗位認(rèn)知現(xiàn)金管理報(bào)銷(xiāo)核算圖表學(xué)會(huì)計(jì)

首頁(yè)>會(huì)計(jì)信息>會(huì)計(jì)電算化> 正文

“總會(huì)計(jì)2000”數(shù)據(jù)庫(kù)數(shù)據(jù)采集轉(zhuǎn)換分析

2005-6-17 8:37  【 】【打印】【我要糾錯(cuò)

     “總會(huì)計(jì)2000”數(shù)據(jù)庫(kù)數(shù)據(jù)采集轉(zhuǎn)換分析

     2005 年,“金審工程”應(yīng)用系統(tǒng)之一“現(xiàn)場(chǎng)審計(jì)實(shí)施系統(tǒng)”(簡(jiǎn)稱(chēng)AO)在我市審計(jì)機(jī)關(guān)推廣應(yīng)用。在財(cái)政預(yù)算執(zhí)行審計(jì)中,針對(duì)我市財(cái)政系統(tǒng)普遍使用“總會(huì)計(jì) 2000”軟件的情況,重慶市審計(jì)局有關(guān)人員對(duì)“總會(huì)計(jì)2000”的數(shù)據(jù)庫(kù)數(shù)據(jù)進(jìn)行了認(rèn)真分析、研究,制作了該軟件數(shù)據(jù)庫(kù)數(shù)據(jù)導(dǎo)入模板,極大地方便了審計(jì)人員采集轉(zhuǎn)換“總會(huì)計(jì)2000”數(shù)據(jù),推動(dòng)了AO軟件在我市財(cái)政審計(jì)中的廣泛應(yīng)用。

     一、獲取原始數(shù)據(jù)

     “總會(huì)計(jì)2000”是由北京四方志誠(chéng)軟件公司開(kāi)發(fā),經(jīng)財(cái)政部推薦,在全國(guó)財(cái)政系統(tǒng)普遍推廣的會(huì)計(jì)核算軟件!翱倳(huì)計(jì)2000”軟件分單用戶(hù)版和網(wǎng)絡(luò)版兩個(gè)版本。

     單用戶(hù)版數(shù)據(jù)庫(kù)采用ACCESS,采集原始數(shù)據(jù)時(shí)可直接拷貝“總會(huì)計(jì)2000”安裝目錄下的ACCESS文件(擴(kuò)展名為MDB)即可;網(wǎng)絡(luò)版數(shù)據(jù)庫(kù)采用SQL SERVER,采集原始數(shù)據(jù)時(shí)可使用SQL SERVER的“導(dǎo)入和導(dǎo)出數(shù)據(jù)”(DTS)功能,將SQL SERVER數(shù)據(jù)庫(kù)導(dǎo)出成ACCESS數(shù)據(jù)庫(kù)格式。

     二、數(shù)據(jù)庫(kù)結(jié)構(gòu)分析及處理

     (一)會(huì)計(jì)科目表

     1.數(shù)據(jù)結(jié)構(gòu)分析

     在“總會(huì)計(jì)2000”軟件中,會(huì)計(jì)科目表由基礎(chǔ)科目表(BM1BASE01)和會(huì)計(jì)科目表(BM1KJ01)組成。

     基礎(chǔ)科目表(表名BM1BASE01)中存儲(chǔ)包括科目源碼(SCM),科目級(jí)次(JC),科目名稱(chēng)(NAME),科目類(lèi)型(ATT),科目年度(YEAR)等會(huì)計(jì)科目的基本信息。

     會(huì)計(jì)科目表(表名BM1KJ01)中存儲(chǔ)包括科目源碼(SCM),科目級(jí)次(JC),科目年初余額(VALOO),余額方向(SF_FLAG),基礎(chǔ)科目源碼(BASESCM),科目年度(YEAR),SCM_1~SCM_8,是否末級(jí)科目(JC_FALG),自動(dòng)科目編碼(KJ_KMH)等字段。

     在BM1KJ01 中自動(dòng)科目編碼(KJ_KMH)可由“總會(huì)計(jì)2000”軟件按照科目級(jí)次自動(dòng)生成,如果KJ_KMH字段為空,可根據(jù)BM1KJ01的 SCM_1~SCM_8字段另行生成科目編碼(限于篇幅,本文不作詳細(xì)介紹)。本文僅就KJ_KMH已經(jīng)自動(dòng)生成的情況進(jìn)行分析。

     2.數(shù)據(jù)處理

     在轉(zhuǎn)換數(shù)據(jù)的過(guò)程中,AO 軟件會(huì)計(jì)科目表的“科目編碼”字段可直接由BM1KJ01生成,“科目名稱(chēng)”字段由BM1KJ01表的“BASESCM”字段連接BM1BASE01表的 “SCM”字段生成,因?yàn)槲覀兪菍?duì)2004年度進(jìn)行審計(jì),所以只選取科目年度為2004的科目,設(shè)置記錄篩選條件為BM1KJ01.YEAR=2004.查詢(xún)生成會(huì)計(jì)科目表的SQL語(yǔ)句為:

     (SQL1)

     Select BM1KJ01.KJ_KMH AS 會(huì)計(jì)科目,BM1BASE01.NAME AS 科目名稱(chēng) From BM1KJ01 INNER JOIN BM1BASE01 ON BM1KJ01.BASESCM=BM1BASE01.SCM WHERE BM1KJ01.YEAR=2004

     (二)科目余額表

     科目余額表可由BM1KJ01直接查詢(xún)生成,僅需設(shè)置篩選條件篩選出2004年的科目余額即可。

     查詢(xún)生成科目余額表的SQL語(yǔ)句為:

    。⊿QL2)

     Select KJ_KMH AS 科目編碼,VAL00 AS 科目余額,SF_FLAG AS 余額方向 From BM1KJ01 WHERE YEAR=2004

     (三)憑證表

     在“總會(huì)計(jì)2000”軟件中,憑證表內(nèi)容由BM1PD01、BM1PD02、BM1PD03三張表共同組成。在A(yíng)O軟件中,通過(guò)對(duì)此三張表的組合查詢(xún),生成AO軟件的憑證表。

     1.BM1PD01處理

    。1)數(shù)據(jù)結(jié)構(gòu)分析

     經(jīng)過(guò)分析,我們發(fā)現(xiàn),BM1PD01是總賬科目憑證庫(kù),主要存放每一張憑證所涉及的總賬科目金額和憑證基本信息(相當(dāng)于憑證主表)。記錄主要結(jié)構(gòu)如“表一”,其中,英文是源表字段名。

    。ū硪唬

PDH憑單號(hào)  YEAR年  MONTH月  DAY日  FDJ附單據(jù)  ZY摘要  KM_ONE借方科目  KM_TWO貸方科目  VAL金額  FLM(分錄源碼) 
8  2004  1  10  23    1183  1182  10000.00  236 

     分析表一可以看出,在BM1PD01中,一張憑證只用一條記錄來(lái)表示,要生成AO軟件能識(shí)別的憑證分錄,應(yīng)把BM1PD01中每一條記錄一分為二,產(chǎn)生liang條憑證分錄,如“表二”。

    。ū矶

PDH憑單號(hào)  YEAR年  MONTH月  DAY日  FDJ附單據(jù)  ZY摘要  KMH科目源碼  JD借貸方向  VAL金額  FLM(分錄源碼) 
8  2004  1  10  23    1183  1  10000.00  236 
8  2004  1  10  23    1182  -1  10000.00  236 

     在“表二”所示的憑證分錄中,每一條分錄對(duì)應(yīng)的會(huì)計(jì)科目都是總賬科目,如果該總賬科目有下級(jí)明細(xì)科目,則此金額是本張憑證中該總賬科目的匯總金額,因該總賬科目的明細(xì)分錄已在BM1PD02或BM1PD03中,故此憑證分錄不能作為憑證庫(kù)的一部分;如果該總賬科目無(wú)下級(jí)明細(xì)科目,則此金額是該總賬科目的實(shí)際發(fā)生額,此憑證分錄應(yīng)作為憑證庫(kù)的一部分。因此在BM1PD01中分離出無(wú)明細(xì)總賬科目的憑證分錄成為處理BM1PD01的關(guān)鍵。

     判斷BM1PD01中的總賬科目是否有明細(xì)科目,必須根據(jù)其科目源碼,連接BM1KJ01表,查詢(xún)生成是否有明細(xì)科目標(biāo)記(JC_FLAG)字段,JC_FLAG=TRUE表示該總賬科目無(wú)明細(xì)科目,JC_FLAG=FALSE表示該總賬科目有明細(xì)科目。

     (2)數(shù)據(jù)處理

     A.查詢(xún)生成借方分錄

     查詢(xún)生成BM1PD01的借方分錄表:用BM1PD01的“KM_ONE”字段連接會(huì)計(jì)科目表(BM1KJ01)的“SCM”字段,合并“YEAR”、“MONTH”、“DAY”生成“憑證日期”字段,同時(shí)增加表示借貸方向的字段“借貸”并賦值“1”,設(shè)置篩選條件

     BM1PD01.YEAR=2004 AND BM1KJ01.JC_FLAG=true

     具體SQL處理語(yǔ)句為:

    。⊿QL3)

     SELECT ‘1’ AS 借貸,A.PDH AS 憑單號(hào),TRIM(STR(A.YEAR))+‘-’+ TRIM(STR(A.MONTH))+‘-’+TRIM(STR(A.DAY)) AS 憑證日期,A.FDJ AS 單據(jù)數(shù),A.ZY AS 摘要,A.VAL AS 金額,B.KJ_KMH AS 會(huì)計(jì)科目 FROM BM1PD01 AS A INNER JOIN BM1KJ01 AS B ON A.KM_ONE=B.SCM WHERE A.YEAR=2004 AND B.JC_FLAG=true

     B.查詢(xún)生成貸方分錄

     查詢(xún)生成BM1PD01的貸方分錄表:用BM1PD01的“KM_TWO”字段連接會(huì)計(jì)科目表(BM1KJ01)的“SCM”字段,合并“YEAR”、“MONTH”、“DAY”生成“憑證日期”字段,同時(shí)增加表示借貸方向的字段“借貸”并賦值“-1”,設(shè)置篩選條件BM1PD01.YEAR=2004 AND BM1KJ01.JC_FLAG=true

     具體SQL處理語(yǔ)句為:

    。⊿QL4)

     SELECT ‘-1’ AS 借貸,A.PDH AS 憑單號(hào),TRIM(STR(A.YEAR))+‘-’+ TRIM(STR(A.MONTH))+‘-’+TRIM(STR(A.DAY)) AS 憑證日期,A.FDJ AS 單據(jù)數(shù),A.ZY AS 摘要,A.VAL AS 金額,B.KJ_KMH AS 會(huì)計(jì)科目 FROM BM1PD01 AS A INNER JOIN BM1KJ01 AS B ON A.KM_TWO=B.SCM WHERE A.YEAR=2004 AND B.JC_FLAG=true

     2.BM1PD02處理

     分析發(fā)現(xiàn),BM1PD02存儲(chǔ)明細(xì)科目借方分錄,記錄結(jié)構(gòu)如表三。

    。ū砣

FLM分錄源碼  SCM科目源碼  VAL金額  ZY摘要 
236  1199  90000   

     查詢(xún)生成明細(xì)科目借方分錄表:用BM1PD02 的“FLM”字段連接BM1PD01的“FLM”字段、BM1PD02的“SCM”字段連接BM1KJ01的“SCM”字段查詢(xún)生成“憑單號(hào)”、“憑證日期”、“附單據(jù)”、“會(huì)計(jì)科目”等字段,增加表示借貸方向的字段“借貸”并賦值“1”,設(shè)置篩選條件BM1PD01.YEAR=2004,具體SQL處理語(yǔ)句為:

    。⊿QL5)

     SELECT ‘1’ AS 借貸,BM1PD01.PDH AS 憑單號(hào),TRIM(STR(BM1PD01.

     YEAR))+‘-’+TRIM(STR(BM1PD01.MONTH))+‘-’+TRIM(STR(BM1PD01.DAY)) AS 憑證日期,BM1PD01.FDJ AS 單據(jù)數(shù),BM1PD02.ZY AS 摘要,BM1PD02.VAL AS 金額,BM1KJ01.KJ_KMH AS 會(huì)計(jì)科目 FROM BM1PD01 INNER JOIN (BM1KJ01 INNER JOIN BM1PD02 ON BM1KJ01.SCM = BM1PD02.SCM) ON BM1PD01.FLM = BM1PD02.FLM WHERE BM1PD01.YEAR=2004

     3.BM1PD03處理

     BM1PD03存儲(chǔ)明細(xì)科目貸方分錄,數(shù)據(jù)處理方法與BM1PD02類(lèi)似,借貸方向字段“借貸”賦值“-1”,具體SQL處理語(yǔ)句為:

     (SQL6)

     SELECT ‘-1’ AS 借貸,BM1PD01.PDH AS 憑單號(hào),TRIM(STR(BM1PD01.

     YEAR))+‘-’+TRIM(STR(BM1PD01.MONTH))+‘-’+TRIM(STR(BM1PD01.DAY)) AS 憑證日期,BM1PD01.FDJ AS 單據(jù)數(shù),BM1PD03.ZY AS 摘要,BM1PD03.VAL AS 金額,BM1KJ01.KJ_KMH AS 會(huì)計(jì)科目 FROM BM1PD01 INNER JOIN (BM1KJ01 INNER JOIN BM1PD03 ON BM1KJ01.SCM = BM1PD03.SCM) ON BM1PD01.FLM = BM1PD03.FLM WHERE BM1PD01.YEAR=2004

     4.生成完整憑證表

     合并SQL3、SQL4、SQL5、SQL6生成完整憑證表,合并關(guān)鍵字為UNION.即:

    。⊿QL7)

     SQL3 UNION SQL4 UNION SQL5 UNION SQL6

     其中SQL3、SQL4、SQL5、SQL6為上述具體SQL語(yǔ)句。

     三、在A(yíng)O中轉(zhuǎn)換數(shù)據(jù)并制作數(shù)據(jù)庫(kù)數(shù)據(jù)導(dǎo)入模板

    。ㄒ唬┺D(zhuǎn)換數(shù)據(jù)

     1.通過(guò)AO系統(tǒng)“項(xiàng)目管理”→“資料管理”→“從系統(tǒng)引入資料”直接引入獲取的“總會(huì)計(jì)2000”ACCESS數(shù)據(jù)庫(kù)數(shù)據(jù)。

     2.生成財(cái)務(wù)數(shù)據(jù)中間表時(shí),憑證的存儲(chǔ)方式選擇“源數(shù)據(jù)憑證表為一個(gè)表”。

     3.在“數(shù)據(jù)導(dǎo)入向?qū)А备鞑襟E中,“會(huì)計(jì)期間定義”和“科目設(shè)置”步驟根據(jù)實(shí)際情況使用“手工填寫(xiě)”,“科目余額表”、“會(huì)計(jì)科目表”、“憑證表”的導(dǎo)入均使用“進(jìn)入SQL執(zhí)行器”。

     4.導(dǎo)入科目余額表

     導(dǎo)入科目余額表時(shí),在“SQL語(yǔ)句組”中輸入“SQL2”對(duì)應(yīng)的SQL語(yǔ)句,輸入相應(yīng)的臨時(shí)表名,設(shè)置好與AO科目余額表的對(duì)應(yīng)關(guān)系,導(dǎo)入即可。

     5.導(dǎo)入會(huì)計(jì)科目表

     導(dǎo)入會(huì)計(jì)科目表時(shí),在“SQL語(yǔ)句組”中輸入“SQL1”對(duì)應(yīng)的SQL語(yǔ)句,輸入相應(yīng)的臨時(shí)表名,設(shè)置好與AO會(huì)計(jì)科目表的對(duì)應(yīng)關(guān)系,導(dǎo)入即可。

     6.導(dǎo)入憑證表

     導(dǎo)入憑證表時(shí),在“SQL語(yǔ)句組”中輸入“SQL7”對(duì)應(yīng)的SQL語(yǔ)句,輸入相應(yīng)的臨時(shí)表名,設(shè)置好與AO憑證表的對(duì)應(yīng)關(guān)系,導(dǎo)入即可。

     (二)制作數(shù)據(jù)導(dǎo)入模板

     在憑證表導(dǎo)入結(jié)束后,在“數(shù)據(jù)導(dǎo)入向?qū)А敝袉螕簟氨4鎸?dǎo)入設(shè)置”即可將數(shù)據(jù)轉(zhuǎn)換過(guò)程中的步驟(包括SQL語(yǔ)句)保存為一個(gè)數(shù)據(jù)導(dǎo)入模板,并可通過(guò)“導(dǎo)入”“導(dǎo)出”功能將此模板分發(fā)給其他審計(jì)人員使用。

    。ㄈ┦褂脭(shù)據(jù)導(dǎo)入模板

     其他審計(jì)人員轉(zhuǎn)換數(shù)據(jù)時(shí),在“數(shù)據(jù)導(dǎo)入向?qū)А敝袉螕簟白詣?dòng)導(dǎo)入”,選擇相應(yīng)模板,設(shè)置好數(shù)據(jù)源即可根據(jù)軟件提示完成數(shù)據(jù)庫(kù)數(shù)據(jù)的導(dǎo)入。