第4章PowerScript编程语言.ppt
《第4章PowerScript编程语言.ppt》由会员分享,可在线阅读,更多相关《第4章PowerScript编程语言.ppt(69页珍藏版)》请在三一办公上搜索。
1、第4章 PowerScript编程语言,教学目标教学重点教学过程,教学目标,熟悉和掌握PowerBuilder 9.0的基本语法规则 对PowerBuilder 9.0有初步的认识和了解,并能够编写一些简单的小程序,教学重点,标识符命名规则注释语句基本控制语句创建与释放对象实例嵌入式SQL常用函数创建自定义函数和结构,教学过程,语言特点 Script编程视图的使用语言基础数据类型与变量说明操作符创建与释放对象实例条件语句循环语句返回语句与终止程序运行嵌入式SQL常用函数创建自定义函数和结构,第4章 PowerScript编程语言,4.1 语言特点PowerScript是一种高级的、结构化的第四
2、代(4GL)编程语言,它的语言成分和大多数编程语言很相似,但与众不同之处在于它提供了一套完整的嵌入式SQL语句,开发人员能够像使用其它语言成分那样使用他们,这就大大增强了程序操纵和访问数据库的能力。PowerScript的控制语句以及嵌入的SQL语句利用可视化工具可以粘贴到程序当中,而不用逐字从键盘输入,提高了编程效率和输入的正确率。丰富的数据类型和众多的函数进一步提高了PowerBuilder的适应性和灵活性。,4.2Script编程视图的使用,PowerBuilder编写代码的环境称为Script编程视图。在Script编程视图中,可以进行变量的定义、查看事件及函数列表、对所选择的事件进行
3、编程等工作。在这个编辑器中,不同的语法成分用不同的颜色区分,除了具备复制、剪切、粘贴文本等常用功能外,还可以在PainterBar中选择相应的粘贴功能,可以将PowerBuilder内置函数、自定义函数、外部函数、SQL语句、流控制语句、全局变量、共享变量、当前应用中窗口名、当前的对象名等内容粘贴到程序的插入点位置。,4.2.1编辑代码,1、选择文本2、删除、剪切、复制、粘贴文本3、移动文本4、撤销操作5、重做6、查找和替换文本7、加注释和去掉注释,4.2.2 强大的粘贴功能,1、粘贴函数2、粘贴流控制语句,4.2.3 编译代码,4.3 语言基础,4.3.1断行、续行与多条语句回车键换行续行符
4、:用“&”做为续行符。它使一条语句可以写在两行上,但要注意不能在保留字或变量名中间加续行符。一行写多条语句,语句间用分号分隔。4.3.2注释行注释:/块注释:/*开始,*/结束。,4.3.3 标识符标识符是程序中用来代表变量、标号、函数、窗口、控件、菜单、对象等名称的符号。PowerBuilder 9.0中标识符的命名规则如下:(1)必须以字母或下划线开头。(2)其余字符可以是字母、数字和如下的特殊字符:短横线“-”、下划线“_”、美元符号“$”,号码符号“#”和百分符号“%”。(3)最长40个字符,且中间不能插入空格。(4)多数情况下不区分大小写,但要注意使用大小写的一致性,便于阅读和维护程
5、序。(5)保留字不能做标识符。,4.3.4特殊字符字符串中可以包含特殊的ASCII码字符,它们不能使用常规的输入方法直接输入,需要使用其他字符来代替。常用的特殊字符如下表:,空值(null)是与数据库交换数据时使用的一种特殊值。它代表未定义或是不可知。变量被赋予空值的途径有两条:(1)从数据库中读到空值。(2)使用SetNull()函数将变量设置为空值。,4.3.5 空值(null),4.3.6对象、属性、函数和事件的引用方法,访问对象属性的格式为:对象名.对象属性程序中访问对象函数与事件的格式:objectname.type calltype when functionname(argume
6、ntlist)其中objectname是对象名。Type取值为FUNCTION或EVENT,用于指明是访问函数还是事件,默认为FUNCTION。Calltype用于指明PowerBuilder查找函数的时机,有效取值为:STATIC(默认值):编译时查找函数,若不存在,产生编译错误;DYNAMIC:程序运行时查找函数,若不存在,产生运行错误。When用于指明函数或事件是立即执行还是当前程序段执行完毕后执行,取值为:TRIGGER(默认值):立即执行;POST:当前程序段执行完毕后执行;Functionname指明调用的函数或事件名称;Argumentlist给出函数或事件的参数。,4.3.7
7、代词,1)This代词 This代词代表窗口、用户对象、菜单、应用对象或控件本身。2)Parent代词 Parent代词可以用在窗口控件、用户定制的对象、菜单脚本中。在窗口控件中使用parent时,parent表示包含该控件的窗口。在菜单项脚本中使用parent,表示当前菜单项的上一级菜单项。3)ParentWindow代词ParentWindow代词只能在菜单脚本中使用,它代表运行时菜单所在的窗口。4)Super代词在编写控件或者对象的子对象的程序时,可以调用祖先的程序,用户可以直接使用祖先对象的名称调用它们,也可以使用Super来引用直接双亲。,4.3.8 保留字,保留字是PowerBui
8、lder内部使用的一组单词,有特殊的含义,不能再把他们用作标识符。,4.3.9 事件处理程序的编写环境,4.4 数据类型与变量说明,与其它编程语言类似,PowerScript提供了丰富的数据类型,主要包括标准数据类型、系统对象数据类型、任意数据类型和枚举类型。,4.4.1 标准数据类型,Blob:二进制大对象,用于存储大量数据,例如图像、大文本等。boolean(布尔型),布尔变量有两个值:true和false,分别表示真和假。创建布尔变量时,其初始值是false。char或character(字符型),该类型变量用于存储一个ASCII字符。date(日期型),日期包含年、月、日,年月日之间用
9、连接符(-)连接。Datetime(日期时间型),仅用于访问数据库的Datetime型数据。Decimal(带符号十进制数),最高精度为18位。Double(带符号浮点数),15位有效数字,范围从2.2E-308到1.7E+308。real(实型),精度6位,范围从1.17E-38到3.4E+38,实型变量被创建时的初始值是0。,integer或int(整型),整数的取值范围是从-32768到32767。Long(长整型),32位带符号整数。string(字符串型),字符串要用引号(单引号或双引号)括起来。字符串变量中可以包含字母、数字或符号,其变量长度在0到65536之间,字符串常量最大长度
10、可达1024。time(时间型),包含小时、分钟、秒,小时、分钟、秒之间用冒号(:)分隔。UnsignedInteger或Uint(无符号整型),16位无符号整数。Unsignedlong,32位无符号整数。还有any类型。,4.4.2 系统对象数据类型,在Pb中,窗口、选单、各种控件都是系统对象,每一种系统对象实际上都是定义在Pb内部的一种数据类型。通常我们不必把这些对象当作数据类型来考虑,而只需要通过工具栏或选单定义他们即可,因为他们都是可视化的对象。有些情况下,需要动态地处理窗口、选单或控件等系统对象时,就需要定义系统对象数据类型。例如:window mywin/说明窗口变量可以使用浏览
11、器Browser查看PB所支持的系统对象。,4.4.3 枚举类型,枚举类型是PB定义的特殊常量,常用于对象或控件的属性、系统函数的参数等。但在PowerScript中我们不能定义自己的枚举类型,而只能按系统要求使用它。枚举类型实际上是一组值,每个值都以英文单词开始,以感叹号!结束,例如yesno!。例如:将单行文本编辑器的对齐方式设置为居中对齐:Sle_1.aligment=Center!,4.4.4 变量的声明,变量(variable)是在程序执行时其值可变的量。在Pb中,变量在使用前,要先予以说明。系统预定义的5个全局变量除外(SQLCA、SQLDA、SQLSA、Error、Message
12、)。1.普通变量声明语法结构:数据类型 变量名=初值,变量名=初值,其中方括号中的内容是可选项。变量未赋初值,系统会自动赋给变量默认值。如:数值型变量的默认初值是0。注意:变量的初值是在编译时给定的。如:date dd1,dd2=today()dd1=today()其中dd1没有被初始化,但dd2被初始化成系统日期。,2.Blob型变量的声明语法:Blob大小 变量名“大小”指明Blob变量以字节为单位的长度,默认该项时,默认长度为0,且系统会根据实际数据自动调整其长度。例如:Blob100 ib_Emp_picture/声明一个长度为100字节的blob性实例变量Blob变量不能赋初值。3.
13、Dec变量的声明语法:dec精度 变量名=初值其中精度是整数,指定小数点后的数字位数,若未指定,则以赋值时给定的精度为准。例如:Dec4 lc_rate1/声明小数点后4位数字的变量,4.4.5 变量数组,数组代表一系列具有相同类型的变量,他们用一个变量名,通过下标访问数组中的每个元素。例如:Integer person30/声明整型数组person,他有30个元素,下标从1到30Integer num3 to 10/下标从3到10,共8个元素Real lr_Array10,10/声明一个二维数组,共10*10个元素,4.4.6 变量的作用域,变量的作用域就是变量使用的范围。根据变量的作用域可
14、将变量分为四种类型:全局变量Global、实例变量Instance、共享变量Shared、局部变量Local。1.全局变量的作用域最大,它在应用程序的任何地方都可以使用。2.实例变量是某个特定对象的实例化。可以在应用对象、窗口对象、用户对象或菜单对象的Script编辑器中定义它,他的作用范围不仅在所在对象的全部事件及函数,而且包括该对象的所有控件和函数。若在定义范围之外使用它,则要通过点符号(.)完成。3.共享变量并不常用,只在特定情况下才会用到。共享变量是静态变量。在一个对象内定义,可以在该对象内部的任何地方被使用。同一个类的所有实例共享这种变量。共享变量在对象关闭和再次打开的时候仍然保持它
15、自己的值。4.局部变量只能在某程序段或函数内部有效,可以在过程、代码、函数内部声明和使用局部变量,但在声明局部变量的范围之外就不能使用局部变量,在不同的函数内部或事件脚本范围内局部变量可以重名,不会引起混乱。5变量的优先级四种变量的优先级由高到低依次为:局部变量实例变量全局变量共享变量。,4.4.7变量的命名规范,PowerScript对变量的命名约定了命名规范,即变量名中包含标识变量作用域和数据类型的代词。变量的命名规范见下表:,4.4.8 常量,常量就是在程序运行过程中不能改变的量,声明常量就是在声明的常量标识符的前面加上关键字constant就可以了。常量声明语法格式为:constant
16、 数据类型 常量名=值例如,constant real pi=3.14/声明常量常量在声明时必须赋值。声明常量可以提高程序的可读性,使程序易于修改。,4.5 操作符,PowerScript支持的运算符可分为四种类型:算术运算符、关系运算符、逻辑运算符和连接运算符。,1、算术操作符,算术操作符有5个:+、-、*、/、,此外PowerScript还提供了一组扩展的算术操作运算符(与C语言中使用的算术操作符相同):+、-、+=、-=、/=、*=、=。,2、关系操作符,关系操作符用来对相同类型的量进行大小比较运算,比较的结果为TRUE、FALSE、NULL三者之一。常用于条件语句和循环语句。关系操作符
17、有:=、=。,3、逻辑操作符,逻辑操作符用来对布尔型的量进行运算,结果是True或False。有三个逻辑操作符:not、and、or。,4、连接操作符,连接操作符只有一个,就是符号“+”,用于把两个String型或Blob型变量的内容连接在一起,形成新的字符串或Blob型数据。例:test=中国+北京,在表达式中,运算按操作符的特定次序进行,这种次序就是操作符的优先级。当然,使用括号可以改变运算次序。优先级顺序如下:()+(正号)、-(负号)、+、-*、/+、-=、=、NOTANDOR,5、操作符的优先级,创建与释放对象实例,1、创建对象实例对非可视的系统对象类型,使用CREATE语句创建对象
18、实例。语法一:objectvariable=CREATE objecttype例如:transacrion DBTrans/声明事务对象变量DBTransDBTrans=CREATE transaction/创建事务对象实例DBTrans.DBMS=“ODBC”,2、释放对象实例用create语句创建的对象实例在使用完毕后应该及时释放,以使对象实例占据的内存资源可以重新使用。释放对象实例的语句是DESTROY,释放之后,该对象实例不能再被引用。语法:DESTROY objectvariable例如:DESTROY DBTrans3、收集废弃对象收集废弃对象是指PB从内存中把失去引用的对象删除,
19、因为应用程序已经无法使用这些对象,白白消耗系统资源。GarbageCollect()函数立即执行收集废弃对象功能,应用程序执行该函数时,PB识别未用对象并删除该对象及其类定义所占用的内存空间。,4.7条件语句,1、IF语句IF THEN 语句是一个选择分支结构语句。它有单行和多行两种格式。单行IF THEN语句的一般格式为:IF condition THEN action1 ELSE action2 其中condition 是一个条件表达式,action1和action2是一条语句。如果condition结果为TRUE,执行action1语句,否则执行action2语句。多行IF THEN语句
20、的一般格式为:IF condition1 THEN action1 ELSEIF condition2 THEN action2 ELSE action3 END IF其中condition1和condition2是条件表达式,action1、action2和action3是一条或者多条语句。,2、CHOOSE CASE语句CHOOSE CASE语句根据测试表达式的值选择不同操作,语法格式:CHOOSE CASE testexpressionCASE expresssionliststatementblockCASE expresssionliststatementblockCASE ELSE
21、 expresssionliststatementblockEND CHOOSE其中,testexpression是测试表达式,expressionlist是判断表达式,statementblock是满足条件时执行的语句块,方括号表示该成分可以省略。判断表达式可以使用如下的形式:(1)用逗号风格的一组数据,例如:2,4,5(2)用TO表示一个区间范围,例如2TO15(3)用IS代表测试值,后跟关系操作符和比较值,例如:IS30(4)组合运用上述三种方法,并用逗号进行分隔。,4.8循环语句,1.Do Loop循环,DOLOOP是一个通用的循环语句。在DOLOOP语句中,DO表示循环开始,它有四种
22、形式:1 DO UNTIL conditionstatementsLOOP其中,condition为循环条件,statements为循环体。DO UNTIL语句执行循环体的语句直到UNTIL后面的条件表达式结果为TRUE。如果在第一次条件表达式的值就为TRUE,则循环体中的语句不会被执行。2 DO WHILE conditionstatementsLOOPDO WHILE语句在WHILE后的表达式结果为TRUE时,执行循环体中的语句,如果第一次对表达式求值的结果即为FALSE,则循环体中的语句不会被执行。3 DOstatementsLOOP UNTIL conditionLOOP UNTIL语
23、句在UNTIL后表达式结果为FALSE时执行循环体中的语句,直到表达式结果为TRUE时结束循环。循环体中的语句至少被执行一次。4 DOstatementsLOOP WHILE conditionLOOP WHILE语句当WHILE后面的条件表达式的结果为TRUE的时候,执行循环体中的语句,如果表达式计算结果为FALSE,循环结束。循环体至少被执行一次。,2、FORNEXT循环FOR.NEXT是一个计数循环语句。FOR.NEXT语句的一般格式为:FOR varname=start to end STEP increment statement NEXT 其中,varname 代表循环变量,sta
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- PowerScript 编程 语言

链接地址:https://www.31ppt.com/p-4954654.html