《PowerBuilder案例开发程序设计教程》-陈刚-电子教案 chap7

上传人:E**** 文档编号:89400770 上传时间:2019-05-24 格式:PPT 页数:43 大小:548.50KB
返回 下载 相关 举报
《PowerBuilder案例开发程序设计教程》-陈刚-电子教案 chap7_第1页
第1页 / 共43页
《PowerBuilder案例开发程序设计教程》-陈刚-电子教案 chap7_第2页
第2页 / 共43页
《PowerBuilder案例开发程序设计教程》-陈刚-电子教案 chap7_第3页
第3页 / 共43页
《PowerBuilder案例开发程序设计教程》-陈刚-电子教案 chap7_第4页
第4页 / 共43页
《PowerBuilder案例开发程序设计教程》-陈刚-电子教案 chap7_第5页
第5页 / 共43页
点击查看更多>>
资源描述

《《PowerBuilder案例开发程序设计教程》-陈刚-电子教案 chap7》由会员分享,可在线阅读,更多相关《《PowerBuilder案例开发程序设计教程》-陈刚-电子教案 chap7(43页珍藏版)》请在金锄头文库上搜索。

1、第7章 PowerScript语言,7.1 PowerScript基本概念 7.1.1 标识符 标识符必须以英文字母或者下划线“_”开头。 标识符不能是保留字。 标识符只能由字母、数字和如下特殊字符组成:短划线“-”,下划线“_”,美元符“$”,号码符“#”和百分号“%”。 标识符不区分大小写字母。 标识符不能超过40个字符,且中间不能出现空格。,7.1.2 保留字:保留字不能单独作为一个标识符,但可以作为单词组合的其中一个单词。 7.1.3 代词,7.1.4 空值(NULL) 空值(NULL)表示未定义或未知的。空值是PowerBuilder与数据库交换数据时使用的一种特殊值。 所有Powe

2、rBuilder变量数据类型都支持空值,但不能将空值作为变量的默认初始值。 给变量赋空值的途径有两条: 从数据库中读到空值 用SetNull函数赋值 测试变量或表达式的值是否为空值应该调用IsNull( )函数。,7.1.5 特殊ASCII字符,7.1.6 断行、续行和注释 1语句的断行、续行和分隔 分隔符:行分隔符 “;”。 断行: 续行:续行符“&” 注意:不能在标识符或保留字的中间续行。不需要在SQL语句中用续行符。 2注释 行注释:以双斜杠“/”开始到行结束。 块注释:以“/*”开始到“*/”结束。,7.2 数据类型 7.2.1 标准数据类型 7.2.2 系统对象数据类型 在Power

3、Builder应用中,窗口、菜单、各种控件都是系统对象,每一种系统对象实际上是定义在PowerBuilder内部的一种数据类型。,7.2.3 任意数据类型 Any类型,是一种可变的数据类型,Any类型的变量能使自己变成赋给它的数据值的类型。 使用Any类型时应注意以下几点: 访问Any类型变量前必须先赋值。 Any类型变量参加运算时,必须保证所有参加运算的数据值的类型一致,否则会发生错误。 当函数原型中不允许Any类型作为函数参数时,需要使用类型转换函数进行类型转换。 对那些可以确定数据类型的变量,应避免使用Any类型。,7.2.4 枚举类型 枚举类型实际上一组固定的值,这些值通常以英文单词开

4、始,以“!”结尾。,7.3 变量与常量 无论是常量或是变量在使用前都应先声明。 7.3.1 变量 数据类型名 变量名 = 初始值 数据类型名 变量名 = 初始值 , 变量名 = 初始值 , 变量名 = 初始值 , 变量初始化是在编译时进行的。 7.3.2 常量 CONSTANT 数据类型 常量名 = 值 其中常量名一般用大写字母表示,以便将其和变量名区别开来。 注意,声明常量时不能在一行中进行多项声明。,7.3.3 数组 数据类型 数组名d1,dn=初值 Integer li_data6 Integer li_data2 to 7 Integer li_data Integer li_data

5、2,3 ,7.3.4 变量的作用域 1全局变量(Global) 全局变量可以在整个应用程序中被访问,它的作用域是整个应用程序。全局变量名以字符g开头。 2实例变量(Instance) 实例变量属于某个对象(应用程序、窗口、用户对象或菜单)并与该对象相关联,只有在该对象及与该对象相关的控件的脚本中才能使用其定义的实例变量。,3共享变量( Shared ) 共享变量只能在定义共享变量的对象和与该对象相关的控件的脚本中访问共享变量。但是,共享变量与实际的类定义相关联,而与对象实例无关。 共享变量是一种静态变量,将保存其最后的设置。 4局部变量( Local ) 局部变量在使用它的事件或函数中声明,它

6、仅属于声明它的脚本,在该程序段的任何地方均可访问局部变量。,7.4 运算符和表达式 7.4.1 算术运算符,扩展算术运算符,7.4.2 关系运算符 =、=、 7.4.3 逻辑运算符 NOT、AND、OR 7.4.4 连接运算符 连接运算符“+” 。,7.4.5 运算符的优先级,7.4.6 表达式 数值数据类型转换级别,7.5 基本语句 7.5.1 赋值语句 variablename = expression 注意:因为等号“”在表达式中可以作为关系运算符,所以在赋值语句中,不能实现连续赋值。,7.5.2 条件控制语句 1IFTHEN语句 (1)单行IFTHEN语句 IF condition T

7、HEN action1 ELSE action2 (2)多行IFTHEN语句 IF condition1 THEN Action1 ELSEIF condition2 THEN Action2 ELSE Action3 END IF,2CHOOSE CASE语句 CHOOSE CASE testexpression CASE expressionlist statementblock CASE expressionlist statementblock CASE expressionlist statementblock CASE ELSE statementblock END CHOOSE,

8、判断表达式可以有如下几种形式: (1)用逗号分隔一组数据。 (2)用TO表示一个区间。 (3)用IS代表测试值,与关系运算符一起构成关系表达式 (4)用前三种形式的组合,用逗号进行分隔。,7.5.3 循环控制语句 1DOLOOP语句 (1)DO UNTIL conditionLOOP语法格式为: DO UNTIL condition Statementblock LOOP (2)DO WHILE conditionLOOP的语法格式: DO WHILE condition Statementblock LOOP,(3)DOLOOP UNTIL condition的语法格式: DO Statem

9、entblock LOOP UNTIL condition (4)DOLOOP WHILE condition的语法格式为: DO Statementblock LOOP WHILE condition,2FORNEXT语句语法格式为: FOR varname = start TO end STEP increment Statementblock NEXT 3GOTO语句 GOTO语句的语法格式为: GOTO label 语句标号可以出现在程序的任何位置,但必须在一行语句的最前面,并且后面要跟冒号。,4循环嵌套 5EXIT语句 6CONTINUE语句,7.5.4 其它语句 1CALL语句:在

10、继承对象中调用祖先对象的脚本。 CALL ancestorobjectname controlname:event 2RETURN语句 RETURN expression 3HALT语句 HALT语句用于终止应用程序的运行。 HALT CLOSE,4CREATE语句 CREATE语句用于创建对象实例。 语法一: Objectvariable = CREATE objecttype 语法二: Objectvariable = CREATE USING objecttypestring 注意:CREATE语句用于创建非可视对象,标准数据类型和结构体不用CREATE语句创建,当对象的AutoInst

11、antiate属性被设置为TRUE时不需要使用CREATE语句。 5DESTROY语句 DESTROY Objectvariable,7.6 常用标准函数 7.6.1 MessageBox( )函数 MessageBox ( title, text ,icon , button ,default ) 7.6.2 Open( )和Close( )函数 Open(w_name) Close(w_name) 函数调用成功则返回1,否则返回-1。 7.6.3 数据类型检查函数 Is*(string)、IsNumber( )、IsDate( )、IsTime( ) 、IsNull ( ),7.6.4 数

12、据类型转换函数,7.6.5 Run( )函数 Run(Program ,state ) 补充 :触发PB事件 TriggerEvent函数:立即触发窗口和控件事件的函数。 PostEvent函数:事件被送往窗口和控件事件的队列中的函数。 Event函数:利用圆点调用窗口和控件事件的函数。,7.7 自定义函数和结构 自定义函数也叫用户函数,有全局函数和对象函数两种。 结构也可以分为全局结构和对象结构两种。,7.7.1 自定义函数 参数的传递方式有以下三种: Value 表示值传递,将实际参数的值传递给函数。 Reference地址传递,把实际参数的地址传递给函数,如果函数修改了形式参数的值,则实

13、际参数的值也就被修改了。 Readonly只读地址传递,把实际参数的地址传递给函数,但不允许修改参数的值。 编译完后的自定义全局函数不会自动保存,也不会关闭Function窗口。全局函数可作为独立的PowerBuilder对象保存在库文件中。 调用用户自定义的函数和调用标准函数一样,可以在脚本或其它用户自定义的函数中调用。调用时注意参数的类型和个数必须和定义时的一致。,2自定义对象函数 自定义对象函数与某对象相联系,是为具体的对象(如窗口、菜单、用户对象或应用程序)而定义的,它是这些对象的一部分,与对象保存在一起。 自定义对象函数的访问级别可以改变,有三个级别分别为: Public可以在应用程

14、序的任何脚本中调用该函数 Private只能在定义该函数的对象脚本中才能调用该函数,不能在该对象的后代脚本中调用该函数。 Protected可以在该函数的对象以及它的后代的脚本中调用该函数。 调用自定义对象函数时,如果在对象中调用,则可直接调用,如果在对象外调用,必须在函数名前指定对象名。,7.7.2 结构 结构也可以分为两种类型:全局结构和对象结构。 1全局结构 全局结构,在应用程序的任何地方都可以访问的结构。全局结构作为独立的对象存放在库中。 2对象结构 对象结构是在具体的对象(如窗口、菜单、用户对象或应用程序)中定义的,它是这些对象的一部分,与对象保存在一起。与函数不同的是不能为结构定义

15、访问级别,一般只能在对象内使用,或当该对象打开时,可以在其它对象脚本中使用该结构。,7.8 嵌入式SQL语句 对于SQL语句,PowerBuilder在将其发送到DBMS之前,并不做任何处理,而由DBMS完成相应操作,最后PowerBuilder得到处理结果。 整个SQL语句可以写在一行,也可以写成多行格式,不需使用断行续行符,只要在整个语句结束处加上一个分号(;)即可。 在SQL语句中使用变量时须在变量前加个冒号(:)(通常称做绑定变量),多个变量或常量之间用逗号(,)分隔。,7.8.1 数据库连接的建立与断开 1使用CONNECT建立与数据库的连接 功能:通过事务对象将应用程序与数据库建立

16、连接。 CONNECT USING TransactionObject; 2使用DISCONNECT断开与数据库的连接 断开与数据库的连接。 DISCONNECT USING TransactionObject;,7.8.2 提交与回滚事务 1提交事务语句COMMIT COMMIT语句提交事务,完成数据库的物理修改。 COMMIT USING TransactionObject; 2回滚事务语句ROLLBACK 放弃自上一个COMMIT、ROLLBACK或CONNECT语句以来的所有数据库操作 ROLLBACK USING TransactionObject ;,7.8.3 单行检索语句SELECT SELECT Field

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号