巧用ASL语言分析专项资金绩效
在审计作业过程中,审计人员经常要对某一专项资金支出科目按照审计需要的统计口径,进行支出结构分析,来评价该专项资金的使用绩效。常规的做法是:审计人员通过AO把需分析的专项资金支出科目的所有记录导出到EXCEL表格,按照摘要的大致特征分类,如餐费、会议费、差旅费等,筛选出某个分类,然后通过剪切、粘贴到另外一个sheet。这种方法不仅繁琐,而且容易出错,在遇到要分析其他专项资金科目时,必须重复上述步骤。那么可否充分运用AO的功能,用ASL脚本语言编写一个通用的自动审计方法,对该种类型的分析,自动按照审计人员设定的摘要特征分类,分析出某一专项资金支出科目的支出结构,再与预算指标进行对比,评价专项资金的使用绩效,以提高审计效率,避免重复劳动。
笔者在某部门预算执行审计过程中尝试编写了专项资金支出科目支出结构分析的自动审计方法,供审计人员参考。
思路和步骤:
1、将被审计单位提供的电子帐备份数据导入AO。
2、编写带参数的ASL脚本语言,根据指定的专项资金科目代码筛选并生成该专项资金科目的支出临时凭证表。
3、根据该临时凭证表,通过编写带参数的ASL脚本语言,输入摘要特征关键字,分别生成各类性质的支出分类表(本例最多设置八个分类,如需增减,只需改变相应参数即可)。
执行ASL脚本语言后,对各分类表自动进行汇总并将分析结果通过图表进行显示。
4、根据分析结果,比对财政预算指标数据,对专项资金使用情况进行评价。
具体ASL语言如下:
var a,b,i,j,k,InputCode,sqlstr,sqlstr1,zystr,sqldele;
array zy[8],sum[8];
begin
InputCode:=newread('请输入需要分类的科目代码');
sqlstr:='select distinct * from 凭证库 where 科目编码 like '+''''+InputCode+'%'+'''';
createtemptable('待分析支出科目表',sqlstr);
sqlstr1:=sqlstr1+'select '+''''+'其他'+''''+' as 分类,sum(借方金额) as 借方合计 from 待分析支出科目表';
i:=1;
while i<=8 do
begin
zy[i]:=newread('请输入分类摘要特征(0表示结束)');
if zy[i]='0' then
begin
k:=i-1;
i:=8;
end;
i:=i+1;
end;
sqlstr1:='';
j:=1;
while j<=k do
begin
zystr:= trimstrex(zy[j],';','%'+''''+' or 摘要 like '+''''+'%');
sqlstr:='select distinct * from 待分析支出科目表 where 摘要 like '+''''+'%'+zystr+'%'+'''';
createtemptable('待分析支出科目表'+zy[j],sqlstr);
sqldele:='delete * from 待分析支出科目表 where 摘要 like '+''''+'%'+zystr+'%'+'''';
executeupdate(sqldele);
sqlstr1:=sqlstr1+'select '+''''+zy[j]+''''+' as 分类,sum(借方金额) as 借方合计 from 待分析支出科目表'+zy[j]+ ' union ';
j:=j+1;
end;
sqlstr1:=sqlstr1+'select '+''''+'其他'+''''+' as 分类,sum(借方金额) as 借方合计 from 待分析支出科目表';
oputchart(sqlstr1,'分类','借方合计,clblue')
end.
通过使用上述方法得到的启示是:巧用AO强大的数据处理分析功能,可以避免审计过程中许多手工方法所必须的重复劳动,既提升了审计效率和效果,也节约了宝贵的审计资源。