浅谈AO脚本语言中输入变量的用法
张晓斐(山东省寿光市审计局)
【发布时间:2012年11月13日】
字号:【大】 【中】 【小】

我们在用计算机软件审计项目的过程中,经常会遇到需要不同的标准来审查某一个问题。如果用传统的审计方法一个判断标准写一组语句,既麻烦又会因程序冗余而导致运行速度慢。为解决这一难题,笔者在实际审计中发现,可以通过设置一个输入变量,由审计人员手动输入判别的标准,以此达到对问题进行全面审查的目的。所有可能的情况全部囊括发现引入变量输入法既能提高工作效率还具有通用性。现将变量输入法举例介绍如下,希望能与同行们学习交流。
笔者在对农机购置补贴资金发放合规性的审计中,需要判断农机具的补贴是否超过规定的标准,而判断补贴标准分两种情况,一是全国总体上执行补贴比例不超过30%的标准,二是汶川地震重灾区县、重点血防疫区补贴比例可提高到50%。因此,我们在编写ASL语言时设置了输入变量,在点击程序执行时,弹出对话框,由审计人员自由输入判断变量,以此可多次输入判断标准,达到全面审计的效果。
一、ASL语言的编写
Var sqlstr,cx,bz,qz,result,a,CLength;//定义变量sqlstr为sql语句,cx为查询,bz为标志,qz为取值,result为结果,CLength为取字符长度
Begin
showmsg('全国总体执行标准请输入0.3,汶川地震重灾区和重点血防疫区请输入0.5');//显示输入提示对话框
a:=newread('请输入补贴比例');//读入数赋给变量a
if a=0.3 then //比例是0.3的情况
begin
//若a为0.3,则执行这条语句
sqlstr:='select * from  业务_农机购置补贴发放明细表 where 单台国补/(单台国补+成交价格)>0.3';
cx:=createq(sqlstr,-1);//将SQL语句结果集赋值给变量cx
bz:=qeof(cx);//判断语句记录是否为空
if bz<>1 then  //若查询的记录不为空,则执行以下语句
begin
createtemptable('补贴比例超过百分30标准的记录',sqlstr);//若记录不为空,则生成‘补贴比例超过百分30标准的记录’表
showmsg('成功创建补贴比例超过百分30标准的记录表!');//显示'成功创建补贴比例超过百分30标准的记录表!'提示对话框
qz:=createq('select sum(单台国补) as 违规金额 from 补贴比例超过百分30标准的记录',-1);//计算单台补贴比例超过30%的记录的汇总金额,将sql语句生成的结果赋值给变量qz
result:=QFDValue(qz,'违规金额');//取出违规金额赋值给变量result
Write('补贴比例超过规定标准的金额为:',result);//将汇总金额输出显示
CLength := Length(result); //取长度
result := leftStr(result,Clength);
showMsg('补贴比例超过标准'+a+'倍的违规金额为:' + result+'元');//显示补贴比例超过标准的违规金额
end
else
showmsg('无超标准记录!');//若判断语句记录为空,则显示“无超标准记录”
end;
if a=0.5 then
begin
//如果判断比例为0.5,则执行以下语句
sqlstr:='select * from  业务_农机购置补贴发放明细表 where 单台国补/(单台国补+成交价格)>0.5';
cx:=createq(sqlstr,-1);
bz:=qeof(cx);//判断语句记录是否为空
if bz<>1 then  //若查询的记录不为空,则执行以下语句
begin  
createtemptable('补贴比例超过百分50标准的记录',sqlstr);//若记录不为空,则生成“补贴比例超过百分50标准的记录”表
showmsg('成功创建补贴比例超过百分50标准的记录表!'); //显示“成功创建补贴比例超过百分50标准的记录表!”对话框
qz:=createq('select sum(单台国补) as 违规金额 from 补贴比例超过百分50标准的记录',-1); //计算单台补贴比例超过50%的记录的汇总金额,将sql语句生成的结果赋值给变量qz
result:=QFDValue(qz,'违规金额');//将计算出的违规金额赋值给变量result
Write('补贴比例超过规定标准的金额为:',result);//将汇总后的补贴比例超过规定标准的金额输出显示
CLength := Length(result);//取长度
result := leftStr(result,Clength);
showMsg('补贴比例超过标准'+a+'倍的违规金额为:' + result+'元');  //显示补贴比例超过标准的违规金额提示对话框
end
else
showmsg('无超标准记录!');//若判断语句记录为空,则显示“无超标准记录”对话框
end;
if a<>0.3 and  a<>0.5 then //若输入的判断比例不是0.3或者0.5,则执行以下语句
begin
showmsg('输入的判断比例值错误!');//显示“输入的判断值错误”提示
break;//中止程序
end;
end.
二、运行结果
第一步,当程序执行时,会弹出提示文字说明“全国总体执行标准请输入0.3,汶川地震重灾区和重点血防疫区请输入0.5”,可以让审计人员对输入判断标准情况一目了然。
第二步,出现提示输入判断标准对话框,见图1,审计人员可根据实际审计的地域性选择输入的判断标准。
 

图1


第三步.运行结果生成“比例超标准记录表”,并根据超规定标准的记录汇总违规金额。
另外,程序还设计了无超标准的情况和审计人员输入判断比例值错误等情况,若无超标准记录,则出现提示对话框,提示“无超标准记录”,若输入的判断比例值错误,即非30%和50%的值,则弹出对话框提示“输入的判断比例值错误”。(张晓斐)
【关闭】    【打印】