计算机审计方法语言编制规范.doc
《计算机审计方法语言编制规范.doc》由会员分享,可在线阅读,更多相关《计算机审计方法语言编制规范.doc(51页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、计算机审计方法语言编制规范计算机审计实务公告第13号中华人民共和国审计署二OO八年三月目录1前言52引言53审计脚本语言(ASL)53.1概述53.2约束63.3参数作用域63.4常量73.5变量73.6数组73.7表达式、运算符与界符73.7.1算术运算符73.7.2逻辑运算符83.7.3关系表达式83.7.4界符93.8叙述语法93.8.1 分支语句93.8.2 WHILE循环103.8.3 REPEATuntil循环113.9过程123.9.1过程定义123.9.2过程的调用123.10系统基本字(保留字)133.11系统函数183.12程序举例244.Sql语句314.1约束314.2
2、常用SQL数据库操作324.3查询表324.3.1 Select 语句324.3.2 修改表354.3.3 连接表374.4常用SQL函数与表达式394.4.1 聚合函数394.4.2 字符串函数404.4.3时间函数:434.5常用函数对照表44计算机审计方法语言编制规范1前言本规范由审计署计算机技术中心、信息化建设办公室提出。本规范的起草单位:审计署计算机技术中心、信息化建设办公室。2引言计算机审计方法语言包括ASL审计脚本语言和SQL语句两部分。ASL审计脚本语言完成审计方法的流程控制。ASL审计脚本语言是由审计署基于PASCAL语言研制的适用于审计人员编制计算机审计方法的语言。SQL语
3、句完成对数据库的操作。本规范的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语言的基础之上开发一门专为审计人员书写审计方法的编程语言。审计脚本语言主体是PASCAL语言的子集,在此基础之上进行了数据库操作、图表输出等一系列功能扩
4、展,其功能简单,结构清晰,可读性强,具备了一般高级语言的必备部分。3.2约束(1)变量、标示符、函数及过程名称一律使用英文字母开头,可以使用英文和数字。(2)变量、标示符、函数及过程名称大小写不敏感。(3)一段程序中变量、过程不能超过100个。(4)数字最大位数为24位。(5)过程嵌套不超过3层。(6)一行程序不超过5000个字符(7)任何一段超过1行以上的程序需要使用begin.end语句进行约束,表明哪里是开始,哪里是结束。(8)每行程序以分号作为结束符。(9)全程序以end.作为结束(10)变量定义要在主程序的begin之前。(11)赋值语句使用:=为运算符3.3参数作用域过程可以引用自
5、己定义的局部参数,也可以引用包围它的外过程定义的局部参数。3.4常量定义常量的格式:CONST =说明:常量说明部分以关键字const开头, 后面的标识符为常量标识符,其中=号后的常量为整数、实数、字符、 字符串(字符、字符串常量在后面章节中将作介绍)。而且,在常量说明部分可以将几个常量说明成符号常量,共用一个关键字const。3.5变量变量说明的格式:VAR ,; 其中VAR是ASL保留字,表示开始一个变量说明段;3.6数组说明的格式:array 下标;其中array是ASL保留字,表示开始一个数组说明段。3.7表达式、运算符与界符3.7.1算术运算符算术运算符说明+加号-减号*乘号/除号3
6、.7.2逻辑运算符逻辑运算符说明=等于and与or或not非3.7.3关系表达式关系表达式说明:=等于号(赋值符、算术表达式)大于、#不等于=大于等于3.7.4界符界符说明,逗号,变量界符。用来分隔函数和过程的参数,以及声明变量时分隔变量;分号,语句界符。用来做为每一行程序段的结束标志.句号,程序界符。用来表示程序全部结束,一般使用在最后一个end后( )小括号,函数和过程的参数界符。 中括号,数组下标的界符,定义数组时使用,一般中括号中间添入该数组的下标单引号,字符串的界符,单引号中间一般为字符串。如果想单独输入一个单引号字符,则需要。/注释符,注释符号,/后的本行文字不影响程序执行。3.8
7、叙述语法3.8.1 分支语句(1)格式、IF 布尔表达式THEN 语句;、IF 布尔表达式THEN 语句 ELSE 语句;(注意型IF语句中语句后无;号)()功能 、执行IF语句时,先计算布尔表达式的值,若为TRUE则执行语句,否则不执行任何操作。、执行IF语句时,先计算布尔表达式的值,若为TRUE则执行语句,否则执行语3.8.2 WHILE循环while语句的形式为:while do ;其意义为:当布尔表达式的值为true时,执行do后面的语句。while语句的执行过程为:判断布尔表达式的值,如果其值为真,执行步骤2,否则执行步骤4;执行循环体语句(do后面的语句);返回步骤1;结束循环,执
8、行while的下一个语句。说明:这里while和do为保留字,while语句的特点是先判断,后执行。 当布尔表达式成立时,重复执行do后面的语句(循环体)。3.8.3 REPEATuntil循环用while语句可以实现当型循环,用repeat-until 语句可以实现直到型循环。repeat-until语句的含义是:重复执行循环,直到指定的条件为真时为止。直到循环语句的一般形式:Repeat;:;until ;其中Repeat、until是ASL保留字,repeat与until之间的所有语句称为循环体。说明:repeat语句的特点是:先执行循环,后判断结束条件,因而至少要执行一次循环体。rep
9、eat-until是一个整体,它是一个(构造型)语句,不要误认为repeat是一个语句,until是另一个语句。repeat语句在布尔表达式的值为真时不再执行循环体,且循环体可以是若干个语句,不需用begin和end把它们包起来, repeat 和until已经起了begin和end的作用。while循环和repeat循环是可以相互转化的。3.9过程3.9.1过程定义在pascal中,函数也遵循先说明后使用的规则,在程序中,函数的说明放在调用该函数的程序(主程序或其它子程序)的说明部分。函数的结构主程序的结构很相似。procedure ; 过程首部说明: 过程首部以关键字procedure开头
10、。过程名是用户自定义的标识符,只用来标识一个过程,不能代表任何数据,因此不能说明过程的类型。过程体的说明部分可以定义只在本过程有效的标号、常量、类型、变量、子程序等。3.9.2过程的调用过程调用是通过一条独立的过程调用语句来实现的,调用的一般格式为:call 过程名3.10系统基本字(保留字)系统基本字(保留字)说明调用举例var变量定义基本字,描述其后面的字符为定义的变量。var a, x, mymun;const常量定义基本字,描述其后面的字符为定义的常量。const pi=3.14159265;array数组定义基本字,描述其后面的字符为定义的数组。array a10, b10;proc
11、edure过程定义基本字,描述其后面的字符为定义的程序过程。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后面紧跟句号。如过在if语句有else,则在else前的end不用跟随分号。ifif-then-e
12、lse判断基本字。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处理语句;处理语句;until 条件;i:=0;repeata:=i*i;write(a);i:=i+1;
13、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左截取字符串函数,输入要操作的字符串和截取的个数,返回左截取后的字符串。一个中文文字符占两位。leftstr(操作字符,个数) ;R
14、ightStr右截取字符串函数,输入要操作的字符串和截取的个数,返回右截取后的字符串。一个中文文字符占两位。rightstr(操作字符串,个数) ;MidStr中部截取字符串函数,输入要操作的字符串,起始位置和截取的个数,返回中部截取后的字符串。一个中文文字符占两位。MidStr(操作字符串,起始位置,个数) ;Length字符串取长度函数,输入要操作的字符串,返回该字符串的长度,一个中文字符占两位。一个中文文字符占两位。Length(操作字符串) ;CreateQ执行SQL语句,返回一个SQL语句的执行及结果到查询变两中。第一个参数是查询的SQL语句,第二个参数是使用过已经没有用的查询变量,
15、如果是第一次作查询则填写-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查寻变量记录移动函数,返回成功与否。QMov(查询变量,移动方向1向下-1向上) ;a:= createq
16、(select * from 凭证表,-1) ;b:=QMov(a,1) ;QFDValue取当前查询变量当前纪录的字段的值。入口参数一个是查询变量,一个是某一个字段的名称,需要用单引号括起来。QFDValue(查询变量, 字段名称) ;a:=createq(select * from 凭证表,-1) ;b:=QFDValue(a, 摘要) ;RecordNum如果参数为一个打开的查询变量,则取出当前查询变量的记录个数。如果参数为数据库中的一个表名,则取出该表的所有记录个数。RecordNum(查询变量或表名称) ;ExecuteUpdate执行数据库插入、更新、删除(Insert,Updat
17、e,Delete)的SQL语句的函数。ExecuteUpdate(SQL语句) ;CreateTempTable把SQL语句取出来的结果以用户输入的表名存储在数据库中。CreateTempTable(新表名, SQL语句);OPutChart将查询变量或SQL语句结果输出到图表。Y轴字段显示颜色参数:clred红色、clblue蓝色、clyellow黄色、clgreen绿色、clMaroon栗色、clPurple紫色、clFuchsia紫红色、clOlive橄榄色、clSkyBlue天蓝色、clMoneyGreen货币绿色、clLime亮绿色。或者直接使用颜色数字,格式为$加6位的16进制数字
18、。如:$1f11c1。OPutChart(查询变量或SQL语句, X轴字段,Y轴字段1,显示颜色参数1; Y轴字段2,显示颜色参数2;Y轴字段N,显示颜色参数N) ;AddVouDout输出源凭证号到疑点库中,该源凭证号对应的凭证将被定义为已落实疑点。AddVouDout(源凭证号) ;AddVouRslt输出源凭证号到疑点库中,该源凭证号对应的凭证将被定义为未落实疑点。AddVouRslt(源凭证号) ;AddTransDout把指定查询变量的当前记录输出到业务疑点的临时库中。AddTransDout(查询变量, 疑点说明);AddTransRslt把指定查询变量的当前记录输出到业务结果的临
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 审计 方法 语言 编制 规范
限制150内