鸡西财政会计网:“总会计2000”数据库数据采集转换分析

来源: 高顿网校 2014-07-11
高顿网校友情提示,*7鸡西财政会计网上公布相关会计实务“总会计2000”数据库数据采集转换分析等内容总结如下:   “总会计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语句)保存为一个数据导入模板,并可通过“导入”“导出”功能将此模板分发给其他审计人员使用。
   (三)使用数据导入模板
   其他审计人员转换数据时,在“数据导入向导”中单击“自动导入”,选择相应模板,设置好数据源即可根据软件提示完成数据库数据的导入。
     
  扫一扫微信,学习实务技巧
   
  高顿网校特别提醒:已经报名2014年财会考试的考生可按照复习计划有效进行!另外,高顿网校2014年财会考试高清课程已经开通,通过针对性地讲解、训练、答疑、模考,对学习过程进行全程跟踪、分析、指导,可以帮助考生全面提升备考效果。
 
严选名师 全流程服务

高顿教育 > 会计实务 > 初级实务