一、采集背景介绍 近日,在审计过程中发现,一些行政事业单位使用的财务软件《用友GRP-R9 V9.7(收支分类改革升级版)》升级到用友GRP-U8(R10),由于相关数据表的改动,使得AO2011的诸多数据采集方法都不能完整完成数据采集。本文通过SQL语句对数据进行整理,实现了用友GRP-U8(R10)的完整AO采集。 二、采集步骤 第一步:获取财务软件SQL数据库备份 通过用友GRP-U8(R10)提供的后台数据管理工具,生成SQL数据库备份数据(.bat文件)。 第二步:SQL2008R2还原备份数据 打开SQL Server Management Studio,右键点击数据库->点击“还原数据库“->选择“设备源”->点击->“添加”,将上一步备份的SQL数据库备份文件添加进来,完成数据库数据还原。 第三步:整理数据 在SQL中执行下列语句整理数据: 科目代码表整理(gl_kmxx) alter table gl_kmxx add kmdm_ok varchar(20) update gl_kmxx set kmdm_ok = rtrim(kmdm) --2013为采集数据年度,根据实际情况修改 select kmdm_ok,kmmc into kmb from gl_kmxx where kjnd=2013 科目余额表整理(gl_yeb) --生成新的余额表 select kmdm,ncj,ncd into yeb from GL_Yeb where kjnd = 2013 and yeblx = 'B' --B表示余额表类型,2013为会计年度 --二级科目余额汇总 insert into yeb select left(kmdm,5) ,case when (sum(ncj)-SUM(ncd)>0) then (sum(ncj)-SUM(ncd)) else 0 end ,case when (sum(ncj)-SUM(ncd)<0) then (sum(ncd)-SUM(ncj)) else 0 end from yeb where LEN(kmdm) = 7 --如果有三级科目,则汇总到对应的二级科目,否则不汇总。 group by left(kmdm,5) --一级科目汇总 insert into yeb select left(kmdm,3) ,case when (sum(ncj)-SUM(ncd)>0) then (sum(ncj)-SUM(ncd)) else 0 end ,case when (sum(ncj)-SUM(ncd)<0) then (sum(ncd)-SUM(ncj)) else 0 end from yeb where LEN(kmdm) = 5 --如果有二级科目,则汇总到对应的二级科目,否则不汇总。 group by left(kmdm,3) 凭证表整理(gl_pzml,gl_pznr) select a.pzh, a.pzrq, b.zy, b.kmdm, b.jdbz, b.je into pzb from gl_pzml a, gl_pznr b where a.kjqj=b.kjqj and a.pzh=b.pzh and a.kjqj like '2013%' --2013为采集数据年度,根据实际情况修改 update pzb set pzrq=cast(pzrq as datetime); 第四步:导出需要采集数据表 右键点击还原的数据库名-> “任务”->点击“导出数据”,将上一步整理的三张数据表科目代码表(kmb)、科目余额表(yeb)、凭证表(pzb)导出到Excel表格中。 第五步:AO采集数据并帐表重建 如图所,示打开AO2011点击“采集转换”->“财务数据”->“财务软件数据库数据”->“采集数据”。