对辅助明细账的AO采集方法,本文主要内容关键词为:明细账论文,方法论文,AO论文,此文献不代表本站观点,内容供学术参考,文章仅供参考阅读下载。
在笔者多次的数据采集实践中发现,利用AO模板采集方法无法采集某些财务软件的辅助核算明细账,致使我们不能看到某些科目的明细信息,如对金碟软件的模板采集因无法采集辅助账,只能看到应收、应付等往来科目的一级科目核算情况,却无法了解这些科目的明细核算信息,极大地影响了审计工作。针对这一数据采集问题,笔者根据多次的数据采集经验,通过对这些财务软件数据库的分析认为,利用数据库数据采集财务数据时,在采集科目表、余额表和凭证库这三张表(不同的财务软件,这些信息表可能合并也可能分别存储)的基础上,对数据进行分析和修改,然后利用数据库数据采集方法可解决问题。现以金蝶KIS标准版7.5版本为例,讲解解决思路和方法,供大家参考。
金蝶KIS标准版7.5版本是以ACCESS为数据库的单机版财务软件,但该软件对数据库进行了权限设置和口令密码设置,我们经过处理和分析,找到科目表Glact、余额表Glbal和凭证表Glvch。在对科目表进行分析后,我们发现该财务软件用户没有对某些需要明细核算的科目设置下级科目(这也是无法用采集模板采集明细账的原因),而是通过对这些科目设置一个辅助核算标识号,在另一张表中存储了明细核算的单位和人员信息,并对这些单位和人员分配了唯一标识号,经过查找,我们找到了这张辅助核算项目表Globj。接着就是把辅助核算项目表中单位和人员的标识号作为这些辅助核算科目的下级科目编码,把单位和人员作为科目名称来处理数据。
步骤一:首先分析原科目表的科目编码级次和辅助核算项目表中人员的标识号位数,判断科目表中下级科目位数是否与辅助核算项目表中人员标识号编码位数一致,如果不一致,请修改成一致。经对科目表的科目编码测试后,我们发现它是(3,2,2)的级次结构,即一级科目编码是3位,二级科目编码是2位,三级科目编码也是2位,而辅助核算项目表中人员标识号编码位数是3位,要想构造新的明细科目编码,必须把科目表中的科目编码修改成(3,3,3)的级次结构,余额表和凭证表也要进行同样的处理。处理的类SQL语句如下:
1.判断科目表科目编码位数长度。
Select distinct len(科目编码)from科目表
2.修改科目表、余额表和凭证表的科目编码长度。
Update科目表set科目编码=(case when len(科目编码)=5then left(科目编码,3)+'0'+right(科目编码,2)
when len(科目编码)=7 then left(科目编码,3)+'0'+substring(科目编码,4,2)+'0'+right(科目编码,2)
else科目编码
end)
余额表和凭证表的处理方法同上。
步骤二:构造新的科目表,把原科目表中进行辅助核算的科目编码和科目名称分别连接上辅助核算项目表的人员标识号和人员名称,构造两个新的科目编码。处理的类SQL语句如下:
1.构造一张新增科目表,使辅助核算的科目都有下级明细科目。
Select a.科目编码+b.人员标识号as科目编码,a.科目名称+b.人员名称as科目名称,借贷方向into.新增科目表from科目表a join项目核算表b on a.辅助核算标识号=b.辅助核算标识号where b.辅助核算标识号not like '*%'
2.把新增科目表中的科目编码、科目名称和借贷方向等信息插入到科目表中。
Insert科目表(科目编码,科目名称,借贷方向)
Select*from新增科目表
步骤三:更新余额表中的科目编码。分析余额表,找出一月份的期初余额,同时把凡是辅助核算的科目编码连接上人员标识号,即可构造一个具有新科目的余额表。处理的类SQL语句如下:
1.生成期初余额表。
Select*into期初余额表from余额表where期间=1 and核算标识号like'rmb%'
2.更新期初余额表,产生新的科目编码。
Update期初余额set科目编码=
(case
when辅助核算标识号like'0%'then科目编码
else科目编码+人员标识号
end)
步骤四:更新凭证表中的科目编码。分析凭证表,把凡是辅助核算的科目编码连接上人员标识号,即可构造一个具有新科目的凭证表。处理的类SQL语句如下:
Uvdate凭证表set科目编码=(case
when辅助核算标识号is null then科目编码
else科目编码+人员标识号
end)
经过上述步骤处理数据后,即可利用数据库数据采集方法采集数据,账表重建后,就可看到我们需要的明细账核算信息。因不同财务软件的数据结构和数据存储方式不同,在处理方法上可能会有略微差别,但处理思路是相同的,大家在实际采集工作中,可灵活应用。