实务课程:会计课程税务课程免费试听招生方案 初当会计岗位认知会计基础财务报表会计电算化

综合辅导:会计实务行业会计管理会计审计业务 初当出纳岗位认知现金管理报销核算图表学会计

首页>会计信息>会计电算化> 正文

“总会计2000”数据库数据采集转换分析

2005-6-17 8:37  【 】【打印】【我要纠错

     “总会计2000”数据库数据采集转换分析

     2005 年,“金审工程”应用系统之一“现场审计实施系统”(简称AO)在我市审计机关推广应用。在财政预算执行审计中,针对我市财政系统普遍使用“总会计 2000”软件的情况,重庆市审计局有关人员对“总会计2000”的数据库数据进行了认真分析、研究,制作了该软件数据库数据导入模板,极大地方便了审计人员采集转换“总会计2000”数据,推动了AO软件在我市财政审计中的广泛应用。

     一、获取原始数据

     “总会计2000”是由北京四方志诚软件公司开发,经财政部推荐,在全国财政系统普遍推广的会计核算软件。“总会计2000”软件分单用户版和网络版两个版本。

     单用户版数据库采用ACCESS,采集原始数据时可直接拷贝“总会计2000”安装目录下的ACCESS文件(扩展名为MDB)即可;网络版数据库采用SQL SERVER,采集原始数据时可使用SQL SERVER的“导入和导出数据”(DTS)功能,将SQL SERVER数据库导出成ACCESS数据库格式。

     二、数据库结构分析及处理

     (一)会计科目表

     1.数据结构分析

     在“总会计2000”软件中,会计科目表由基础科目表(BM1BASE01)和会计科目表(BM1KJ01)组成。

     基础科目表(表名BM1BASE01)中存储包括科目源码(SCM),科目级次(JC),科目名称(NAME),科目类型(ATT),科目年度(YEAR)等会计科目的基本信息。

     会计科目表(表名BM1KJ01)中存储包括科目源码(SCM),科目级次(JC),科目年初余额(VALOO),余额方向(SF_FLAG),基础科目源码(BASESCM),科目年度(YEAR),SCM_1~SCM_8,是否末级科目(JC_FALG),自动科目编码(KJ_KMH)等字段。

     在BM1KJ01 中自动科目编码(KJ_KMH)可由“总会计2000”软件按照科目级次自动生成,如果KJ_KMH字段为空,可根据BM1KJ01的 SCM_1~SCM_8字段另行生成科目编码(限于篇幅,本文不作详细介绍)。本文仅就KJ_KMH已经自动生成的情况进行分析。

     2.数据处理

     在转换数据的过程中,AO 软件会计科目表的“科目编码”字段可直接由BM1KJ01生成,“科目名称”字段由BM1KJ01表的“BASESCM”字段连接BM1BASE01表的 “SCM”字段生成,因为我们是对2004年度进行审计,所以只选取科目年度为2004的科目,设置记录筛选条件为BM1KJ01.YEAR=2004.查询生成会计科目表的SQL语句为:

     (SQL1)

     Select BM1KJ01.KJ_KMH AS 会计科目,BM1BASE01.NAME AS 科目名称 From BM1KJ01 INNER JOIN BM1BASE01 ON BM1KJ01.BASESCM=BM1BASE01.SCM WHERE BM1KJ01.YEAR=2004

     (二)科目余额表

     科目余额表可由BM1KJ01直接查询生成,仅需设置筛选条件筛选出2004年的科目余额即可。

     查询生成科目余额表的SQL语句为:

     (SQL2)

     Select KJ_KMH AS 科目编码,VAL00 AS 科目余额,SF_FLAG AS 余额方向 From BM1KJ01 WHERE YEAR=2004

     (三)凭证表

     在“总会计2000”软件中,凭证表内容由BM1PD01、BM1PD02、BM1PD03三张表共同组成。在AO软件中,通过对此三张表的组合查询,生成AO软件的凭证表。

     1.BM1PD01处理

     (1)数据结构分析

     经过分析,我们发现,BM1PD01是总账科目凭证库,主要存放每一张凭证所涉及的总账科目金额和凭证基本信息(相当于凭证主表)。记录主要结构如“表一”,其中,英文是源表字段名。

     (表一)

PDH凭单号  YEAR年  MONTH月  DAY日  FDJ附单据  ZY摘要  KM_ONE借方科目  KM_TWO贷方科目  VAL金额  FLM(分录源码) 
8  2004  1  10  23    1183  1182  10000.00  236 

     分析表一可以看出,在BM1PD01中,一张凭证只用一条记录来表示,要生成AO软件能识别的凭证分录,应把BM1PD01中每一条记录一分为二,产生liang条凭证分录,如“表二”。

     (表二)

PDH凭单号  YEAR年  MONTH月  DAY日  FDJ附单据  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 

     在“表二”所示的凭证分录中,每一条分录对应的会计科目都是总账科目,如果该总账科目有下级明细科目,则此金额是本张凭证中该总账科目的汇总金额,因该总账科目的明细分录已在BM1PD02或BM1PD03中,故此凭证分录不能作为凭证库的一部分;如果该总账科目无下级明细科目,则此金额是该总账科目的实际发生额,此凭证分录应作为凭证库的一部分。因此在BM1PD01中分离出无明细总账科目的凭证分录成为处理BM1PD01的关键。

     判断BM1PD01中的总账科目是否有明细科目,必须根据其科目源码,连接BM1KJ01表,查询生成是否有明细科目标记(JC_FLAG)字段,JC_FLAG=TRUE表示该总账科目无明细科目,JC_FLAG=FALSE表示该总账科目有明细科目。

     (2)数据处理

     A.查询生成借方分录

     查询生成BM1PD01的借方分录表:用BM1PD01的“KM_ONE”字段连接会计科目表(BM1KJ01)的“SCM”字段,合并“YEAR”、“MONTH”、“DAY”生成“凭证日期”字段,同时增加表示借贷方向的字段“借贷”并赋值“1”,设置筛选条件

     BM1PD01.YEAR=2004 AND BM1KJ01.JC_FLAG=true

     具体SQL处理语句为:

     (SQL3)

     SELECT ‘1’ AS 借贷,A.PDH AS 凭单号,TRIM(STR(A.YEAR))+‘-’+ TRIM(STR(A.MONTH))+‘-’+TRIM(STR(A.DAY)) AS 凭证日期,A.FDJ AS 单据数,A.ZY AS 摘要,A.VAL AS 金额,B.KJ_KMH AS 会计科目 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.查询生成贷方分录

     查询生成BM1PD01的贷方分录表:用BM1PD01的“KM_TWO”字段连接会计科目表(BM1KJ01)的“SCM”字段,合并“YEAR”、“MONTH”、“DAY”生成“凭证日期”字段,同时增加表示借贷方向的字段“借贷”并赋值“-1”,设置筛选条件BM1PD01.YEAR=2004 AND BM1KJ01.JC_FLAG=true

     具体SQL处理语句为:

     (SQL4)

     SELECT ‘-1’ AS 借贷,A.PDH AS 凭单号,TRIM(STR(A.YEAR))+‘-’+ TRIM(STR(A.MONTH))+‘-’+TRIM(STR(A.DAY)) AS 凭证日期,A.FDJ AS 单据数,A.ZY AS 摘要,A.VAL AS 金额,B.KJ_KMH AS 会计科目 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处理

     分析发现,BM1PD02存储明细科目借方分录,记录结构如表三。

     (表三)

FLM分录源码  SCM科目源码  VAL金额  ZY摘要 
236  1199  90000   

     查询生成明细科目借方分录表:用BM1PD02 的“FLM”字段连接BM1PD01的“FLM”字段、BM1PD02的“SCM”字段连接BM1KJ01的“SCM”字段查询生成“凭单号”、“凭证日期”、“附单据”、“会计科目”等字段,增加表示借贷方向的字段“借贷”并赋值“1”,设置筛选条件BM1PD01.YEAR=2004,具体SQL处理语句为:

     (SQL5)

     SELECT ‘1’ AS 借贷,BM1PD01.PDH AS 凭单号,TRIM(STR(BM1PD01.

     YEAR))+‘-’+TRIM(STR(BM1PD01.MONTH))+‘-’+TRIM(STR(BM1PD01.DAY)) AS 凭证日期,BM1PD01.FDJ AS 单据数,BM1PD02.ZY AS 摘要,BM1PD02.VAL AS 金额,BM1KJ01.KJ_KMH AS 会计科目 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存储明细科目贷方分录,数据处理方法与BM1PD02类似,借贷方向字段“借贷”赋值“-1”,具体SQL处理语句为:

     (SQL6)

     SELECT ‘-1’ AS 借贷,BM1PD01.PDH AS 凭单号,TRIM(STR(BM1PD01.

     YEAR))+‘-’+TRIM(STR(BM1PD01.MONTH))+‘-’+TRIM(STR(BM1PD01.DAY)) AS 凭证日期,BM1PD01.FDJ AS 单据数,BM1PD03.ZY AS 摘要,BM1PD03.VAL AS 金额,BM1KJ01.KJ_KMH AS 会计科目 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生成完整凭证表,合并关键字为UNION.即:

     (SQL7)

     SQL3 UNION SQL4 UNION SQL5 UNION SQL6

     其中SQL3、SQL4、SQL5、SQL6为上述具体SQL语句。

     三、在AO中转换数据并制作数据库数据导入模板

     (一)转换数据

     1.通过AO系统“项目管理”→“资料管理”→“从系统引入资料”直接引入获取的“总会计2000”ACCESS数据库数据。

     2.生成财务数据中间表时,凭证的存储方式选择“源数据凭证表为一个表”。

     3.在“数据导入向导”各步骤中,“会计期间定义”和“科目设置”步骤根据实际情况使用“手工填写”,“科目余额表”、“会计科目表”、“凭证表”的导入均使用“进入SQL执行器”。

     4.导入科目余额表

     导入科目余额表时,在“SQL语句组”中输入“SQL2”对应的SQL语句,输入相应的临时表名,设置好与AO科目余额表的对应关系,导入即可。

     5.导入会计科目表

     导入会计科目表时,在“SQL语句组”中输入“SQL1”对应的SQL语句,输入相应的临时表名,设置好与AO会计科目表的对应关系,导入即可。

     6.导入凭证表

     导入凭证表时,在“SQL语句组”中输入“SQL7”对应的SQL语句,输入相应的临时表名,设置好与AO凭证表的对应关系,导入即可。

     (二)制作数据导入模板

     在凭证表导入结束后,在“数据导入向导”中单击“保存导入设置”即可将数据转换过程中的步骤(包括SQL语句)保存为一个数据导入模板,并可通过“导入”“导出”功能将此模板分发给其他审计人员使用。

     (三)使用数据导入模板

     其他审计人员转换数据时,在“数据导入向导”中单击“自动导入”,选择相应模板,设置好数据源即可根据软件提示完成数据库数据的导入。

相关热词: 总会计2000 数据