PowerScript语言基础
一.基础知识:
没有行号,每行结束不需要“;”号 续行符号:& 但是不能在标示符和保留字之间续行 允许一行写多条语句,语句用 ; 号分隔 注释: // /* */ 蓝色 标示符: 必须以字母或下划线“_”开头; 不能是保留字; 长度不超过40个字符; 不能含空格; 可以包含字母,数字和这些特殊符号:下划线(_),短横线(-),美元符号($),号码符号(#),百分号(%); 不区分大小写; 特殊符号:换行符:~n; 回车:~r; 制表符:~t; 竖直制表符:~v; 换行:~f; 退格:~b; 波浪号:~~; 单引号:~'; 双引号:~"; 代词:PowerBuilder提供了四个代词: This,Parent,ParentWindow,Super CALL Super::Clicked 调用父对象的事件 Super::f_call() 调用父对象的函数 空值:1.从数据库中读到空值 2.使用SetNull函数赋空值 判断变量是否为空值是使用IsNull()函数,而不是使用关系表达式 保留字:
对象,属性,函数和事件的引用方法: 对象名.对象属性 [objectname.][type][calltype][when]functionname ([argumentlist]) type:取值为FUNCTION/EVENT 访问的是函数还是事件 ,默认是函数; calltype:指明PB查找函数的时机,STATIC(默认)编译时查找/DYNAMIC运行时查找; when:是立即执行还是当前程序段执行完毕后执行 TRIGGER(默认)立即执行/POST; argumentlist:给出函数或者事件的参数;
二.操作符
操作符:算数运算符:
关系运算符:
逻辑运算符:
连接操作符:
操作符的优先级:
三.数据类型
标准数据类型
枚举类型:以英文单词开始,以感叹号结束(!),在PowerBuilder中无法自己定义;使用的情形有以下两种: 作为函数的参数; 作为对象和控件的属性; 通过Browser窗口,选择Enumerated标签页,左边选择枚举类别,然后双击Properties显示该类别下的所有枚举值。 系统对象数据类型 使用对象浏览器(Object Browser)可以查看PB支持那些系统对象以及它们之间的继承关系 通过Browser窗口,选择System标签页,然后右键选择Show Hierarchy菜单项,将显示各个对象的继承关系 Any类型 想知道Any类型中保存的是何种数据类型,可以使用函数ClassName()
四.变量
有预定义的五个全局变量:SQLCA,SQLDA,SQLSA,Error,Message 安作用域分为四种:全局变量,实例变量,共享变量,局部变量 不同的变量需要在不同的位置说明 全局变量:可以在应用对象,窗口,用户对象,函数,菜单对象的画板脚本视图中声明,选择Declare标签页,选择Global Variables 实例变量:进入该对象的代码视图,再选择Instance Variables 共享变量:在它所在的对象关闭后再打开时,共享变量依然保持独享关闭时的值,而且同一个类多个实例中的同名共享变量保持相同的值. 局部变量:在使用它的事件处理程序或函数中声明,作用域仅在他的程序段
五.变量的申明
数据类型 变量名=初值,变量名=初值 一行申明多个变量时,用逗号隔开 常量:在变量申明前加上一个关键字Constant 只能引用不能更改
六.数组
一维数组: 类型说明 数组名[下标] 下标从1开始 也可以指定数组下标的变化范围 Integer li_name[3 To 10] 申明的同时初始化 Integer li_id[3]={100,200,300} 将整个数组赋值给其他数组 Integer li_na[3] Integer li_na[]=li_id[] li_na=li_id 变长数组 string is_name[] 方括号中没有数字
变长数组 申明数组时不指定长度 integer li_na[] 多维数组:维数之间用逗号分隔 数组的上下界: LowerBound(Array{,N}) 如果不存在该维数组,则返回-1;返回的是数组的起始下标 UpperBound(Array{,N}) 同理,返回的是数组的上界 N为可选值
七.条件语句
IF语句: 单行的形式: IF 关系表达式 THEN 语句1 [ELSE 语句2] 多行的形式: IF 关系表达式1 THEN 语句组1 [ ELSEIF 关系表达式2 THEN 语句组2 ... ] [ ELSE 语句组3 ... ] END IF
CHOOSE CASE语句: CHOOSE CASE 变量或表达式 CASE 表达式列表 语句组 CASE 表达式列表 语句组 END CHOOSE
八.循环语句
DO LOOP 循环语句 格式一: DO WHILE 条件表达式 表达式为真时执行程序块 程序块 LOOP 格式二: DO UNTIL 条件表达式 表达式为假时执行程序块 程序块 LOOP 格式三:DO 程序块 LOOP WHILE 条件表达式 格式四:DO 程序块 LOOP UNTIL 条件表达式 FOR...NEXT循环语句 FOR 变量名=初值 TO 终值[STEP 步长] 步长的默认值是1 程序块 NEXT GOTO语句 lable: //语句标号 GOTO lable
CONTINUE继续当前循环体 EXIT退出当前循环体 RETURN HALT{CLOSE} 如果有CLOSE关键字,则在终止程序之前先执行CLOSE中的代码
九.用户自定义函数和结构
自定义全局函数,自定义对象函数 全局结构,对象结构 全局函数的定义过程:
New>选择PB Object标签页>Function>弹出函数画板,函数画板中参数的意义:
自定义对象函数:和自定义全局函数类似,Access可选了
自定义全局结构:
New>PB Object>Structure