“总会计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)等会计科目的基本信息。LoCAlHoST
会计科目表(表名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表,查询生成
[1] [2] [3] 下一页