powerscript.ppt
- 文档编号:18665947
- 上传时间:2023-08-25
- 格式:PPT
- 页数:67
- 大小:246KB
powerscript.ppt
《powerscript.ppt》由会员分享,可在线阅读,更多相关《powerscript.ppt(67页珍藏版)》请在冰点文库上搜索。
第3章PowerScript语言3.1语言基础3.1语言基础3.2数据类型数据类型3.3声明的使用3.3声明的使用3.4运算符和表达式3.4运算符和表达式3.5函数和结构3.5函数和结构3.6PowerScript语句语句3.7SQL语句语句3.8游标的使用3.8游标的使用3.9脚本的编写3.9脚本的编写3.10程序举例3.10程序举例PBPBPowerScript是一种高级的、是一种高级的、结构化的第四代(结构化的第四代(4GL)编)编程语言,它的语言成分和大多程语言,它的语言成分和大多数编程语言很相似,但与众不数编程语言很相似,但与众不同之处在于同之处在于它提供了一套完整它提供了一套完整的嵌入式的嵌入式SQL语句语句,开发人,开发人员能够象使用其它语言成分那员能够象使用其它语言成分那样使用他们,这就大大增强了样使用他们,这就大大增强了程序操纵和访问数据库的能力程序操纵和访问数据库的能力。
PowerScript的控制语句以及的控制语句以及嵌入的嵌入的SQL语句利用可视化语句利用可视化工具可以粘贴到程序当中,而工具可以粘贴到程序当中,而不用逐字从键盘输入,提高了不用逐字从键盘输入,提高了编程效率和输入的正确率。
丰编程效率和输入的正确率。
丰富的数据类型和众多的函数进富的数据类型和众多的函数进一步提高了一步提高了PowerBuilder的的适应性和灵活性。
适应性和灵活性。
菜单菜单菜单菜单语言基础语言基础3.1.1断行、续行和注释3.1.1断行、续行和注释3.1.2标识符、空值和特殊字符3.1.2标识符、空值和特殊字符3.1.3保留字3.1.3保留字3.1.4对象、属性、函数和事件的引用方法3.1.4对象、属性、函数和事件的引用方法3.1.5代词3.1.5代词菜单菜单菜单菜单数据类型数据类型3.2.1标准数据类型3.2.1标准数据类型3.2.2系统对象数据类型3.2.2系统对象数据类型3.2.3Any数据类型数据类型3.2.4枚举类型3.2.4枚举类型菜单菜单菜单菜单声明的使用声明的使用3.3.1声明变量3.3.1声明变量3.3.2声明常量3.3.2声明常量3.3.3声明数组3.3.3声明数组3.3.4声明外部函数3.3.4声明外部函数3.3.5作用域3.3.5作用域菜单菜单菜单菜单运算符和表达式运算符和表达式3.4.1算术运算符3.4.2关系运算符3.4.3逻辑运算符3.4.4连接运算符3.4.5运算符的优先级3.4.6表达式菜单菜单菜单菜单函数和结构函数和结构3.5.1函数概述3.5.1函数概述3.5.2定义新函数3.5.2定义新函数3.5.3函数的修改、删除与使用3.5.3函数的修改、删除与使用3.5.4结构概述3.5.4结构概述3.5.5定义新结构3.5.5定义新结构3.5.6结构的修改、删除和使用3.5.6结构的修改、删除和使用菜单菜单菜单菜单POWERSCRIPTPOWERSCRIPT语句语句语句语句3.6.1赋值语句3.6.1赋值语句3.6.2IFTHEN语句语句3.6.3CHOOSECASE语句语句3.6.4FORNEXT语句语句3.6.5DOLOOP语句语句3.6.6CONTINUE和和EXIT语句语句3.6.7GOTO语句语句3.6.8HALT语句语句3.6.9RETURN语句语句3.6.10CALL语句语句3.6.11CREATE语句语句3.6.12DESTROY语句语句菜单菜单菜单菜单SQLSQL语句语句语句语句3.7.1CONNECT语句语句3.7.2DISCONNECT语句语句3.7.3COMMIT语句语句3.7.4ROLLBACK语句语句3.7.5SELECT语句语句3.7.6INSERT语句语句3.7.7UPDATE语句语句3.7.8DELETE语句语句菜单菜单菜单菜单游标的使用游标的使用游标的使用游标的使用3.8.1声明游标3.8.1声明游标3.8.2打开游标3.8.2打开游标3.8.3提取数据3.8.3提取数据3.8.4关闭游标3.8.4关闭游标3.8.5使用3.8.5使用where子句子句菜单菜单菜单菜单脚脚本本的的编编写写3.9.1打开脚本视图3.9.1打开脚本视图3.9.1打开脚本视图3.9.1打开脚本视图3.9.2粘贴脚本3.9.2粘贴脚本3.9.2粘贴脚本3.9.2粘贴脚本菜单菜单菜单菜单程序举例程序举例【例【例3.1】中文小大写金额转换函数的定中文小大写金额转换函数的定义与使用。
义与使用。
【例【例3.2】判断闰年。
判断闰年。
看一看看一看菜单菜单菜单菜单【例3.1】建立一文件“小大金”。
个夹写额在前打的工作空中,建一象当开间创个对库xdx.pbl、一目个标xdx.pbt和一用程序象个应对xdx。
在主工具上栏单击New按,在出钮弹New框中对话选择PBObject卡选项,在其中选择Function,单击OK按,打函板。
钮开数画在函原型定工作定函名数义区义数f_xdx、返回型值类String、参数xxje、型参数类String、方式参数传递Value。
在函脚本函的功数编辑区编写数能代码:
接下一窗口象,命名来设计个测试对为w_xdx,窗口的置“标题设为test”,窗口型“类为main!
”。
窗口上放一掩框个码编辑em_1,置的“并设它Mask”性“属为#.00”(保位小),放置一行框证两数个单编辑sle_1和一命令按。
个钮命令按的“钮text”性置“”,中其“属设为转换选Default”框,复选的“对它clicked”性一行代:
属编写码sle_1.text=f_xdx(em_1.text),此按或直接回,通自定的全局函这样当单击钮车时过义数f_xdx()掩将框码编辑em_1的小金中文大金,在行框写额转换为写额单编辑sel_1中显示出。
输最后,在用程序象应对xdx的“open”事件中一行代:
编写码open(w_xdx)用以打窗口开w_xdx。
菜单菜单菜单菜单【例3.2】任意输入一个年份,判断它是否为闰年。
判断闰年的条件是:
能被任意输入一个年份,判断它是否为闰年。
判断闰年的条件是:
能被4整除但不能整除但不能被被100整除的是闰年(如整除的是闰年(如1992);能被);能被4整除又能被整除又能被400整除的也是闰年(如整除的也是闰年(如2000);其它为非闰年(如);其它为非闰年(如1900、1998、2002)。
)。
我们建立一个文件夹“闰年”。
在当前打开的工作空间中,创建一个对象库我们建立一个文件夹“闰年”。
在当前打开的工作空间中,创建一个对象库leapyear.pbl、一个目标、一个目标leapyear.pbt和一个应用程序对象和一个应用程序对象leapyear。
在主工具栏上单击在主工具栏上单击New按钮,在弹出按钮,在弹出New对话框中选择对话框中选择PBObject选项卡选项卡,在在其中选择其中选择Window,单击,单击OK按钮,打开窗口画板。
按钮,打开窗口画板。
在窗口画板中,设计一个窗口对象,命名为在窗口画板中,设计一个窗口对象,命名为w_main,窗口的标题设置为“判断,窗口的标题设置为“判断闰年”,窗口类型为“闰年”,窗口类型为“main!
”。
窗口上放置一个单行编辑框。
窗口上放置一个单行编辑框sle_1和一个命令按钮和一个命令按钮。
命令按钮的“命令按钮的“text”属性设置为“判断”,选中其“属性设置为“判断”,选中其“Default”复选框,对它的复选框,对它的“clicked”属性编写如下代码:
属性编写如下代码:
integeryearyear=integer(sle_1.textifmod(year,4)=0andmod(year,100)0ormod(year,400)=0thenMessageBox(测试结果测试结果,sle_1.text+是闰年。
是闰年。
)elseMessageBox(测试结果测试结果,sle_1.text+不是闰年。
不是闰年。
)endif这段代码是整个应用程序的核心,它首先从单行编辑框这段代码是整个应用程序的核心,它首先从单行编辑框sle_1中取出用户输入的中取出用户输入的年份,用年份,用integer()函数将其转换为整型数据,然后用函数将其转换为整型数据,然后用If语句判断该年份是否满足闰语句判断该年份是否满足闰年的条件,若满足输出“是闰年”,否则输出“不是闰年”。
输出用的是年的条件,若满足输出“是闰年”,否则输出“不是闰年”。
输出用的是MessageBox()函数,它会弹出一个对话框,标题为“测试结果”,第二个参数是显示的信息函数,它会弹出一个对话框,标题为“测试结果”,第二个参数是显示的信息。
最后,在应用程序对象最后,在应用程序对象xdx的“的“open”事件中编写一行代码:
事件中编写一行代码:
open(w_main)用以打开窗口用以打开窗口w_main。
菜单菜单菜单菜单3.1.1断行、续行和注释断行、续行和注释通常情况下,通常情况下,PowerScript的一条语句的一条语句书写在一行上。
但有时一条语句太长,阅读书写在一行上。
但有时一条语句太长,阅读起来不够方便,可以把一条语句书写在几行起来不够方便,可以把一条语句书写在几行上,用符号上,用符号“&”作为续行标记。
作为续行标记。
注释有两种写法注释有两种写法:
(1)以“以“/”开头,其后书写注释内容,常用于开头,其后书写注释内容,常用于单行注释。
例如:
单行注释。
例如:
/这是一个单行注释这是一个单行注释
(2)以“以“/*”开头,到“开头,到“*/”结尾的部分为注释结尾的部分为注释,便于多行注释。
,便于多行注释。
菜单菜单菜单菜单3.1.2标识符、空值和特殊字符标识符、空值和特殊字符标识符是程序中用来代表变量、标号、函数、窗标识符是程序中用来代表变量、标号、函数、窗口、控件、菜单、对象等名称的符号。
口、控件、菜单、对象等名称的符号。
PowerBuildPowerBuilderer8.0中标识符中标识符的命名规则如下:
的命名规则如下:
(1)必须以必须以字母开头。
字母开头。
(2)其余字符可以是字母、数字和如下的特殊字符:
短其余字符可以是字母、数字和如下的特殊字符:
短横线“横线“-”、下划线“、下划线“_”、美元符号“、美元符号“$”,号码符,号码符号“号“#”和百分符号“和百分符号“%”。
(3)最长最长40个字符,且中间不能插入空格。
个字符,且中间不能插入空格。
变量被赋予空值的途径有变量被赋予空值的途径有两条两条:
(1)从数据库中读到空值。
从数据库中读到空值。
(2)使用使用SetNull()函数将变量设置为空值。
函数将变量设置为空值。
菜单菜单菜单菜单3.1.33.1.3保留字保留字保留字保留字保留字是保留字是PowerBuilder内部使用的内部使用的一组单词,有着特殊的含义,不能再把一组单词,有着特殊的含义,不能再把它们用做标识符。
它们用做标识符。
菜单菜单菜单菜单3.1.4对象、属性、函数和事件的引用方法对象、属性、函数和事件的引用方法PowerBuilder应用程序开发过程实际上就是各种对象的定义和应用程序开发过程实际上就是各种对象的定义和使用过程。
所有对象都有名称,并且通过名称相互区分。
在使用过程。
所有对象都有名称,并且通过名称相互区分。
在PowerScript中,访问对象的属性、函数和事件很简单,就是中,访问对象的属性、函数和事件很简单,就是使用圆使用圆点作为标记符点作为标记符,具体访问对象属性的格式为:
,具体访问对象属性的格式为:
对象名对象名.对象属性对象属性程序访问对象的函数与事件的格式为:
程序访问对象的函数与事件的格式为:
objectname.typecalltypewhenfunctionname(argumentlist)objectname为对象名。
为对象名。
type取值为取值为FUNCTION或或EVENT,用于指明访问函数还是事,用于指明访问函数还是事件,如果省略表示函数。
件,如果省略表示函数。
calltype用于指明用于指明PowerBuilder查找函数的时机,有效取值为:
查找函数的时机,有效取值为:
STATIC(默认值)编译时查找函数,若不存在,产生编译错误(默认值)编译时查找函数,若不存在,产生编译错误,DYNAMIC程序运行时查找函数,若不存在,产生运行错误。
程序运行时查找函数,若不存在,产生运行错误。
when用于指明函数或事件是立即执行还是当前程序段执行完毕用于指明函数或事件是立即执行还是当前程序段执行完毕后执行,取值为:
后执行,取值为:
TRIGGER(默认值)立即执行。
(默认值)立即执行。
POST当前程序段执行完毕后执行。
当前程序段执行完毕后执行。
functionname调用的函数或事件名。
调用的函数或事件名。
argumentlist参数表列。
参数表列。
菜单菜单菜单菜单3.1.53.1.53.1.53.1.5代词代词代词代词PowerScript提供了四个代词:
提供了四个代词:
This、Parent、ParentWindow和和Super。
1This代词代词This代表窗口、用户对象、菜单、应用对象或者代表窗口、用户对象、菜单、应用对象或者控件自身。
控件自身。
2ParentParent可以在窗口的控件、用户对象中的控件和菜可以在窗口的控件、用户对象中的控件和菜单的程序中使用,表示父对象。
当在窗口的控件脚本中使用单的程序中使用,表示父对象。
当在窗口的控件脚本中使用Parent的时候,的时候,Parent当前控件所在的窗口。
当前控件所在的窗口。
3ParentWindow只只能在菜单的脚本当中使用能在菜单的脚本当中使用,它代表运行时,它代表运行时菜单所在的窗口。
菜单所在的窗口。
4Super在编写控件或者对象的子对象脚本时,可以调用祖先在编写控件或者对象的子对象脚本时,可以调用祖先的脚本,可以直接使用祖先对象的名称调用它们,也可以使用的脚本,可以直接使用祖先对象的名称调用它们,也可以使用Super来引用直接双亲。
来引用直接双亲。
菜单菜单菜单菜单3.2.1标准数据类型标准数据类型与其它编程语言类似,与其它编程语言类似,PowerScript提供了丰富的数据类型,主要包括标准提供了丰富的数据类型,主要包括标准数据类型、系统对象数据类型、任意数数据类型、系统对象数据类型、任意数据类型和枚举类型。
据类型和枚举类型。
PowerScript的的标准数据类型标准数据类型菜单菜单菜单菜单3.2.2系统对象数据类型系统对象数据类型菜单菜单菜单菜单在在PowerBuider应用中,可以应用中,可以使用诸如窗口、菜单、命令按钮使用诸如窗口、菜单、命令按钮、列表框和图表等对象,它们就、列表框和图表等对象,它们就是系统对象。
是系统对象。
每一种系统对象实每一种系统对象实际上都是定义在际上都是定义在PowerBuilder内部的一种数据类型。
内部的一种数据类型。
3.2.3Any3.2.3Any数据类数据类型型PowerBuilder的的Any类型,是一个灵类型,是一个灵活的数据类型,可以具有与所赋值相对活的数据类型,可以具有与所赋值相对应的类型。
应的类型。
Any类型的变量还可以包类型的变量还可以包括括结构、对象和数组结构、对象和数组。
菜单菜单菜单菜单3.2.4枚举类型枚举类型枚举类型是枚举类型是PowerScript语言赋值语言赋值时使用的一组常量。
枚举类型通常用来时使用的一组常量。
枚举类型通常用来设置对象(或控件)的属性或是作为函设置对象(或控件)的属性或是作为函数的参数。
数的参数。
枚举型数据以枚举型数据以感叹号(!
)结尾。
感叹号(!
)结尾。
菜单菜单菜单菜单3.3.1声明变量声明变量变量在程序运行过程中被赋值,在执行各种运算和控制时变量在程序运行过程中被赋值,在执行各种运算和控制时其值可以改变。
其值可以改变。
数据类型变量名数据类型变量名=初值初值,变量名变量名=初值初值.括号里的内容为可选项。
其中,数据类型为任何标准类型括号里的内容为可选项。
其中,数据类型为任何标准类型、枚举类型、在对象浏览器中出现的对象或者已经定义的用、枚举类型、在对象浏览器中出现的对象或者已经定义的用户对象,变量名为任何合法标识符。
户对象,变量名为任何合法标识符。
在声明变量时可以直接把常量或表达式的值赋给它,但应在声明变量时可以直接把常量或表达式的值赋给它,但应注意一点,变量初始化是在编译时而不是运行时完成的。
因注意一点,变量初始化是在编译时而不是运行时完成的。
因此,为变量赋初值时,初值不能随状态而改变。
此,为变量赋初值时,初值不能随状态而改变。
可以在一个语句同时声明多个相同类型的变量,变量之间可以在一个语句同时声明多个相同类型的变量,变量之间用逗号分隔。
用逗号分隔。
菜单菜单菜单菜单3.3.3声明数组声明数组数组是指有一定顺序关系的若干变量数组是指有一定顺序关系的若干变量的集合。
组成数组的变量称为该数组的的集合。
组成数组的变量称为该数组的元素。
元素。
声明一个数组与声明变量类似,但在声明一个数组与声明变量类似,但在标识符后面要有方括号,方括号内用来标识符后面要有方括号,方括号内用来表示数组的维数和每一维元素的个数。
表示数组的维数和每一维元素的个数。
在使用数组时应注意一点:
无论是动在使用数组时应注意一点:
无论是动态数组还是固定元素个数的数组,使用态数组还是固定元素个数的数组,使用时一定时一定不要越界不要越界,否则会带来编译错误,否则会带来编译错误。
菜单菜单菜单菜单3.3.4声明外部函数声明外部函数外部函数是指使用外部函数是指使用PowerScript之外的语言编写的保存在动态链接库之外的语言编写的保存在动态链接库(DLL)中的函数,用户可以使用任何支持动态链接库的语言编写外部函)中的函数,用户可以使用任何支持动态链接库的语言编写外部函数。
数。
在使用动态链接库中的外部函数之前,用户必须在使用动态链接库中的外部函数之前,用户必须先声明先声明它。
按照外部函它。
按照外部函数的使用范围,可以把它分为两种类型:
数的使用范围,可以把它分为两种类型:
Local和和Global型型。
Local在限在限定的范围内可以使用,而定的范围内可以使用,而Global型则在整个应用中都能被调用。
声明外部型则在整个应用中都能被调用。
声明外部函数的语法格式为:
函数的语法格式为:
accessFUNCTIONreturndatatypename(REFdatatype1arg1,.,REFdatatypenargn)LIBRARYlibnameALIASFORextname其中,其中,access指明局部函数的使用范围,可以使用指明局部函数的使用范围,可以使用PUBLIC、PRIVATE和和PROTECTED三个关键字,三个关键字,PUBLIC声明该函数可以在应用程序的所声明该函数可以在应用程序的所有脚本中使用,有脚本中使用,PRIVATE表示该函数只能在脚本所在的对象中使用,表示该函数只能在脚本所在的对象中使用,PROTECTED允许在该函数在其所在对象及其继承对象中被调用。
允许在该函数在其所在对象及其继承对象中被调用。
returndatatype是返回值的数据类型。
是返回值的数据类型。
name是在是在DLL中定义的函数名。
中定义的函数名。
REF说明说明它后面的参数是被引用传递的。
它后面的参数是被引用传递的。
datatypearg是参数类型和参数名。
是参数类型和参数名。
LIBRARY关键字和关键字和libname指明了包含函数的动态链接库文件名(指明了包含函数的动态链接库文件名(libname中中不要包含路径),动态链接库所在的目录必须满足以下四种情况中的一种:
不要包含路径),动态链接库所在的目录必须满足以下四种情况中的一种:
当前目录、当前目录、windows目录、目录、windows的的system子目录、子目录、dos的的path目录,这样可以保证在应用程序运行时,外部动态链接库能够被应用程序找目录,这样可以保证在应用程序运行时,外部动态链接库能够被应用程序找到。
如果在到。
如果在DLL或数据库中的函数名不能在或数据库中的函数名不能在PowerScript脚本中引用,脚本中引用,ALIASFORextname可以建立可以建立PowerScript和外部函数之间的联系。
和外部函数之间的联系。
在声明外部函数时,应当使函数参数与外部函数定义的参数类型相匹配在声明外部函数时,应当使函数参数与外部函数定义的参数类型相匹配。
菜单菜单菜单菜单3.3.5作用域作用域变量的作用域也就是变量的有效范围。
有变量的作用域也就是变量的有效范围。
有全局、共享、实全局、共享、实例和局部例和局部四种。
四种。
1全局变量全局变量全局(全局(Global)变量)变量可以在整个应用程序内被访问,它可以在整个应用程序内被访问,它存储在应用程序对象中。
存储在应用程序对象中。
2共享变量共享变量共享(共享(Shared)变量)变量在一个对象内定义,可以在该对象在一个对象内定义,可以在该对象内部的任何地方被使用。
同一个类的所有实例共享这种变量。
内部的任何地方被使用。
同一个类的所有实例共享这种变量。
3实例变量实例变量实例(实例(Instance)变量)变量是在一个对象内定义的,可以在是在一个对象内定义的,可以在这个对象内部的任何地方使用。
实例变量是和这个对象内部的任何地方使用。
实例变量是和对象的应用实例对象的应用实例相关联的,而不是和对象相关联。
相关联的,而不是和对象相关联。
4局部变量局部变量局部(局部(Local)变量就是在脚本内定义的变量。
)变量就是在脚本内定义的变量。
5变量的优先级变量的优先级四种变量的优先级四种变量的优先级由高到低由高到低依次为:
依次为:
局部变量实例变量局部变量实例变量全局变量共享变量。
全局变量共享变量。
菜单菜单菜单菜单3.3.2声明常量声明常量PowerScript编辑器可以使用常量。
编辑器可以使用常量。
常常量也有自己的作用域量也有自己的作用域,用户可以根据需要定,用户可以根据需要定义任何标准类型的、任何作用域的常量。
声义任何标准类型的、任何作用域的常量。
声明时,需要在常量名称前面加上关键字明时,需要在常量名称前面加上关键字CONSTANT。
常量声明的语法格式为常量声明的语法格式为:
CONSTANTaccessdatatypeconstname=value其中,其中,access为存取权限,为存取权限,datatype为为数据类型,数据类型,constname为常量名,为常量名,value为常量值。
为常量值。
菜单菜单菜单菜单3.4.1算术运算符算术运算符PowerScriptPowerScript支持的运算符可支持的运算符可分为四种类型:
算术运算符分为四种类型:
算术运算符、关系运算符、逻辑运算符、关系运算符、逻辑运算符和连接运算符。
和连接运算符。
菜单菜单菜单菜单3.4.2关系运算符关系运算符关系运算符关系运算符用于比较两个操作数用于比较两个操作数,比较的结果为,比较的结果为TRUE、FALSE、NULL三者之一。
三者之一。
菜单菜单菜单菜单3.4.33.4.3逻辑运算符逻辑运算符逻辑运算符逻辑运算符用于构成其结果为用于构成其结果为TRUE或或FALSE的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- powerscript