熟练运用ASL语句实现AO内部控制模板的自动评估_ao论文

巧用ASL语句实现AO内控模板自动测评,本文主要内容关键词为:语句论文,巧用论文,内控论文,模板论文,ASL论文,此文献不代表本站观点,内容供学术参考,文章仅供参考阅读下载。

      现场审计实施系统(AO)在资料管理功能中提供了会计电算化系统内部控制、固定资产内部控制、货币资金内部控制等9个内控调查模板,以供审计人员在审计被审计单位的内控管理情况时使用。如何更好地利用这些模板,高效、准确地对被审计单位的内控情况作出评价呢?笔者在审计的过程中以其中的货币资金内控调查模板为例通过编写asl脚本语言,进行自动测评,提高了工作效率,取得了较好的成效。

      一、审计思路

      将AO中提供的货币资金内部控制调查参考模板进行整理生成货币资金内控调查表,由被审计单位填写相关内控措施是否符合后作为业务数据连中关键控点表(只包含关键控点列,无初始值)引入AO系统。根据被审计单位的实际情况,选择该单位的关键控点输入计算机,同时赋予关键控点更重的权重。然后进行自动分析,对被审计单位现金内控情况进行打分、测评。最后将一般控点不符合要求和关键控点不符合要求分别插入疑点库,以便审计人员进行下一步审查。

      二、所需数据

      (一)货币资金内控调查表(编号、控制措施调查问题、是否符合、权重)。

      (二)关键控点表(关键控点)。

      三、分析步骤

      步骤一:将AO中提供的货币资金内部控制调查参考模板(半结构化),结合被审计单位实际进行适当整理,生成货币资金内控调查表(结构化)。

      (1)利用excel的工具-分列功能,将《资金内部控制调查参考模板》中“调查问题”列,拆分为2列,分别命名为“编号”和“控制措施调查问题”。

      (2)删除《资金内部控制调查参考模板》中的“是”、“否”、“不实用”、“备注列”。

      (3)增加一列“是否符合”,利用excel的工具-有效性,限定该列为选择性输入“是”或“否”。保证被审计人员填写调查表的准确性。

      (4)新增一列“权重”

      步骤二:被审计人员填写整理后的《货币资金内控调查表》,由审计人员审核后,连同《关键控点表》作为业务数据引入AO系统。

      步骤三:初始化关键控点表和货币资金内控调查表。将货币资金内控调查表中“权重”列付值1。清空关键控点表的内容。

      具体asl语句如下:

      Var i,j,k;

      begin

      k:='update[货币资金内控调查表]set[权重]=1';//将货币资金内控调查表中权重列初始值设为1

      ExecuteUpdate(k);

      k:='delete from[关键控点表]’;//清空关键控点表的内容

      ExecuteUpdate(k);

      步骤四:审计人员判断该单位共有几个关键控点,并根据电脑的提示输入关键控点个数和关键控点序号。

      var i,j,a,m,k;

      begin

      i:=Select CSTR(count(*))as控点数量From[货币资金内控调查表]';//统计货币资金内控调查表控点数

      j:=CreateQ(i,-1);

      a:=QFDValuee(j,'控点数量');

      showmsg('结合该单位实际和参考审计署模版设计的该单位[货币资金内控调查表]共有'+a+'个控点,您认为关键控点有几个?');//提示输入关键控点数量

      read(i);

      j:=0;

      while j<>i do

      begin

      j:=j+1;

      showmsg('请输入关键控点');

      read(k);//循环输入关键控点编号

      m:='insert into[关键控点表](关键控点)values('+k+')';//将关键控点编号插入关键控点表

      ExecuteUpdate(m);

      

      步骤五:审计人员结合被审计单位情况增加关键控点的权重,根据提示输入关键控点的新权重。

      var i,j,k;

      begin

      showmsg('所有控点的初始权重是1,您选择的关键控点将是本次审计重点审查对象,结合被审计单位的实际,您认为关键控点权重应更改为?');

      read(i);///输入关键控点的新权重

      k:='update[货币资金内控调查表]set[权重]=val('+i+')where CSTR([编号])in(select[关键控点]from[关键控点表])';//更新货币资金内控调查表中关键控点的权重数

      ExecuteUpdate(k);

      

      步骤六:将不符合要求的控点分别插入疑点库《一般内控不符合要求》和《关键控点不符合要求》。

      Var,i,k,m,n,a,b,q,z,c;

      begin

      z:='Select*From[货币资金内控调查表]WHERE[是否符合]like "%否%"and[权重]=1';

      c:=CreateQ(z,-1);

      i:=Qeof(c);

      if i#1 then

      begin

      repeat

      AddTransrslt(c,'一般内控不符合要求');

      i:=Qmov(c,1);

      i:=Qeof(c);

      until i=1;

      TransBatch(c,'一般内控不符合要求!');

      end;//将一般内控不符合要求插入疑点库

      z:='Select*From[货币资金内控调查表]WHERE[是否符合]like "%否%"and[权重]<>1';

      c:=CreateQ(z,-1);

      i:=Qeof(c);

      if i#1 then

      begin

      repeat

      AddTransrslt(c,'关键控点不符合要求’);

      i;=Qmov(c,1);

      i:=Qeof(c);

      until i=1;

      TransBatch(c,'关键控点不符合要求!‘);

      end.//将关键控点不符合要求插入疑点库

      步骤七:通过计算得出该单位控点个数,其中符合内控要求的个数,总得分,不符合内控要求的关键控点有哪些,对该单位内控做打分、评测,同时提示审计人员有几个关键控点未符合要求。

      var i,j,k,m,n,a,b,q,z,c;

      begin

      i:='Select CSTR(count(*))as控点数量From[货币资金内控调查表]';//判断审计人员设计的内控表共有多少项

      j:=CreateQ(i,-1);

      a:=QFDValue(j','控点数量'.);

      i:=Select CSTR(sum([权重]))as总权重From[货币资金内控调查表]';

      j:=CreateQ(i,-1);

      k:=QFDValue(j','总权重');

      i:='Select cstr(count(*))as符合个数,cstr(sum([权重])*1OO/val('+K+'))as得分,sum([权重])*100/val('+K+')as得分1 From[货币资金内控调查表]WHERE[是否符合]like"%是%"';

      j:=CreateQ(i,-1);

      m:=QFDValue(j','得分');

      n:=QFDValue(j','符合个数');

      q:=QFDValue(j,'得分1');

      i:=Select CSTR(count(*))as数量From[货币资金内控调查表]WHERE[是否符合]like"%否%"and[权重]<>1';

      j:=CreateQ(i,-1);

      b:=QFDValue(j','数量');

      showmsg('该单位'+a+'个控点中共有'+n+'个选项符合内控要求,总得分为'+m+'。其中不符合要求的控点中有'+b+'个为关键控点。不符合要求的内控选项已经插入疑点库〈一般控点不符合要求〉和〈关键控点不符合要求〉,请进一步审查原因,关键控点不符合要求是重点审查对象!审计人员应该重点关注!');

      

      最后审计人员就可以根据自动测评结果,对于疑点库中的控点进行审查,特别是重点审查插入疑点库中的《关键控点不符合要求》。

标签:;  ;  ;  

熟练运用ASL语句实现AO内部控制模板的自动评估_ao论文
下载Doc文档

猜你喜欢