PowerScript语言基础
![](https://i-blog.csdnimg.cn/blog_migrate/81d9e7d01628de369f2ac1f6d0c15734.png)
一.基础知识:
没有行号,每行结束不需要“;”号
续行符号:& 但是不能在标示符和保留字之间续行
允许一行写多条语句,语句用 ; 号分隔
注释: // /* */ 蓝色
标示符: 必须以字母或下划线“_”开头;
不能是保留字;
长度不超过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