ImageVerifierCode 换一换
格式:DOCX , 页数:27 ,大小:29.59KB ,
资源ID:11845764      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/11845764.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(计算机审计方法语言编制规范.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

计算机审计方法语言编制规范.docx

1、计算机审计方法语言编制规范计算机审计方法语言编制规范计算机审计实务公告第13号中华人民共和国审计署二OO八年三月目录1前言 42引言 43审计脚本语言(ASL) 43.1概述 43.2约束 43.3参数作用域 53.4常量 53.5变量 53.6数组 53.7表达式、运算符与界符 63.7.1算术运算符 63.7.2逻辑运算符 63.7.3关系表达式 63.7.4界符 63.8叙述语法 73.8.1 分支语句 73.8.2 WHILE循环 73.8.3 REPEATuntil循环 83.9过程 93.9.1过程定义 93.9.2过程的调用 93.10系统基本字(保留字) 103.11系统函数

2、123.12程序举例 154.Sql语句 204.1约束 204.2常用SQL数据库操作 204.3查询表 204.3.1 Select 语句 204.3.2 修改表 234.3.3 连接表 254.4常用SQL函数与表达式 274.4.1 聚合函数 274.4.2 字符串函数 284.4.3时间函数: 314.5常用函数对照表 31计算机审计方法语言编制规范1前言本规范由审计署计算机技术中心、信息化建设办公室提出。本规范的起草单位:审计署计算机技术中心、信息化建设办公室。2引言计算机审计方法语言包括ASL审计脚本语言和SQL语句两部分。ASL审计脚本语言完成审计方法的流程控制。ASL审计脚本

3、语言是由审计署基于PASCAL语言研制的适用于审计人员编制计算机审计方法的语言。SQL语句完成对数据库的操作。本规范的SQL语句采用国家标准GB_12991-91信息处理系统 数据库语言SQL及国际标准ISO/IEC 9075:1992信息技术 数据库语言 SQL 中审计所需的部分内容。为使计算机审计方法语言适用于SQL server、ORACLE、DB2等不同数据库,本规范在4.5节中列示了常用函数在SQL server、ORACLE、DB2等数据库使用中的对照表。3审计脚本语言(ASL)3.1概述审计脚本语言是基于PASCAL语言的基础之上开发一门专为审计人员书写审计方法的编程语言。审计脚

4、本语言主体是PASCAL语言的子集,在此基础之上进行了数据库操作、图表输出等一系列功能扩展,其功能简单,结构清晰,可读性强,具备了一般高级语言的必备部分。3.2约束(1)变量、标示符、函数及过程名称一律使用英文字母开头,可以使用英文和数字。(2)变量、标示符、函数及过程名称大小写不敏感。(3)一段程序中变量、过程不能超过100个。(4)数字最大位数为24位。(5)过程嵌套不超过3层。(6)一行程序不超过5000个字符(7)任何一段超过1行以上的程序需要使用begin.end语句进行约束,表明哪里是开始,哪里是结束。(8)每行程序以分号作为结束符。(9)全程序以end.作为结束(10)变量定义要

5、在主程序的begin之前。(11)赋值语句使用:=为运算符3.3参数作用域过程可以引用自己定义的局部参数,也可以引用包围它的外过程定义的局部参数。3.4常量定义常量的格式:CONST =说明:常量说明部分以关键字const开头, 后面的标识符为常量标识符,其中=号后的常量为整数、实数、字符、 字符串(字符、字符串常量在后面章节中将作介绍)。而且,在常量说明部分可以将几个常量说明成符号常量,共用一个关键字const。3.5变量变量说明的格式:VAR ,; 其中VAR是ASL保留字,表示开始一个变量说明段;3.6数组说明的格式:array 下标;其中array是ASL保留字,表示开始一个数组说明段

6、。3.7表达式、运算符与界符3.7.1算术运算符算术运算符说明+加号-减号*乘号/除号3.7.2逻辑运算符逻辑运算符说明=等于and与or或not非3.7.3关系表达式关系表达式说明:=等于号(赋值符、算术表达式)大于、#不等于=大于等于3.7.4界符界符说明,逗号,变量界符。用来分隔函数和过程的参数,以及声明变量时分隔变量;分号,语句界符。用来做为每一行程序段的结束标志.句号,程序界符。用来表示程序全部结束,一般使用在最后一个end后( )小括号,函数和过程的参数界符。 中括号,数组下标的界符,定义数组时使用,一般中括号中间添入该数组的下标单引号,字符串的界符,单引号中间一般为字符串。如果想

7、单独输入一个单引号字符,则需要。/注释符,注释符号,/后的本行文字不影响程序执行。3.8叙述语法3.8.1 分支语句(1)格式、IF 布尔表达式THEN 语句;、IF 布尔表达式THEN 语句 ELSE 语句;(注意型IF语句中语句后无;号)()功能 、执行IF语句时,先计算布尔表达式的值,若为TRUE则执行语句,否则不执行任何操作。、执行IF语句时,先计算布尔表达式的值,若为TRUE则执行语句,否则执行语3.8.2 WHILE循环while语句的形式为:while do ;其意义为:当布尔表达式的值为true时,执行do后面的语句。while语句的执行过程为:判断布尔表达式的值,如果其值为真

8、,执行步骤2,否则执行步骤4;执行循环体语句(do后面的语句);返回步骤1;结束循环,执行while的下一个语句。说明:这里while和do为保留字,while语句的特点是先判断,后执行。 当布尔表达式成立时,重复执行do后面的语句(循环体)。3.8.3 REPEATuntil循环用while语句可以实现当型循环,用repeat-until 语句可以实现直到型循环。repeat-until语句的含义是:重复执行循环,直到指定的条件为真时为止。直到循环语句的一般形式:Repeat;:;until ;其中Repeat、until是ASL保留字,repeat与until之间的所有语句称为循环体。说明

9、:repeat语句的特点是:先执行循环,后判断结束条件,因而至少要执行一次循环体。repeat-until是一个整体,它是一个(构造型)语句,不要误认为repeat是一个语句,until是另一个语句。repeat语句在布尔表达式的值为真时不再执行循环体,且循环体可以是若干个语句,不需用begin和end把它们包起来, repeat 和until已经起了begin和end的作用。while循环和repeat循环是可以相互转化的。3.9过程3.9.1过程定义在pascal中,函数也遵循先说明后使用的规则,在程序中,函数的说明放在调用该函数的程序(主程序或其它子程序)的说明部分。函数的结构主程序的结

10、构很相似。procedure ; 过程首部说明: 过程首部以关键字procedure开头。过程名是用户自定义的标识符,只用来标识一个过程,不能代表任何数据,因此不能说明过程的类型。过程体的说明部分可以定义只在本过程有效的标号、常量、类型、变量、子程序等。3.9.2过程的调用过程调用是通过一条独立的过程调用语句来实现的,调用的一般格式为:call 过程名3.10系统基本字(保留字)系统基本字(保留字)说明调用举例var变量定义基本字,描述其后面的字符为定义的变量。var a, x, mymun;const常量定义基本字,描述其后面的字符为定义的常量。const pi=3.14159265;arr

11、ay数组定义基本字,描述其后面的字符为定义的数组。array a10, b10;procedure过程定义基本字,描述其后面的字符为定义的程序过程。var a;procedure sum;begina:=a+1;write(a) ;end;begina:=1;call sum;end.call调用过程基本字,调用定义的一个过程。begin程序开始基本字,一段程序的开始标志。var a, b;begina:=1;b:=2;if a0 thenbeginb:=b+a;write(b);end;end.end程序结束基本字,一段程序的结束标志。程序段结束end后面紧跟分号,全程序结束end后面紧跟句

12、号。如过在if语句有else,则在else前的end不用跟随分号。ifif-then-else判断基本字。if 条件 thenbegin处理语句;处理语句;endelsebegin处理语句;处理语句;end;if a0 thenwrite(a是正数);if a0 thenwrite(a是正数)elsewrite(a是不是正数);if a=0 thenbegina:=a+1;write(a是正数);endelsewrite(a是负数);thenelserepeatrepeat-until循环基本字。repeat- until循环是直到until后的条件满足循环就停止repeat处理语句;处理语句

13、;until 条件;i:=0;repeata:=i*i;write(a);i:=i+1;until i5;untilwhilewhile-do循环基本字while 条件 dobegin处理语句;处理语句;end;b:=1;while b60000 then break;b:=b+1;end;write(b);dobreak循环中止基本字read录入基本字。var a;beginread(a);if a0 thenwrite(a是正数)elsewrite(a是不是正数);end.write输出基本字。3.11系统函数系统标示符说明调用举例LeftStr左截取字符串函数,输入要操作的字符串和截取的

14、个数,返回左截取后的字符串。一个中文文字符占两位。leftstr(操作字符,个数) ;RightStr右截取字符串函数,输入要操作的字符串和截取的个数,返回右截取后的字符串。一个中文文字符占两位。rightstr(操作字符串,个数) ;MidStr中部截取字符串函数,输入要操作的字符串,起始位置和截取的个数,返回中部截取后的字符串。一个中文文字符占两位。MidStr(操作字符串,起始位置,个数) ;Length字符串取长度函数,输入要操作的字符串,返回该字符串的长度,一个中文字符占两位。一个中文文字符占两位。Length(操作字符串) ;CreateQ执行SQL语句,返回一个SQL语句的执行及

15、结果到查询变两中。第一个参数是查询的SQL语句,第二个参数是使用过已经没有用的查询变量,如果是第一次作查询则填写-1,这样做的好处是,节省查询变量的个数,节约资源。CreateQ(SQL语句,查询变量) ;a:=createq(select * from 凭证表,-1) ;a:=createq(select * from 凭证表,a) ;QEof查看查询变量当前指向的记录是否为空。返回1则表明为空。QEof(查询变量) ;a:=createq(select * from 凭证表,-1) ;b:=QEof(a);if b1 thenbegin/你的操作/你的操作end;QMov查寻变量记录移动函

16、数,返回成功与否。QMov(查询变量,移动方向1向下-1向上) ;a:= createq(select * from 凭证表,-1) ;b:=QMov(a,1) ;QFDValue取当前查询变量当前纪录的字段的值。入口参数一个是查询变量,一个是某一个字段的名称,需要用单引号括起来。QFDValue(查询变量, 字段名称) ;a:=createq(select * from 凭证表,-1) ;b:=QFDValue(a, 摘要) ;RecordNum如果参数为一个打开的查询变量,则取出当前查询变量的记录个数。如果参数为数据库中的一个表名,则取出该表的所有记录个数。RecordNum(查询变量或表

17、名称) ;ExecuteUpdate执行数据库插入、更新、删除(Insert,Update,Delete)的SQL语句的函数。ExecuteUpdate(SQL语句) ;CreateTempTable把SQL语句取出来的结果以用户输入的表名存储在数据库中。CreateTempTable(新表名, SQL语句);OPutChart将查询变量或SQL语句结果输出到图表。Y轴字段显示颜色参数:clred红色、clblue蓝色、clyellow黄色、clgreen绿色、clMaroon栗色、clPurple紫色、clFuchsia紫红色、clOlive橄榄色、clSkyBlue天蓝色、clMoneyG

18、reen货币绿色、clLime亮绿色。或者直接使用颜色数字,格式为$加6位的16进制数字。如:$1f11c1。OPutChart(查询变量或SQL语句, X轴字段,Y轴字段1,显示颜色参数1; Y轴字段2,显示颜色参数2;Y轴字段N,显示颜色参数N) ;AddVouDout输出源凭证号到疑点库中,该源凭证号对应的凭证将被定义为已落实疑点。AddVouDout(源凭证号) ;AddVouRslt输出源凭证号到疑点库中,该源凭证号对应的凭证将被定义为未落实疑点。AddVouRslt(源凭证号) ;AddTransDout把指定查询变量的当前记录输出到业务疑点的临时库中。AddTransDout(查

19、询变量, 疑点说明);AddTransRslt把指定查询变量的当前记录输出到业务结果的临时库中。AddTransRslt(查询变量, 疑点说明);TransBatch把指定查询变量的业务疑点或结果临时库中的数据写入业务疑点或结果库中。并清空相应的临时库中的数据TransBatch(查询变量, 批量疑点说明);showmsgshowmsg(消息内容);3.12程序举例(1)赋值语句/定义变量并且为变量赋值和输出变量const pi=3.14159265;/常量赋值VarInputNumber,InputString,CurrentQuery;Array InputArrary10;BeginIn

20、putNumber:=123; /数值赋值InputString:=ABCDEFG;/字符串赋值InputArrary1:=abc; /数组赋值CurrentQuery:=CreateQ(select * from 凭证库,-1);ShowMsg(InputNumber);ShowMsg(InputString);ShowMsg(InputArrary1);End.(2)判断语句/脚本说明:/输入一个数判断输入的数字是否为正数,正数显/示你输入的数为正数负数显示你输入的数为负数VarInputNumber;beginRead(InputNumber);if InputNumber0 thenb

21、eginif InputNumber0 thenbeginShowMsg(你输入的是正数);endelsebeginShowMsg(你输入的是负数数);end;endelsebeginShowMsg(你输入的是零);end; end.(3) 循环语句/提示用户输入一个数字,如果输入的数是负数停止/循环否则将输入的数字累加并在最后将累加结果显示VarInputNumber,TotalNumber;Procedure DoCycle;BeginTotalNumber:=0;Read(InputNumber); / 输入一个数字while InputNumber0 do / 循环条件输入的数字是正数

22、BeginTotalNumber:=TotalNumber+InputNumber; /累加输入的数字Read(InputNumber);/ 输入一个数字End; End;/主程序BeginCall DoCycle; / 调用过程ShowMsg(TotalNumber); / 显示累计结果End.(4)数据库操作/读取凭证库中的一月份凭证,计算一类,五类科/目,2,3,4类科目总数并显示/对于凭证号为1的凭证放在未落实疑点为2的放/到已落实疑点varCurrentQuery,IsEmpty,AccountCode,Total1,Total2,VoucherNum,SourceVoucherNu

23、m;beginTotal1:=0;Total2:=0; CurrentQuery:=CreateQ(select * from 凭证库 where 会计月份=1,-1);IsEmpty:=Qeof(CurrentQuery);if IsEmpty1 thenbeginrepeatAccountCode:=QFDValue(CurrentQuery,科目编码);AccountCode:=LeftStr(AccountCode,1);if AccountCode=1 or AccountCode=5 thenbeginTotal1:=Total1+1;endelsebeginTotal2:=Tot

24、al2+1end;IsEmpty:=Qmov(CurrentQuery,1);IsEmpty:=Qeof(CurrentQuery);VoucherNum:=QFDValue(CurrentQuery,凭证号);if VoucherNum=1 thenbeginSourceVoucherNum:=QFDValue(CurrentQuery,源凭证号);AddVouDout(SourceVoucherNum);end;if VoucherNum=2 thenbeginSourceVoucherNum:=QFDValue(CurrentQuery,源凭证号);AddVouRslt(SourceVo

25、ucherNum);end;until IsEmpty=1;end;write(Total1);write(Total2);ShowMsg(Total1);end.(5)字符串操作varTestString,ResultStr,LengthStr;beginTestString:=ABCDEFG;ResultStr:=LeftStr(TestString,1);ShowMsg(ResultStr);ResultStr:=RightStr(TestString,1);ShowMsg(ResultStr);ResultStr:=MidStr(TestString,1,4);ShowMsg(Resu

26、ltStr);ResultStr:=TrimStrEX(TestString,CD,DC);ShowMsg(ResultStr);LengthStr:=Length(TestString);ShowMsg(LengthStr);end.(6)图形输出/用户输入科目编码对当前输入的科目编码按月份/汇总借贷金额以图表方式输出varCurrentQuery,x; beginRead(x);CurrentQuery:=CreateQ(SELECT 会计月份,SUM(借方金额) AS J,SUM(贷方金额) AS D FROM 凭证库 WHERE LEFT(科目编码,4) =+x+ GROUP BY 会

27、计月份,-1);oputchart(CurrentQuery,会计月份,J,clred;D,clgreen); end.4.Sql语句4.1约束在计算机审计方法语言中的SQL语句只支持数据定义语言(DDL,Data Definition Language)、数据操纵语言(DML,Data Manipularion Language)、数据控制语言(DCL,Data Control Language)和系统存储过程(System Stored Procedure)中的数据定义语言和数据操纵语言。4.2常用SQL数据库操作4.3查询表4.3.1 Select 语句Select语句从一个或多个表中检索数据(1)语法SELECT ALL | DISTINCT Column expression AS name | * FROM , WHERE GROUP BY Columns Having conditionSelect 语句查询sql数据,返回一个由在From子句中所指的表导出的结果表。结果表的导出可以描述为一个操作的序列,每一个操作的结果被输入到下一个操作。这个操作序列是From子句,然后是WHERE、GROUP BY、HAVING 和选择清单(即列表达式的清单),而对这些子句的描述也以这个顺序出现。From子句Form子句为查询提供一个语法FROM ,

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1