PowerBuilder10实用教程清华大学出版社2020年2月21日第1页第1章PowerBuilder10.0概述教学目标教学重点教学过程PowerBuilder10实用教程清华大学出版社2020年2月21日第2页第2章PowerBuilder10.0编程基础教学目标教学重点教学过程PowerBuilder10实用教程清华大学出版社2020年2月21日第3页教学目标熟悉和掌握PowerBuilder10.0的基本语法规则对PowerBuilder10.0有初步的认识和了解,并能够编写一些简单的小程序PowerBuilder10实用教程清华大学出版社2020年2月21日第4页教学重点标识符命名规则注释语句基本控制语句函数和结构PowerBuilder10实用教程清华大学出版社2020年2月21日第5页教学过程语言特点PowerScript基础语句控制语句系统函数自定义函数函数的重载和超越使用外部函数结构PowerBuilder10实用教程清华大学出版社2020年2月21日第6页2.1语言特点PowerScript语言的语法和组织结构与传统的Basic相似,但是它格式更自由,在编写程序代码时,编译器忽略它的空格、缩进、空行等。PowerScript语言不仅支持标准的SQL语句,而且还提供了一套完整的嵌入式SQL语句,大大增强了程序操作和访问数据库的能力。PowerScript语言不仅支持常规的数据类型,同时也支持用于处理多媒体的二进制对象数据。PowerBuilder10实用教程清华大学出版社2020年2月21日第7页2.2PowerScript基础语句PowerScript语言基础做简单介绍,包括标识符、保留字、注释和代词、数据类型、变量和常量、数组、运算符和表达式等。读者可以与其他程序语言的相关知识相对比,以加深对该语言的理解。PowerBuilder10实用教程清华大学出版社2020年2月21日第8页标识符标识符是程序中用来代表变量、标号、函数、窗口、菜单、控件及对象等名称的符号。在PowerBuilder中标识符的命名必须遵循以下命名规则:–必须以字母和下划线开头。–保留字不能作为标识符。–除了首字母其余字符可以是字母、数字以及下述特殊符号:下划线(_)、连字符(.)、美元符号($)、和百分号(%)。–最大有效字符长度为40,中间不能出现空格或指定字符以外的其他字符。–标识符不区分大小写,如Part1、PART1、part1是同一个标识符。PowerBuilder10实用教程清华大学出版社2020年2月21日第9页保留字保留字是PowerBuilder语言中具有特殊用途的一组单词,不能把保留字作为标识符使用,否则PowerBuilder将会给出编译错误。保留字同标识符一样,不区分大小写,但在程序中一般把保留字书写为大写形式。PowerBuilder10实用教程清华大学出版社2020年2月21日第10页注释注释是在程序中用来说明某些语句的作用的文本,或者是程序开发者在程序中暂时屏蔽的代码段。在程序中,它是不会被编译执行的。–行注释用来对单行语句进行注释,它可以是一整行。行注释以双斜线“//”开始,其后书写注释内容。如:num=num1*23–块注释既可以注释单独一行,也可以注释一段或连续几段。块注释以“/*”开头,以“*/”结尾,中间为注释内容。如:num=num1+num2PowerBuilder10实用教程清华大学出版社2020年2月21日第11页代词PowerBuilder的代词用于指代特定的对象或控件。使用代词可以避免因对象或控件名被修改等情况而使引用出错。主要有以下三个代词:–This:在为一个窗口、自定义用户对象、菜单、应用对象或控件编写脚本时,This表示正在处理的对象和控件本身。–Super:在编写继承的对象或者控件代码时,有两种方式可供选择,一种是直接使用祖先对象的名称;一种是使用Super,用于调用祖先对象中的函数,但是不能用于调用与祖先窗口控件相关的脚本,只能在祖先的直接后代的函数和事件中使用Super,否则会编译出错。–Parent:用于窗口中的控件、自定义用户对象的控件和菜单编写脚本,指示包含控件的窗口、自定义用户对象和当前菜单的上层菜单项。PowerBuilder10实用教程清华大学出版社2020年2月21日第12页数据类型数据类型是编程语言中的一个重要概念,它表示数据的特点。在PowerScript语言中共有4种数据类型,它们分别是:标准数据类型、Any数据类型、系统对象数据类型以及枚举数据类型。PowerBuilder10实用教程清华大学出版社2020年2月21日第13页标准数据类型标准数据类型包括整型(Integer或Int)、字符型(Character或Char)、字符串型(String)、布尔型(Boolean)、日期型(Date)等,可以用这些数据类型声明变量、常量或数组中。PowerBuilder10实用教程清华大学出版社2020年2月21日第14页系统对象数据类型系统对象数据类型是PowerScript语言中比较特殊的数据类型。在PowerBuilder应用程序中,所有用户用到的系统对象,例如窗口、菜单、按钮、列表框、图形等,都被认为是系统对象数据类型。下面的代码声明了菜单和窗口变量。PowerBuilder10实用教程清华大学出版社2020年2月21日第15页Any数据类型Any数据类型是一种可以变化的数据类型,可以用来存储任何类型的数据,包括标准数据类型、对象、结构或矩阵在内的任何指定的数据类型。一个Any数据类型的变量类型并不是固定的,它取决于赋值变量的数据类型。但是当把一个Any数据类型的变量赋值给另一变量时,必须要明确该Any变量的实际数据类型,否则就有可能发生数据类型不匹配的错误。PowerBuilder10实用教程清华大学出版社2020年2月21日第16页枚举数据类型枚举数据类型是PowerScript语言中的一种特殊的数据类型。开发人员可以使用两种方式使用枚举数据类型:作为函数的参数和指定一个对象或控件的属性。枚举数据类型的变量能够被赋上固定值,并以感叹号(!)结尾。–例如,BackColor是枚举类型,用来指定该单行编辑框边框的颜色。它的有效取值为:Yellow!(黄色)、Green!(绿色)、Black!(黑色)、Red!(红色)。指定一个单行编辑框的sle_1中所显示的边框颜色为“红色”的代码如下:sle_1.BackColor=Red!PowerBuilder10实用教程清华大学出版社2020年2月21日第17页变量与常量变量就是在应用程序的使用中可以改变其自身值的数据标识。在PowerBuilder中,根据作用范围变量可以分为全局变量、实例变量、共享变量和局部变量4种。–全局变量(Global):它是独立于应用程序中的其他对象,在整个应用程序中都可以访问到的变量。–实例变量(Instance):它属于单独的一个对象,是对象的一个属性。–共享变量(Shared):它属于一个对象的定义,可以被这个对象的所有实例所共享。共享变量在对象关闭和再次打开的时候仍然保持它自己的值。–局部变量(Local):它是一个临时变量,存活范围仅在定义它的脚本程序中。脚本程序运行完毕,变量即被销毁。与变量不同的是,常量在声明之后是不会再改变的,试图对它进行二次赋值,会引发编译错误。PowerBuilder10实用教程清华大学出版社2020年2月21日第18页数组数组是一系列有相同数据类型的有序数据的集合。数组中的所有元素都共用一个变量名,通过下标可以访问数组中的每一个元素。要声明一个数组只要在变量名后加上方括号即可。对于固定数组,还可以在方括号中指定数组的维数。如果声明数组时括号中没有指定维数,则此数组是变长数组,在运行时可以根据需要调整数组的大小。PowerBuilder10实用教程清华大学出版社2020年2月21日第19页运算符PowerScript中,运算符就是连接数据构成表达式,并完成一定运算的符号。有4大类运算符:算术运算符、关系运算符、连接运算符和逻辑运算符。–算术运算符是对数字数据进行运算的。–关系运算符用来比较两个或者多个操作数,比较的结果为以下3个值之一:TRUE、FALSE、NULL。关系运算符可以用于所有数据类型的比较。–逻辑运算符多用于比较判断语句中用于构建结果为TRUE或FALSE的Boolean表达式。–连接运算符,用于把两个或者多个String型或Blob型的变量连接到一起,形成一个新的字符串的操作,PowerScript语言用符号“+”表示连接字符串的操作。PowerBuilder10实用教程清华大学出版社2020年2月21日第20页表达式表达式是由运算符和操作数组成的、符合PowerScript语法规则的式子。运算对象可以是PowerScript语言中的任何数据类型。在表达式中,必须使用与运算对象的数据类型相兼容的运算符,如数值型数据可以使用乘或除作为运算符。具有两种类型的表达式,它们分别是数字类型表达式和字符(串)类型表达式。PowerBuilder10实用教程清华大学出版社2020年2月21日第21页2.3控制语句条件判断语句循环语句赋值语句返回和中止语句PowerBuilder10实用教程清华大学出版社2020年2月21日第22页条件判断语句条件判断语句是根据判断条件不同,执行不同语句的一组语句。在PowerBuilder中有两种条件判断语句:If语句和Choose…Case语句。–If语句是针对程序中某一给定条件进行判断,根据判断的结果执行不同操作的一组语句。它主要有两种结构:If…Then结构和If…Then…Else结构。–Choose…Case语句是根据判断表达式的值来选择不同的Case块语句执行。Choose…Case语句与If…Then语句都属于条件判断语句,可以交换使用实现同样的功能,但Choose…Case提供了比If…Then语句更多的分支供用户筛选,增强了程序的可读性,提高了运行效率。PowerBuilder10实用教程清华大学出版社2020年2月21日第23页循环语句循环是重复执行某一动作的语言结构。循环语句根据设置的循环条件来决定执行的循环语句块。在PowerScript语言中,用于循环控制的语句有For...Next语句、Do...Loop语句和Goto语句3种形式。–For...Next语句是循环次数确定的循环结构,在执行循环的时候,规定了循环执行的次数。–Do...Loop语句是一个通用的循环语句。用来控制当所给条件满足时或直到所给条件满足时所要执行的代码段。–Goto语句是一条无条件跳转语句,只要是遇到Goto语句,就强制控制程序直接跳转至Goto语句上相应的标号语句上。–在Do…Loop语句或For...Next语句循环体中,遇到Continue语句后,将不执行Continue语句后循环结束前的所有语句,而直接开始执行下一轮的循环。–Exit语句只能用于Do...Loop语句或For...Next语句循环体中,可以直接终止并跳出当前循环体。PowerBuilder10实用教程清华大学出版社2020年2月21日第24页赋值语句赋值语句是用来对变量或对象属性指定值的语句。PowerBuilder10实用教程清华大学出版社2020年2月21日第25页返回和中止语句返回和中止语句有Return、Halt语句两种。–Return语句用于从脚本中返回调用程序。–Halt语句用于中止应用程序的执行。PowerBuilder10实用教程清华大学出版社2020年2月21日第26页2.4系统函数系统函数是PowerScript的通用函数,它们不属于任何对象,是PowerBuilder的内部函数,在应用程序的任何地方都可以直接使用。这些函数大大简化了开发人员的编程工作。其中常用的几类函数为:打开关闭窗口函数、类型转换类函数、日期