龙图平台一体化财务核算数据导入AO2011的方法

29.05.2014  17:25

 

近两年,我省各级财政部门陆续使用了龙图财政管理一体化信息系统,可满足预算编制、预算执行、收入管理、账务管理、监控分析等财政业务需求,全面覆盖财政资金范围,支撑财政资金运行的全过程管理,能够从多角度反映一级或多级财政的收支状况,该平台是以预算管理为源头,以国库收支管理为主线,以财政决算和查询分析为闭环回路结点的财政管理一体化信息系统。

目前在AO软件中没有龙图软件数据采集模板,本人经过对该系统数据结构的分析,经处理后成功导入AO软件,现总结出来与大家共飨。

一、数据采集

龙图财政管理一体化信息系统后台数据库为Oracle,审计人员可要求被审计单位将数据导出为数据库备份文件(dmp文件),在审计人员自己的笔记本电脑中安装Oracle数据库管理系统,用Oracle的imp命令将dmp文件还原至审计人员的笔记本电脑中,再将数据导入到一新建的SQL  Server数据库中(可通过本人开发的MyOracleTool软件自动完成数据的还原、导出)。

二、数据整理

以下以某单位2012年总预算会计账套(账套号136)为例介绍一下数据整理的过程,如需整理其他账套和年度的数据,可修改SQL语句中的年度和账套号即可。

--科目表处理

IF  EXISTS(SELECT  *  FROM  SYS.objects  WHERE  name='龙图_科目表')  DROP  TABLE  龙图_科目表

GO

SELECT  科目编码=CAST(ACCTCODE  AS  VARCHAR(50)),科目名称=CAST(ACCTNAME  AS  VARCHAR(100)),

    科目全称=CAST(WHOLENAME  AS  VARCHAR(200)),借贷方向=CASE  WHEN  DC=1  THEN  ''  ELSE  ''END

INTO  龙图_科目表

FROM  T_FMACCOUNT

WHERE  ACCTSYSTYPEID=136

ORDER  BY  ACCTCODE

GO

 

--余额表

IF  EXISTS(SELECT  *  FROM  SYS.objects  WHERE  name='龙图_余额表')  DROP  TABLE  龙图_余额表

GO

SELECT  科目编码=CAST(ACCTCODE  AS  VARCHAR(50)),年初余额=CASE  WHEN  Y.DC=1  THEN  STARTBAL  ELSE  -STARTBAL  END

INTO  龙图_余额表

FROM  T_FMYEARINITBALREC  Y  JOIN  T_FMACCOUNT  K  ON  ACCOUNT=ACCTID  AND  ACCTSYSTYPE=ACCTSYSTYPEID

WHERE  ACCTSYSTYPE=136

GO

 

------逐级汇总余额表

DECLARE  JC  CURSOR  FOR  SELECT  DISTINCT  LEN(科目编码)  FROM  龙图_余额表  ORDER  BY  1  DESC

DECLARE  @JC  INT,@XJ  INT,@SJ  INT,@SQL  VARCHAR(200)

OPEN  JC

FETCH  NEXT  FROM  JC  INTO  @JC

SET  @XJ=@JC

FETCH  NEXT  FROM  JC  INTO  @JC

WHILE  @@FETCH_STATUS=0

BEGIN

SET  @SJ=@JC

SET  @SQL='INSERT  INTO  龙图_余额表  SELECT  LEFT(科目编码,'+STR(@SJ,2)+'),SUM(年初余额)  FROM  龙图_余额表  WHERE  LEN(科目编码)='+STR(@XJ,2)+'  GROUP  BY  LEFT(科目编码,'+STR(@SJ,2)+')'

EXEC(@SQL)

SET  @XJ=@SJ

FETCH  NEXT  FROM  JC  INTO  @JC

END

CLOSE  JC

DEALLOCATE  JC

GO

 

--凭证主表

IF  EXISTS(SELECT  *  FROM  SYS.objects  WHERE  name='龙图_凭证主表')  DROP  TABLE  龙图_凭证主表

GO

SELECT  凭证ID=CAST(VCHID  AS  INT),凭证类型=VCHCLSNAME,凭证日期=CAST(ACCTDATE  AS  DATE),凭证号=CAST(VCHNO  AS  INT),

              附件数=APPENUM,制单人=ZD.NAME,审核人=SH.NAME,记账人=JZ.NAME

INTO  龙图_凭证主表

        FROM  T_GLVOUCHERFM    Z  JOIN  T_FMVOUCHERCLS  L  ON  Z.VCHCLSID=L.VCHCLSID

JOIN  T_CAUSER  ZD  ON  CREATER=ZD.USERID

JOIN  T_CAUSER  SH  ON  AUDITOR=SH.USERID

JOIN  T_CAUSER  JZ  ON  POSTER=JZ.USERID

WHERE  ACCTSYSTYPE=136  AND  Z.ACCTYEAR=2013

ORDER  BY  凭证ID

GO

 

--凭证明细表

IF  EXISTS(SELECT  *  FROM  SYS.objects  WHERE  name='龙图_凭证明细表')  DROP  TABLE  龙图_凭证明细表

GO

SELECT  分录ID=CAST(RECID  AS  INT),凭证ID=CAST(VCHID  AS  INT),摘要=DIGEST,科目编码=CAST(ACCTCODE  AS  VARCHAR(50)),

              借贷方向=CASE  WHEN  M.DC=1  THEN  ''  ELSE  ''  END,金额=AMT,资金性质辅助核算项目ID=CAST(FUNDTYPE  AS  INT),

              单位辅助核算项目ID=CAST(BDGAGENCY  AS  INT),功能辅助核算项目ID=CAST(EXPFUNC  AS  INT),

              支出经济分类辅助核算项目ID=CAST(EXPECONORMIC  AS  INT),支付方式辅助核算项目ID=CAST(PAYTYPE  AS  INT),

              银行账户辅助核算项目ID=CAST(AGENTBANK  AS  INT),付款账户辅助核算项目ID=CAST(PAYMENTBANKACCOUNT  AS  INT),

              项目辅助核算项目ID=CAST(PROGRAM  AS  INT),预算来源性质辅助核算项目ID=CAST(FUNDSOURCE  AS  INT)

INTO  龙图_凭证明细表

FROM  T_GLRECORDFM  M  JOIN  T_FMACCOUNT  K  ON  ACCOUNT=ACCTID  AND  ACCTSYSTYPE=ACCTSYSTYPEID

WHERE  ACCTSYSTYPE=136  AND  M.ACCTYEAR=2013

ORDER  BY  凭证ID,ACCTSEQ,ACCTSEQSUB

GO

 

--辅助余额表

IF  EXISTS(SELECT  *  FROM  SYS.objects  WHERE  name='龙图_辅助余额表')  DROP  TABLE  龙图_辅助余额表

GO

SELECT  科目编码=CAST(ACCTCODE  AS  VARCHAR(50)),借贷方向=CASE  WHEN  Y.DC=1  THEN  ''  ELSE  ''  END,

              年初余额=STARTBAL,资金性质辅助核算项目ID=CAST(FUNDTYPE  AS  INT),

              单位辅助核算项目ID=CAST(BDGAGENCY  AS  INT),功能辅助核算项目ID=CAST(EXPFUNC  AS  INT),

              支出经济分类辅助核算项目ID=CAST(EXPECONORMIC  AS  INT),支付方式辅助核算项目ID=CAST(PAYTYPE  AS  INT),

              银行账户辅助核算项目ID=CAST(AGENTBANK  AS  INT),付款账户辅助核算项目ID=CAST(PAYMENTBANKACCOUNT  AS  INT),

              项目辅助核算项目ID=CAST(PROGRAM  AS  INT),预算来源性质辅助核算项目ID=CAST(FUNDSOURCE  AS  INT)

INTO  龙图_辅助余额表

FROM  T_FMYEARINITBALRECDETAIL  Y  JOIN  T_FMACCOUNT  K  ON  ACCOUNT=ACCTID  AND  ACCTSYSTYPE=ACCTSYSTYPEID

WHERE  ACCTSYSTYPE=136  AND  Y.ACCTYEAR=2013

GO

 

--资金性质辅助核算项目表(T_PUBFUNDTYPE)

IF  EXISTS(SELECT  *  FROM  SYS.objects  WHERE  name='龙图_资金性质辅助核算项目表')  DROP  TABLE  龙图_资金性质辅助核算项目表

GO

IF  EXISTS(SELECT  *  FROM  SYS.objects  WHERE  name='T_PUBFUNDTYPE')

        IF  EXISTS(SELECT  *  FROM  龙图_凭证明细表  WHERE  资金性质辅助核算项目ID<>0  and  资金性质辅助核算项目ID  IS  NOT  NULL)

SELECT  资金性质辅助核算项目ID=CAST(ITEMID  AS  INT),名称=NAME,上级ID=CAST(SUPERITEMID  AS  INT)

  INTO  龙图_资金性质辅助核算项目表

FROM  T_PUBFUNDTYPE

GO

 

--单位辅助核算项目表(T_PUBAGENCY)

IF  EXISTS(SELECT  *  FROM  SYS.objects  WHERE  name='龙图_单位辅助核算项目表')  DROP  TABLE  龙图_单位辅助核算项目表

GO

IF  EXISTS(SELECT  *  FROM  SYS.objects  WHERE  name='T_PUBAGENCY')

        IF  EXISTS(SELECT  *  FROM  龙图_凭证明细表  WHERE  单位辅助核算项目ID<>0  and  单位辅助核算项目ID  IS  NOT  NULL)

SELECT  单位辅助核算项目ID=CAST(ITEMID  AS  INT),名称=NAME,上级ID=CAST(SUPERITEMID  AS  INT)

  INTO  龙图_单位辅助核算项目表

FROM  T_PUBAGENCY

GO

 

--功能辅助核算项目表(T_PUBFUNC)

IF  EXISTS(SELECT  *  FROM  SYS.objects  WHERE  name='龙图_功能辅助核算项目表')  DROP  TABLE  龙图_功能辅助核算项目表

GO

IF  EXISTS(SELECT  *  FROM  SYS.objects  WHERE  name='T_PUBFUNC')

        IF  EXISTS(SELECT  *  FROM  龙图_凭证明细表  WHERE  功能辅助核算项目ID<>0  and  功能辅助核算项目ID  IS  NOT  NULL)

SELECT  功能辅助核算项目ID=CAST(ITEMID  AS  INT),名称=NAME,上级ID=CAST(SUPERITEMID  AS  INT)

  INTO  龙图_功能辅助核算项目表

FROM  T_PUBFUNC

GO

 

--支出经济分类辅助核算项目表(T_PUBEXPECONORMIC)

IF  EXISTS(SELECT  *  FROM  SYS.objects  WHERE  name='龙图_支出经济分类辅助核算项目表')  DROP  TABLE  龙图_支出经济分类辅助核算项目表

GO

IF  EXISTS(SELECT  *  FROM  SYS.objects  WHERE  name='T_PUBEXPECONORMIC')

        IF  EXISTS(SELECT  *  FROM  龙图_凭证明细表  WHERE  支出经济分类辅助核算项目ID<>0  and  支出经济分类辅助核算项目ID  IS  NOT  NULL)

SELECT  支出经济分类辅助核算项目ID=CAST(ITEMID  AS  INT),名称=NAME,上级ID=CAST(SUPERITEMID  AS  INT)

  INTO  龙图_支出经济分类辅助核算项目表

FROM  T_PUBEXPECONORMIC

GO

 

--支付方式辅助核算项目表(T_PUBPAYTYPE)

IF  EXISTS(SELECT  *  FROM  SYS.objects  WHERE  name='龙图_支付方式辅助核算项目表')  DROP  TABLE  龙图_支付方式辅助核算项目表

GO

IF  EXISTS(SELECT  *  FROM  SYS.objects  WHERE  name='T_PUBPAYTYPE')

        IF  EXISTS(SELECT  *  FROM  龙图_凭证明细表  WHERE  支付方式辅助核算项目ID<>0  and  支付方式辅助核算项目ID  IS  NOT  NULL)

SELECT  支付方式辅助核算项目ID=CAST(ITEMID  AS  INT),名称=NAME,上级ID=CAST(SUPERITEMID  AS  INT)

  INTO  龙图_支付方式辅助核算项目表

FROM  T_PUBPAYTYPE

GO

 

--银行账户辅助核算项目表(T_PUBBANKACCOUNT)

IF  EXISTS(SELECT  *  FROM  SYS.objects  WHERE  name='龙图_银行账户辅助核算项目表')  DROP  TABLE  龙图_银行账户辅助核算项目表

GO

IF  EXISTS(SELECT  *  FROM  SYS.objects  WHERE  name='T_PUBBANKACCOUNT')

        IF  EXISTS(SELECT  *  FROM  龙图_凭证明细表  WHERE  银行账户辅助核算项目ID<>0  and  银行账户辅助核算项目ID  IS  NOT  NULL)

SELECT  银行账户编码=CAST(AGENTBANK  AS  INT),银行账户名=NAME,上级ID=CAST(SUPERITEMID  AS  INT)

  INTO  龙图_银行账户辅助核算项目表

FROM  T_PUBBANKACCOUNT

GO

 

--付款账户辅助核算项目表(T_PUBBANKACCOUNT)

IF  EXISTS(SELECT  *  FROM  SYS.objects  WHERE  name='龙图_付款账户辅助核算项目表')  DROP  TABLE  龙图_付款账户辅助核算项目表

GO

IF  EXISTS(SELECT  *  FROM  SYS.objects  WHERE  name='T_PUBBANKACCOUNT')

        IF  EXISTS(SELECT  *  FROM  龙图_凭证明细表  WHERE  付款账户辅助核算项目ID<>0  and  付款账户辅助核算项目ID  IS  NOT  NULL)

SELECT  付款账户辅助核算项目ID=CAST(ITEMID  AS  INT),银行账户名=NAME,上级ID=CAST(SUPERITEMID  AS  INT)

  INTO  龙图_付款账户辅助核算项目表

FROM  T_PUBBANKACCOUNT

GO

 

--项目辅助核算项目表(T_PUBPROGRAM)

IF  EXISTS(SELECT  *  FROM  SYS.objects  WHERE  name='龙图_项目辅助核算项目表')  DROP  TABLE  龙图_项目辅助核算项目表

GO

IF  EXISTS(SELECT  *  FROM  SYS.objects  WHERE  name='T_PUBPROGRAM')

        IF  EXISTS(SELECT  *  FROM  龙图_凭证明细表  WHERE  项目辅助核算项目ID<>0  and  项目辅助核算项目ID  IS  NOT  NULL)

SELECT  项目辅助核算项目ID=CAST(ITEMID  AS  INT),名称=NAME,上级ID=CAST(SUPERITEMID  AS  INT)

  INTO  龙图_项目辅助核算项目表

FROM  T_PUBPROGRAM

GO

 

--预算来源性质辅助核算项目表(T_PUBINDSOURCE)

IF  EXISTS(SELECT  *  FROM  SYS.objects  WHERE  name='龙图_预算来源性质辅助核算项目表')  DROP  TABLE  龙图_预算来源性质辅助核算项目表

GO

IF  EXISTS(SELECT  *  FROM  SYS.objects  WHERE  name='T_PUBINDSOURCE')

        IF  EXISTS(SELECT  *  FROM  龙图_凭证明细表  WHERE  预算来源性质辅助核算项目ID<>0  and  预算来源性质辅助核算项目ID  IS  NOT  NULL)

SELECT  预算来源性质辅助核算项目ID=CAST(ITEMID  AS  INT),名称=NAME,上级ID=CAST(SUPERITEMID  AS  INT)

  INTO  龙图_预算来源性质辅助核算项目表

FROM  T_PUBINDSOURCE

GO

三、在AO2011中的采集方法

注:请在AO2011中采集,AO2011SP1中采集会出现辅助账采集失败。

在AO2011中选择“采集转换→财务数据→财务软件数据库数据→采集数据功能”功能。

选择数据源后单击“下一步”。

在上图所示的步骤中选择数据整理阶段生成的所有以“龙图_”开头的表,然后单击“下一步”。

数据采集完后新建一账套,然后在“选择导入方式”步骤中选择“源数据凭证表为主表和明细表”。

以下步骤全部用AO2011的辅助导入功能完成。

1.余额表的导入

2.会计科目表的导入

3.凭证主表的导入

4.凭证明细表的导入

 

5.辅助信息表的导入

具体辅助信息根据实际导入的表确定,各项辅助信息的设置参见下表:

6.辅助余额表的导入

 

7.凭证辅助明细表的导入

所有表导入完毕后关闭导入向导,账表重建后即完成龙图平台一体化财务核算数据导入AO2011的过程。

 

供稿:信息中心 张合喜