




已阅读5页,还剩20页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 审计脚本语言介绍审计脚本语言是基于PASCAL语言的基础之上开发一门转为审计人员书写审计方法的编程语言。审计脚本语言主体是PASCAL语言的子集,在此基础之上进行了数据库操作、图表输出等一系列功能扩展,其功能简单,结构清晰,可读性强,具备了一般高级语言的必备部分(如:read,write,while-do, if-then,call,begin-end,数组,过程,函数,赋值语句等)2、 语法规则a) 约束1 变量、标示符、函数及过程名称一律使用英文字母开头,可以使用英文和数字。2 变量、标示符、函数及过程名称大小写不敏感。3 一段程序中变量、过程不能超过100个。4 数字最大位数为24位。5 过程嵌套不超过3层。6 一行程序不超过5000个字符b) 语法规则1 语法规则近似于Pascal语言。2 任何一段超过1行以上的程序需要使用begin.end语句进行约束,表明那里时开始,哪里是结束。3 每行程序以分号作为结束符。4 全程序以end.作为结束5 变量定义要在主程序的begin之前。6 赋值语句使用:=为运算符c) 参数作用域过程可以引用自己定义的局部参数,也可以引用包围它的外过程定义的局部参数。例如:在过程p中可以使用过程外部定义的常量c,d和变量a。const c=10,d=100;var a;procedure p;begin if a10 then write(c); if a10 then write(d);end;begin read(a); call p;end.d) 程序举例(圆面积计算程序)const p=3.14159265; /常量说明部分var s, r; /变量说明部分begin /程序主体开始 read(r); /读取一个数值到变量r中 while r0 do /循环,直到r0的时候结束循环 begin /循环开始 s:=p*r*r; /计算以r为半径的圆面积,结果存储到s中 write(s) ; /输出s的值,也就是刚刚计算出的圆面积 read(r); /重新需要用户输入一个值到r中 end; /循环结束,返回对应的while语句行end. /主程序结束3、 算术运算符算术运算符说明+加号-减号*乘号/除号:=等于号(赋值符、算术表达式)大于、#不等于=大于等于4、 逻辑运算符逻辑运算符说明=等于and与or或not非5、 界符界符说明,逗号,变量界符。用来分隔函数和过程的参数,以及声明变量时分隔变量;分号,语句界符。用来做为每一行程序段的结束标志.句号,程序界符。用来表示程序全部结束,一般使用在最后一个end后( )小括号,函数和过程的参数界符。 中括号,数组下标的界符,定义数组时使用,一般中括号中间添入该数组的下标单引号,字符串的界符,单引号中间一般为字符串。如果想单独输入一个单引号字符,则需要。/注释符,注释符号,/后的本行文字不影响程序执行。6、 系统基本字(保留字)系统基本字(保留字)说明调用举例var变量定义基本字,描述其后面的字符为定义的变量。var a, x, mymun;const常量定义基本字,描述其后面的字符为定义的常量。const pi=3.14159265;array数组定义基本字,描述其后面的字符为定义的数组。array a10, b10;procedure过程定义基本字,描述其后面的字符为定义的程序过程。var a;procedure sum; begin a:=a+1;write(a) ; end;begina:=1;call sum;end.call调用过程基本字,调用定义的一个过程。begin程序开始基本字,一段程序的开始标志。var a, b;begin a:=1; b:=2; if a0 then begin b:=b+a; write(b); end;end.end程序结束基本字,一段程序的结束标志。程序段结束end后面紧跟分号,全程序结束end后面紧跟句号。如过在if语句有else,则在else前的end不用跟随分号。ifif-then-else判断基本字。if 条件 thenbegin 处理语句; 处理语句;endelsebegin 处理语句; 处理语句;end;if a0 then write(a是正数);if a0 then write(a是正数)else write(a是不是正数);if a=0 thenbegina:=a+1;write(a是正数);endelse write(a是负数);thenelserepeatrepeat-until循环基本字。repeat- until循环是直到until后的条件满足循环就停止repeat 处理语句; 处理语句;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;begin read(a); if a0 then write(a是正数)else write(a是不是正数);end.write输出基本字。7、 系统标示符(自定义系统函数及过程)系统标示符说明调用举例LeftStr左截取字符串函数,输入要操作的字符串和截取的个数,返回左截取后的字符串。一个中文文字符占两位。leftstr(操作字符串,个数) ;RightStr右截取字符串函数,输入要操作的字符串和截取的个数,返回右截取后的字符串。一个中文文字符占两位。rightstr(操作字符串,个数) ;MidStr中部截取字符串函数,输入要操作的字符串,起始位置和截取的个数,返回中部截取后的字符串。一个中文文字符占两位。MidStr(操作字符串,起始位置,个数) ;Length字符串取长度函数,输入要操作的字符串,返回该字符串的长度,一个中文字符占两位。一个中文文字符占两位。Length(操作字符串) ;CreateQ执行SQL语句,返回一个SQL语句的执行及结果到查询变两中。第一个参数是查询的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查寻变量记录移动函数,返回成功与否。QMov(查询变量,移动方向1向下-1向上) ;a:= createq(select * from 凭证表,-1) ;b:=QMov(a,1) ;QFDValue取当前查询变量当前纪录的字段的值。入口参数一个是查询变量,一个是某一个字段的名称,需要用单引号括起来。QFDValue(查询变量, 字段名称) ;a:=createq(select * from 凭证表,-1) ;b:=QFDValue(a, 摘要) ;RecordNum如果参数为一个打开的查询变量,则取出当前查询变量的记录个数。如果参数为数据库中的一个表名,则取出该表的所有记录个数。RecordNum(查询变量或表名称) ;ExecuteUpdate执行数据库插入、更新、删除(Insert,Update,Delete)的SQL语句的函数。ExecuteUpdate(SQL语句) ;CreateTempTable把SQL语句取出来的结果以用户输入的表名存储在数据库中。CreateTempTable(新表名,SQL语句);OPutChart将查询变量或SQL语句结果输出到图表。Y轴字段显示颜色参数:clred红色、clblue蓝色、clyellow黄色、clgreen绿色、clMaroon栗色、clPurple紫色、clFuchsia紫红色、clOlive橄榄色、clSkyBlue天蓝色、clMoneyGreen货币绿色、clLime亮绿色。或者直接使用颜色数字,格式为$加6位的16进制数字。如:$1f11c1。OPutChart(查询变量或SQL语句, X轴字段,Y轴字段1,显示颜色参数1; Y轴字段2,显示颜色参数2;Y轴字段N,显示颜色参数N) ;AddVouDout输出源凭证号到疑点库中,该源凭证号对应的凭证将被定义为已落实疑点。AddVouDout(源凭证号) ;AddVouRslt输出源凭证号到疑点库中,该源凭证号对应的凭证将被定义为未落实疑点。AddVouRslt(源凭证号) ;AddTransDout把指定查询变量的当前记录输出到业务疑点的临时库中。AddTransDout(查询变量,疑点说明);AddTransRslt把指定查询变量的当前记录输出到业务结果的临时库中。AddTransRslt(查询变量,疑点说明);TransBatch把指定查询变量的业务疑点或结果临时库中的数据写入业务疑点或结果库中。并清空相应的临时库中的数据TransBatch(查询变量,批量疑点说明);showmsgshowmsg(消息内容);审计脚本语言(ASL)使用简单入门排行榜 收藏 打印 发给朋友 举报 发布者:admin 热度124票浏览1099次 时间:2010年4月14日 16:221、 审计脚本语言介绍 审计脚本语言是基于PASCAL语言的基础之上开发一门转为审计人员书写审计方法的编程语言。审计脚本语言主体是PASCAL语言的子集,在此基础之上进行了数据库操作、图表输出等一系列功能扩展,其功能简单,结构清晰,可读性强,具备了一般高级语言的必备部分(如:read,write,while-do, if-then,call,begin-end,数组,过程,函数,赋值语句等)2、 语法规则a) 约束1 变量、标示符、函数及过程名称一律使用英文字母开头,可以使用英文和数字。2 变量、标示符、函数及过程名称大小写不敏感。3 一段程序中变量、过程不能超过100个。4 数字最大位数为24位。5 过程嵌套不超过3层。6 一行程序不超过5000个字符b) 语法规则1 语法规则近似于Pascal语言。2 任何一段超过1行以上的程序需要使用begin.end语句进行约束,表明那里时开始,哪里是结束。3 每行程序以分号作为结束符。4 全程序以end.作为结束5 变量定义要在主程序的begin之前。6 赋值语句使用:=为运算符c) 参数作用域过程可以引用自己定义的局部参数,也可以引用包围它的外过程定义的局部参数。例如:在过程p中可以使用过程外部定义的常量c,d和变量a。const c=10,d=100;var a;procedure p;begin if a10 then write(c); if a10 then write(d);end;begin read(a); call p;end.d) 程序举例(圆面积计算程序)const p=3.14159265; /常量说明部分var s, r; /变量说明部分begin /程序主体开始 read(r); /读取一个数值到变量r中 while r0 do /循环,直到r0的时候结束循环 begin /循环开始 s:=p*r*r; /计算以r为半径的圆面积,结果存储到s中 write(s) ; /输出s的值,也就是刚刚计算出的圆面积 read(r); /重新需要用户输入一个值到r中 end; /循环结束,返回对应的while语句行end. /主程序结束3、 算术运算符算术运算符说明+加号-减号*乘号/除号:=等于号(赋值符、算术表达式)大于、#不等于=大于等于4、 逻辑运算符逻辑运算符说明=等于and与or或not非5、 界符界符说明,逗号,变量界符。用来分隔函数和过程的参数,以及声明变量时分隔变量;分号,语句界符。用来做为每一行程序段的结束标志.句号,程序界符。用来表示程序全部结束,一般使用在最后一个end后( )小括号,函数和过程的参数界符。 中括号,数组下标的界符,定义数组时使用,一般中括号中间添入该数组的下标单引号,字符串的界符,单引号中间一般为字符串。如果想单独输入一个单引号字符,则需要。/注释符,注释符号,/后的本行文字不影响程序执行。6、 系统基本字(保留字)系统基本字(保留字)说明调用举例var变量定义基本字,描述其后面的字符为定义的变量。var a, x, mymun;const常量定义基本字,描述其后面的字符为定义的常量。const pi=3.14159265;array数组定义基本字,描述其后面的字符为定义的数组。array a10, b10;procedure过程定义基本字,描述其后面的字符为定义的程序过程。var a;procedure sum; begin a:=a+1;write(a) ; end;begina:=1;call sum;end.call调用过程基本字,调用定义的一个过程。begin程序开始基本字,一段程序的开始标志。var a, b;begin a:=1; b:=2; if a0 then begin b:=b+a; write(b); end;end.end程序结束基本字,一段程序的结束标志。程序段结束end后面紧跟分号,全程序结束end后面紧跟句号。如过在if语句有else,则在else前的end不用跟随分号。ifif-then-else判断基本字。if 条件 thenbegin 处理语句; 处理语句;endelsebegin 处理语句; 处理语句;end;if a0 then write(a是正数);if a0 then write(a是正数)else write(a是不是正数);if a=0 thenbegina:=a+1;write(a是正数);endelse write(a是负数);thenelserepeatrepeat-until循环基本字。repeat- until循环是直到until后的条件满足循环就停止repeat 处理语句; 处理语句;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;begin read(a); if a0 then write(a是正数)else write(a是不是正数);end.write输出基本字。7、 系统标示符(自定义系统函数及过程)系统标示符说明调用举例LeftStr左截取字符串函数,输入要操作的字符串和截取的个数,返回左截取后的字符串。一个中文文字符占两位。leftstr(操作字符串,个数) ;RightStr右截取字符串函数,输入要操作的字符串和截取的个数,返回右截取后的字符串。一个中文文字符占两位。rightstr(操作字符串,个数) ;MidStr中部截取字符串函数,输入要操作的字符串,起始位置和截取的个数,返回中部截取后的字符串。一个中文文字符占两位。MidStr(操作字符串,起始位置,个数) ;Length字符串取长度函数,输入要操作的字符串,返回该字符串的长度,一个中文字符占两位。一个中文文字符占两位。Length(操作字符串) ;CreateQ执行SQL语句,返回一个SQL语句的执行及结果到查询变两中。第一个参数是查询的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查寻变量记录移动函数,返回成功与否。QMov(查询变量,移动方向1向下-1向上) ;a:= createq(select * from 凭证表,-1) ;b:=QMov(a,1) ;QFDValue取当前查询变量当前纪录的字段的值。入口参数一个是查询变量,一个是某一个字段的名称,需要用单引号括起来。QFDValue(查询变量, 字段名称) ;a:=createq(select * from 凭证表,-1) ;b:=QFDValue(a, 摘要) ;RecordNum如果参数为一个打开的查询变量,则取出当前查询变量的记录个数。如果参数为数据库中的一个表名,则取出该表的所有记录个数。RecordNum(查询变量或表名称 ) ;ExecuteUpdate执行数据库插入、更新、删除(Insert,Update,Delete)的SQL语句的函数。ExecuteUpdate(SQL语句) ;8、 程序举例a) 赋值语句 /定义变量并且为变量赋值和输出变量const pi=3.14159265;/常量赋值Var InputNumber, InputString, CurrentQuery; Array InputArrary10; Begin InputNumber:=123; /数值赋值 InputString:=ABCDEFG;/字符串赋值 InputArrary1:=abc; /数组赋值 CurrentQuery:=CreateQ(select * from 凭证库,-1); ShowMsg(InputNumber); ShowMsg(InputString); ShowMsg(InputArrary1); End.b) 判断语句 /脚本说明:/输入一个数判断输入的数字是否为正数,正数显示你输入的数为正数负数显示你输入的数为负数Var InputNumber;begin Read(InputNumber); if InputNumber0 then begin if InputNumber0 then begin ShowMsg(你输入的是正数); end else begin ShowMsg(你输入的是负数数); end; end else begin ShowMsg(你输入的是零); end; end.c) 循环语句 /提示用户输入一个数字,如果输入的数是负数停止循环否则将输入的数字累加并在最后将累加结果显示Var InputNumber, TotalNumber;Procedure DoCycle;Begin TotalNumber:=0; Read(InputNumber); / 输入一个数字 while InputNumber0 do / 循环条件输入的数字是正数 Begin TotalNumber:=TotalNumber+InputNumber; /累加输入的数字 Read(InputNumber);/ 输入一个数字 End; End;/主程序BeginCall DoCycle; / 调用过程ShowMsg(TotalNumber); / 显示累计结果End.d) 数据库操作 /读取凭证库中的一月份凭证,计算一类,五类科目,2,3,4类科目总数并显示/对于凭证号为1的凭证放在未落实疑点为2的放到已落实疑点var CurrentQuery,IsEmpty, AccountCode, Total1,Total2, VoucherNum, SourceVoucherNum;begin Total1:=0; Total2:=0; CurrentQuery:=CreateQ(select * from 凭证库 where 会计月份=1,-1); IsEmpty:=Qeof(CurrentQuery); if IsEmpty1 then begin repeat AccountCode:=QFDValue(CurrentQuery,科目编码); AccountCode:=LeftStr(AccountCode,1); if AccountCode=1 or AccountCode=5 then begin Total1:=Total1+1; end else begin Total2:=Total2+1 end; IsEmpty:=Qmov(Current
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 文件打印设置表格(细节参数)
- 文化艺术活动参与度调查表
- 投融资体制机制的现状与发展趋势分析
- 小学生语文口语表达能力的提升路径
- 网络技术与网络安全常识题
- DB15-T 2579-2022 草种质资源保存圃建设和管理技术规范
- 提高建筑垃圾回收利用率的措施
- 植物学概论高中生物教学大纲
- 企业内审职能的演变与重要性提升
- 零售业销售业绩增长情况表
- 浙江省杭州市杭州第二中学2024届高三入学考试数学试题
- 独特婚礼婚车服务
- 无人机校企合作方案
- 思想道德与法治(湖南师范大学)智慧树知到课后章节答案2023年下湖南师范大学
- 04D701-3 电缆桥架安装
- 房屋卫生间闭水实验情况确认单
- 叉车操作安全规范(图片版)课件
- 处方权考试(含答案)
- 世界老年人跌倒的预防和管理指南解读及跌倒应急处理-
- 前置胎盘临床诊断与处理指南课件
- 东方广场招商执行方案
评论
0/150
提交评论