金蝶K3-V10.7财务软件数据库数据导入AO方法

【点击数: 607 】【时间:2011-06-07 09:39:16.0】

近日,在对某单位财务备份数据进行转换时发现,该单位财务软件为金蝶K3,目前已升级至V10.7版本,而笔者AO中的采集转换模板为V10.0版本,无法通过模板直接转换。笔者决定采集该单位财务软件的后台数据,用数据库数据采集方法进行数据采集。该软件的后台数据存放在SLQ SERVER2000数据库中,将SLQ SERVER2000服务管理停止后,从库中直接将数据拷贝至审计人员电脑。以下为笔者分析转换过程。

1 表及表结构分析

要想将后台数据转换到AO中,需要提取3张表,即凭证表、科目表和余额表。打开SLQ SERVER2000的企业管理器,将被审计单位的数据附加到SLQ SERVER2000中。经过对库中所有表进行分析后,笔者找出了转换所需要的表:

1.1 凭证表:金蝶K3-V10.7财务软件凭证表在后台分为凭证主表和凭证子表两张表存储。

凭证主表:表名为t_Voucher。

表中包含字段有:fdate凭证日期,fperiod会计期间,fnumber凭证号,fexplanation摘要,ftrantype单据类型,fgroupid凭证类型1为记账凭证。

凭证子表:表名为t_VoucherEntry。

表中包含字段有:fexplanation摘要,faccountid科目内码,fdetailid核算项目,fdc余额方向1为借,0为贷,famount金额,fquantity数量,fmeasureunitid单位内码,funitprice单价。

需要注意的是:凭证表中科目代码需要faccountid科目内码与科目表中的faccountid关联得到fnumber科目代码。

1.2 科目表:表名为t_Account。

表中包含字段有:faccountid科目内码,fnumber科目代码,fname科目名称,fdc借贷方向,1为借,-1为贷。

1.3 余额表:表名为t_balance。

表中包含字段有:fyear会计年度,fperiod会计期间,faccountid科目内码,FBeginBalance期初余额,用正负表示借贷方向,fdetailid核算项目使用内码。

2 前期表整理

2.1 科目表整理

经对科目表分析得知,金蝶K3-V10中原科目编码长度有3、4、7、8、10、11、13(编码长度中含区分级数的“.”),为不规则编码,向AO中导入时需将其转换成规则的编码。笔者将其改为4-3-3-3格式, 一级不足的后加“9”,其他各级位数不足的前加“9”,整理过程及sql语句如下:

2.1.1 原科目编码长度为3位,转换成4位

Sql语句:

update dbo.t_Account set fnumber=fnumber+''9''

where len(fnumber)=3

2.1.2 原科目编码长度为4位保留不用改

2.1.3 原科目编码长度为7位,转换成4-3格式

Sql语句:

Update dbo.t_Account set fnumber=left(fnumber,4)+ ''9''+substring(fnumber,6,2)

Where len(fnumber)=7

2.1.4 原科目编码长度为8位,转换成4-3格式

Sql语句为:

Update dbo.t_Account set fnumber=left(fnumber,4)

+right(fnumber,3)

Where len(fnumber)=8

2.1.5 原科目编码长度为10位,转换成4-3-3格式

Sql语句为:

update dbo.t_Account set fnumber=left(fnumber,4)

+''9''+substring(fnumber,6,2)+''9''

+substring(fnumber,9,2)

where len(fnumber)=10

2.1.6 原科目编码长度为11位,转换成4-3-3格式

Sql语句为:

update dbo.t_Account set fnumber=left(fnumber,4)

+''9''+substring(fnumber,6,2)+right(fnumber,3)

where len(fnumber)=11

2.1.7 原科目编码长度为13位,转换成4-3-3-3格式

Sql语句为:

Update dbo.t_Account set fnumber=left(fnumber,4)

+''9''+substring(fnumber,6,2)+''9''+substring(fnumber,9,2)+''9''+substring(fnumber,12,2)

where len(fnumber)=13

2.1.8 将科目编码fnumber字段替换成ccode字段,同时将科目表名t_Account改成熟悉的a_code

注意此时需将科目表中的科目编码fnumber字段替换成ccode字段,否则将与凭证主表中的凭证号fnumber字段重复。

Sql语句为:

select FAccountID,FNumber ccode,FName,FDC

into a_code

from dbo.t_Account

2.2 余额表整理

2.2.1 只保留期初余额即可,fcurrencyid为币别字段:0为人民币,1为其他币种。因金蝶财务软件后台存储的为多年度数据,需根据审计时间设定条件,本次审计  为2009年。

Sql语句为:

select *

into a_a_balance

from t_balance

where fyear=2009 and fperiod=1 and fdetailid=0 and fcurrencyid=0

2.2.2 将科目代码和科目名称加入余额表,存入新表a_ye

Sql语句为:

select a.*,b.ccode,b.fname

into a_ye

from  a_a_balance a join a_code b

on a.faccountid=b.faccountid

2.2.3 将按科目代码和科目名称分组,求出各科目期初余额,更改字段名为ye,存入新表a_yeb

select ccode,fname,sum(fbeginbalancefor) as ye

into a_yeb

from a_ye

group by ccode,fname

2.3 凭证表整理

将凭证主表和凭证子表合成一张表,将科目代码和科目名称存入新凭证表a_accvouch

select a.FDate,a.FYear,a.FPeriod,a.FNumber,

a.FExplanation,a.FTranType, b.FAccountID,

b.FDetailID,b.FDC,b.FAmount,b.FQuantity,

b.FUnitPrice,c.ccode,c.fname

into a_accvouch

from dbo.t_Voucher a join dbo.t_VoucherEntry b on a.fvoucherid=b.fvoucherid join a_code c on b.faccountid=c.faccountid

where a.fyear=2009

3 将整理好的表导入AO中

通过上述整理,得到新的3张表,即凭证表a_accvouch、科目表a_code、余额表a_yeb,根据AO软件的数据库数据导入要求,分步将3张数据表导入AO。

打开AO,依次点击“采集转换-财务数据-财务软件数据库数据-采集数据-新建”,新建一个账套,并双击该账套。

再依次点击“添加”,选择sql server再单击“设置”, 在弹出的对象框中进行如下设置:

3.1 “选择或输入服务器名称”下的下拉菜单中选择“(local)”;

3.2 “输入登录服务器信息”下的选项中,选择第一个“使用windows nt 集成安全设置(w)”;

3.3 “在服务器上选择数据库(d)”的下拉菜单中选择上述整理好的3张表所在数据库名。

然后点击“测试连接”后弹出“测试连接成功”窗口,依次点击“确定”后,点“刷新”按钮后,显示区域就会出现数据源,点击“下一步”后选中3张表,然后依次点击“下一步”,选择直接生成财务数据临时表。在导入方式下有两种方式,选择“源数据凭证表为一张表”(原为两张表,经过整理后变成一张表)。

以下为3张数据表导入过程:

3.3.1 会计期间定义:选择需导入的年度

3.3.2 科目余额表(a_yeb)

导入所需字段:期初余额Ye(正数为借方余额、负数为贷方余额)、科目编码:ccode

3.3.3 会计科目表(a_code)

导入所需字段:科目名称fname、科目借贷方向fdc、科目编码:ccode

3.3.4 科目设置:科目编码格式为规则,原为不规则,经过数据整理后变成规则的4-3-3-3格式。

3.3.5 凭证库(a_accvouch)

导入所需字段:凭证日期fdate、凭证流水号fnumber、凭证类型ftrantype、发生额famount、发生额方向fdc(借方为1、贷方为0)、摘要fexplanation、科目编码  ccode

凭证表导入后,经过科目方向调整、科目余额调整和账表重建,数据导入工作就完成了。

纵观整个数据导入过程,前期基础表的整理是关键,必须先将原不规则的科目代码整理成规则的科目代码,为了方便导入,在数据量不大的情况下,可将凭证主表和凭证子表合并成一张表导入。(淮安市审计局供稿 王新建)


© 2024 实用范文网 | 联系我们: webmaster# 6400.net.cn