PowerBuilder学习笔记之2PowerScript语言(一)
教材链接:https://wenku.baidu.com/view/1e82d26925c52cc58ad6be05.html?sxts=1565679996440
2.1PowerScript基础
2.1.1注释
//单行注释
/* 多行注释 */
2.1.2标识符
标识符是程序中用来代表变量、标号、函数、窗口、选单、控件和对象等名称的符合。
标识符命名规则如下:
(1)必须以字母或下划线开头
(2)由字母、数字、下划线_、短横线-、$、#、%组成
(3)不能是PowerScript保留字
(4)不区分大小写(但若用于Web、UNIX等环境时必须区分大小写)
(5)最长40个字符
2.1.3续航符(&)
如果代码行尾的字符是 & 则下一行自动是本行的继续行。
例: IF side1=5 AND &
side2=6 THEN area=5*7
//此段代码相当于 IF side1=5 AND side2=6 THEN area=5*7
2.1.4特殊字符
字符串中可以包括特殊的ASCII字符,它们不能使用常规的输入方法直接输入,需要使用其他字符来代替。常用的特殊字符见表2.1。
表2.1
2.1.5空值(NULL)
空值NULL是PB与数据库交换数据时使用的一种特殊值,代表数据为定义、不确定,它与空字符串、空字符、数值零及日期:00-00-00的意义完全不同。
变量被赋予空值的途径:
①从数据库中读取到空值
②使用 SetNull() 函数赋值。
例:String person
SetNull(person)
2.1.6分隔符(;)
如果要在一行中书写多条语句,可以使用分隔符" ; "
2.1.7保留字
如:Integer,String、int 等
2.1.8代词
PowerScript 提供了4个代词:
This 代表窗口、用户对象、菜单、应用对象、或者控件本身,即代表正在为之编写事件处理程序的对象,
Parent 指代表当前控件所在的 窗口,
ParentWindow 代表运行时菜单所在的窗口,此代词只能在菜单的事件处理程序中使用,
Super 代指祖先对象
2.2数据类型
数据类型分为3类:标准数据类型、枚举数据类型、和系统对象数据类型。
2.2.1标准数据类型
包括数值型、字符型、日期型和布尔型等一些最基本的数据类型。其名称、含义及示例见表2.2。
表2.2
2.2.2,枚举类型(ENUM)
ENUM 是一种特殊的数据类型,它是由符合代替的数值,是PB中定义的特殊常量,可以作为系统函数的参数,也可以用于对象、控件的属性,如颜色和对齐方式等。
注:1、PowerScript不能定义自己的枚举类型,只能按照系统的要求使用系统定义的枚举类型
2、因为枚举类型是一组固定的值,即常量。以英文单词开始,!结束:Right!,Justfly! 。
2.2.3系统对象数据类型
PB中窗口、菜单、命令按钮、数据窗口等所有的系统对象都是一类特殊的数据类型。每一种系统对象都是已经预先定义在PB中的一种数据类型。
2.2.4变量作用域
4种不同范围的变量:Local(局部),Instance(实例)、Global(全局)、Shared(共享),常用的是前三种。
1、Instance 变量的作用范围是所在的窗口及窗口内的各种控件的所有事件、函数,在对象的(Declare)中定义
2、Local :这种类型的变量在脚本程序中定义,且只在程序中使用。如:在事件和函数中定义的Local变量,它的作用范围只在所在的事件和函数中起作用。
3、Global: 在整个应用程序中都能访问,定义方法与Instance相同,尽量不用。
4、Shared:该变量在一个对象中定义,与该对象的类相关,所以可以被该对象的类的所有实例访问。
上述四种变量类型中,Instance的访问权限由高到低可分为3种:①Public(公共的):PowerScript默认的访问权限,在应用程序中,在任意位置使用点操作符可以访问,格式为 Public Integer a;
②Private(私有):该类型的变量可以在定义变量的对象的脚本中访问,格式:Private Integer b;
③Protected(保护):与Private相似,区别:不仅可以被声明它的脚本访问,还可以被继承它所在对象的脚本访问(即可以被本身和子类访问)
2.3运算符和表达式
2.3.1算术运算符
算术运算符有五个,分别用于加、减、乘、除、乘方。其中,加号、减号还可用于表示正数、负数。
在表达式中,乘方优先级高于乘、除;乘、除优先级高于加、减。同级运算遵循自左至右的原则
a++等价于a=a+1
a--等价于a=a-1
a+=b*c等价于a=a+b*c
a-=b+4等价于a=a-(b+4)
a*=c+d等价于a=a*(c+d)
a/=c+d等价于a=a/(c+d)
a^=c+d等价于a=a^(c+d)
2.3.2关系运算符
2.3.3逻辑运算符
真值表:
2.3.4连接运算符
用于将两个String型或Blob型变量的内容连接在一起,形成新的字符串或Blob型数据。
例如:s1="computer "+"book" 则s1="computer book"
s2="book"+"computer" 则s2="bookcomputer"
2.3.5运算符优先级
PowerBuilder学习笔记之2PowerScript语言(一)的更多相关文章
- PowerBuilder学习笔记之2PowerScript语言(三)
教材地址:https://wenku.baidu.com/view/1e82d26925c52cc58ad6be05.html?sxts=1565679996440 2.6嵌入式SQL语句 2.6.1 ...
- PowerBuilder学习笔记之2PowerScript语言(二)
z教材地址:https://wenku.baidu.com/view/1e82d26925c52cc58ad6be05.html?sxts=1565679996440 2.4数组 声明数组:Integ ...
- 23 DesignPatterns学习笔记:C++语言实现 --- 2.7 Proxy
23 DesignPatterns学习笔记:C++语言实现 --- 2.7 Proxy 2016-07-18 (www.cnblogs.com/icmzn) 模式理解
- 23 DesignPatterns学习笔记:C++语言实现 --- 2.6 Facade
23 DesignPatterns学习笔记:C++语言实现 --- 2.6 Facade 2016-07-22 (www.cnblogs.com/icmzn) 模式理解
- 23 DesignPatterns学习笔记:C++语言实现 --- 2.5 Factory
23 DesignPatterns学习笔记:C++语言实现 --- 2.5 Factory 2016-07-18 (www.cnblogs.com/icmzn) 模式理解 1. Flyweight ...
- 23 DesignPatterns学习笔记:C++语言实现 --- 2.4 Composite
23 DesignPatterns学习笔记:C++语言实现 --- 2.4 Composite 2016-07-22 (www.cnblogs.com/icmzn) 模式理解
- 23 DesignPatterns学习笔记:C++语言实现 --- 2.2 Adapter
23 DesignPatterns学习笔记:C++语言实现 --- 2.2 Adapter 2016-07-22 (www.cnblogs.com/icmzn) 模式理解
- 23 DesignPatterns学习笔记:C++语言实现 --- 2.1 Bridge
23 DesignPatterns学习笔记:C++语言实现 --- 2.1 Bridge 2016-07-22 (www.cnblogs.com/icmzn) 模式理解
- 23 DesignPatterns学习笔记:C++语言实现 --- 1.5 Prototype
23 DesignPatterns学习笔记:C++语言实现 --- 1.5 Prototype 2016-07-21 (www.cnblogs.com/icmzn) 模式理解
随机推荐
- RC4弱密码套件检测
一.漏洞分析 事件起因 2015年3月26日,国外数据安全公司Imperva的研究员Itsik Mantin在BLACK HAT ASIA 2015发表论文<Attacking SSL when ...
- .net web api 权限验证
做一个登录权限验证. 开始吧. using System; using System.Collections.Generic; using System.Drawing; using System.D ...
- AIX—日常运维命令总结
1. 查看AIX服务器的物理构造信息,包括服务器网络配置信息 # prtconf # ifconfig -a # lsattr -E -l mem0 :查看系统内存大小 # netstat -in : ...
- Flink流式计算
Structured Streaming A stream is converted into a dynamic table. A continuous query is evaluated on ...
- Java单例模式的几种实现
转载请注明原文地址:https://www.cnblogs.com/ygj0930/p/10845530.html 一:静态内部类实现单例模式 原理:通过一个静态内部类定义一个静态变量来持有当前类实例 ...
- python实现生产者消费者模型
生产者消费之模型就是,比如一个包子铺,中的顾客吃包子,和厨师做包子,不可能是将包子一块做出来,在给顾客吃,但是单线程只能这麽做,所以用多线程来执行,厨师一边做包子,顾客一边吃包子,当顾客少时,厨师做的 ...
- 数据结构 - 链栈的实现 C++
链栈封装 C++ 使用C++对链栈进行了简单的封装,实现了栈的基本操作 封装方法: pop(),top(),size(),empty(),push() 代码已经过测试 #pragma once #in ...
- VMware下安装Ubuntu虚拟机
ubuntu系统是以桌面应用为主的.当下最火的linux操作系统,具有实用的界面,并且完全免费. 在Ubuntu的 Linux 世界里,已经不再只是简陋的界面+命令行,而是一款华丽时尚且无比实用的操作 ...
- IComparable和IComparer接口
C#中,自定义类型,支持比较和排序,需要实现IComparable接口.IComparable接口存在一个名为CompareTo()的方法,接收类型为object的参数表示被比较对象,返回整型值:1表 ...
- Github api【Restful接口规范】
Overview This describes the resources that make up the official GitHub REST API v3. If you have any ...