PowerBuilder学习资料Word下载.docx
《PowerBuilder学习资料Word下载.docx》由会员分享,可在线阅读,更多相关《PowerBuilder学习资料Word下载.docx(64页珍藏版)》请在冰点文库上搜索。
Close(cb_button)
Super:
在编写空间或对象的子对象时,子对象中可以调用父对象的事件处理程序,程序中的既可直接利用父对象名称调用他们,也可以使用super代词来应用。
四:
对象,属性,函数和事件的应用方法。
Powerbuilder应用程序的开发过程实际上就是对各种对象的定义和使用过程。
所有对象都有名称,并通过名称相互区分。
在powerscript中,访问对象的属性,函数,事件的方法很简单,就是使用圆点(.)作为标记符。
(1)访问对象属性的格式为:
对象名.对象属性
列4.1:
把单行编辑框sle_name的用户输入内容送入字符串变量userenter的语句可以写成:
Userenter=sle_name.text
(2)访问对象的函数与事件的格式为:
{Objectname.}{type}{calltype}{when}functionname({argumentlist})
●objectname:
对象名
●type:
取值为function或event,用于指明访问函数还是事件,默认值是function。
●calltype:
用于指明查找函数的时机,有效取值为:
static(默认值),编译时查找函数,若不存在,产生编译错误;
dynamic,程序运行时查找函数,若不存在,产生运行错误。
●when:
用于指明函数或事件是立即执行还是当前程序段执行完毕后执行,取值为TRIGGER(默认值),立即执行;
POST,当前程序段执行完毕后执行。
●Functionname:
指明调用的函数或事件名称。
●Argumentlist:
给出函数或事件的参数。
例4.2:
对象函数和事件的调用示例。
代码如下
//想把输入焦点移动到单行编辑框sle_name上,程序中的代码是
Sle_name.setfocus()
//想立即执行按钮cb_name的单击事件处理器,那么编写代码
Cb_name.eventtriggerclicked
五:
保留字
保留字是powerbuilder内部使用的一组单词,有着特殊的含义,不能再把他们用作标识符。
如果应用程序误把保留字用作了标识符,那么powerbuilder将给出编译错误。
在powerbuilder中保留字一般显示为绿色。
六:
数据类型
Powerbuilder的数据类型十分丰富,主要包括:
标准数据类型,any数据类型,系统对象数据类型和枚举类型,共4大类。
程序中通过数据类型限定变量的取值范围。
在powerscript中,我们使用数据类型来声明变量或数组。
1标准数据类型:
Blob二进制大对象,用于存储大量数据,例如图像.大文本等。
Boolean布尔型,true或false
Character/char单个ASCLL字符
Date日期,包括年(1000-3000)月(01-12)日(01-31)
Datetime日期及时间,仅用于访问数据库的datetime型数据
Decimal/dec带符号十进制数,最大18位精度。
Double
Integer/int16位带符号整数,范围从-2147483648到+2147483648
Real
String字符串类型,用于任意的ASCLL字符,比如‘计算机’‘abc’
Unsignedinteger16位无符号整数,范围0-65535
Unsignedlong32位无符号整数,范围0-4294976295
2.常量的申明
在编写代码时,对应用程序不应该修改的数据声明成常量是个好办法:
一来提高了程序的可读性和可维护能力,二来避免了意外的修改,降低了编码出错的概率。
声明常量使用constant,其简单语法为:
Constent数据类型.常量名=常量值
3.变量的作用域:
作用域是指用户定义的变量在什么范围内有效。
Powerbuilder的变量作用域共有4种:
全局变量,实例变量,共享变量和局部变量。
*全局变量:
在整个应用程序中都可以访问,他的作用域是整个应用
程序
*实例变量:
实例变量和对象相关联,只有在该对象的事件处理程序或函数中才能使用为该对象定义的实例变量。
实例变量在它所关联的对象打开时创建,被关闭时消失。
*共享变量:
共享变量是一种静态变量,这不仅意味着它所在的对象关闭后如果再次打开时,共享变量依然保持对象关闭时的值,还意味着同一个类的多个实例中的同名共享变量将保持相同的值。
*局部变量:
局部变量在使用它的事件处理程序或函数中声明,其作用域仅限于声明它的程序段,在该程序段的任何地方均可访问局部变量,但其他程序段都不能访问本程序段中的局部变量。
运行程序后,进入某个程序段时,系统自动为局部变量分配内存,退出程序时,局部变量占用的内存被释放。
4.变量的默认值
变量类型默认值
Blob长度为0,空的二进制大对象
Booleanfalse
Charascll码0
Date1900-01-01
Datetime1900-01-0100:
00:
00
数值类型*0
String空字符串(“”)
Time00:
七:
运算符
1算术运算符
算术运算符用于完成数学运算
+--*/^
++--+=-=*=/=^=
2.关系运算符
关系运算符用于比较两个操作符,比较的结果为下述3个值之一(true,false,null)
=>
<
>
>
=<
=
在进行运算符比较时,应注意到这些运算符进行的比较是区分大小些的比较,也就是说A<
a。
需要时可使用powerscrpt的字符串操作函数进行适当的转换,这类函数包括:
Upper()转换成大写
Lower()转换成小写
Righttrim()删除右部空白
Lefttrim()删除左部空白
Trim()删除两端空白
3逻辑运算符
Notandor
4连接运算符
连接运算符只有一个,那就是‘+‘,用于把两个string型或blob型变量的内容连接在一起,形成新的字符串或blob型数据。
4.1例:
stringtesttest=’北京’+‘上海‘//test中包含“北京上海”
5.基本语句
Powerscript的基本语句主要包括赋值语句,条件语句,循环语句。
5.1赋值语句:
用于给变量或对象赋值,使用最频繁的语句。
其中语法格式为:
Variablename(变量名或对象名)=expression(是表达式,其数据类型应该与variablename的数据类型兼容)
5.2条件语句:
共有if语句和choosecase语句两类条件语句。
If语句计算一个逻辑表达式,然后根据表达式的值是真还是假决定下一步执行的语句块。
Choosecase语句可同时处理多种情况。
(1)if语句,if语句有两种形式。
一.单行if…then语句,格式为:
Ifcondthenaction1{elseaction2}
其中cond是个表达条件的逻辑表达式;
action1,action2是一条语句;
大括号表示该部分可以根据需要选择。
(2)choosecase语句
5.3循环语句:
powerscript的循环语句有3种形式:
do…loop,for…next,和goto。
如果合理的将前两种形式与exit和continue语句配合使用,完全可以抛弃goto语句。
而且do…loop结构本身又有4中形式,丰富多彩的表达方式为我们编写清晰流畅的程序提供了有效的手段。
(1)do…loop循环语句,4种形式:
*Dountilcondition…loop
*dowhilecondition…loop
*do….loopuntilcondition
*do…loopwhilecondition
其中do标示循环的开始;
loop表示循环的结束;
condition表示循环条件,是个逻辑表达式,其值为true或false。
(2)for…next:
for…next是个循环次数确定的循环结构,她使循环体内的语句执行规定的次数,语法结构为:
forvarname=starttoend{stepincrement}
statementblock
next
其中varname是循环变量,可以使是任意的数字类型;
startend分别是循环变量的初值和终值;
increment是每次循环后循环变量的步长增量(默认值为1);
statementblock是一组语句,成为循环语体,大括号表示此语句可以省略。
其循环过程为:
虚幻变量varname从start开始,到end为止,重复执行循环体,每执行一次,varname+increment。
另外,如果start和end在循环体内被修改,将影响循环次数。
(3)goto语句
goto语句将控制跳转到程序中的其他位置,用goto语句也可以构成循环。
其语法格式为:
gotolabel
其中label是语句标号,它使用标识符的命令规则。
(4)exit(退出循环)语句
在do…loop和for..next语句的循环体中,当我们想在中途退出循环时,可以使用exit语句,执行该语句后,程序的控制权转至循环语句后的语句。
(5)continue(继续循环)语句
在循环体中,遇到continue语句后,将不执行continue语句后与循环结束前的所有语句,而是开始新一轮循环。
常用事件
Open事件:
打开窗口时触发
Close事件:
关闭窗口时触发。
Closequery事件:
在开始关闭窗口时触发。
Dragdrop事件:
当在窗口客户区释放拖动对象时发生。
Resize事件:
当窗口大小发生变化时产生,窗口被打开时也产生该事件。
常用函数
Powerbuilder窗口对象比较常用的函数如下:
1.ArrangeSheets()
功能:
按指定方式排列mdi框架窗口中的工作窗口(子窗口)或图标。
语法:
mdiframe.arrangesheets(arrangetype)
2.getactivesheet()
得到指定mdi框架窗口中当前活动工作表。
mdiframewindow.getactivesheet()
3.getparent
功能:
返回父窗口的名称
windowname.Getparent()
4.hide()
隐藏窗口
语法:
windowname.hide()
5.print
打印窗口
windowname.print()
6.setfocus()
将焦点设置在该窗口上。
windowname.setfocus()
7.show()
显示窗口
windowname.show()
与窗口相关的函数
1.Open()
打开窗口。
该函数有两种语法格式:
格式一:
打开编程时已知数据类型的窗口对象。
格式二:
打开程序运行后才能确定数据类型的窗口对象。
语法一:
Open(windowvar{,parent})
语法二:
Open(windowvar,windowtype{,parent})
2Openwithparm()
带参数打开窗口,与Open()函数相似。
区别在于openwithparm()函数可以向打开的窗口对象传递参数。
openwithparm(windowvar,parameter{,parent})
二.openwithparm(windowvar,parameter,windowtype{,parent})
3opensheet()
在mdi框架窗口中打开mdi子窗口,并在指定菜单中创建该子窗口的相关菜单项。
4opensheetwithparm()
在Mdi框架窗口中带参数打开mdi子窗口。
与opensheet()函数相似。
区别在于opensheetwithparm()函数可以向打开的窗口对象传递参数。
5close()
关闭窗口并释放窗口以及窗口上的控件所占据的内存。
Close(windowname)
6CloseWithReturn()
关闭窗口,与close()函数相似。
区别在于closewithreturn()函数在关闭窗口时将返回值保存在message对象中。
PB中实例化(用isvalid判断)的作用是什么?
比如:
ifnotisvalid(myo_apprun)thenmyo_apprun=createmy_apprunendif如果不写它会有什么后果?
不写可能会报错,使用isvalid来判断对象是否成功被创建,如果未被成功创建就去使用的话会抛出异常,程序不能正常运行。
Upper()编辑
Upper()
功能将字符串中的小写字母转换为大写字母。
语法Upper(string)
参数string:
要将其中的小写字母转换为大写字母的字符串返回值String。
函数执行成功时返回将小写字母转换为大写字母后的字符串,发生错误时返回空字符串("
"
)。
如果string参数的值为NULL,Upper()函数返回NULL。
eg:
selectupper('
AaCdD'
)fromdual;
UPPER('
AACDD'
)
message.stringparm的用法
比如
openwithparm(w_1,'
abc'
在w_1的open事件里就可以通过message.stringparm取得'
的值
stringls_string
ls_string=message.stringparm//ls_string的值即为‘abc’
在窗口调用的时候openwithparm(window_name,'
trans_string'
在窗口打开的时候(openevent),ls_string=message.stringparm
OpenWithParm()
功能带参数打开窗口,与打开窗口的Open()函数相似。
Trim()
删除字符串首尾的空白(可以首尾一起,也可以指定首或尾,取决于控制参数),但会保留字符串内部作为词与词之间分隔的空格。
================================================================
html5,c#,powerbuilder,mysql,oracle经典学习视频和文档资料,本人多年收集的学习资料,里面主要包含:
“html5,
c#,
powerbuilder
mysql,oracle”
需要加qq:
417129367
===================================================================
第二部分:
Pb的5个可编程对象概述:
Application对象:
程序执行的起点,全局编程
Window对象和控件:
用户界面主要构成对象
Menu对象:
调度中心。
Userobject对象:
重用。
封装。
Function对象:
重用
和编程关系紧密的内容:
界面设计:
常规设计,标准设计
函数:
600多个函数,常用70多个
事件:
常用事件,理解触发事件至关重要
属性:
常用属性
Sql语言:
数据处理的基础。
PB的编程语言:
POWerScript
嵌入式sql
程序和时间的关系:
Pb中所有程序的执行都必须通过事件
编程的规范性:
能编程序不重要,重要的是编写规范的程序
实现功能是基本要求,维护要求规范
显示编译:
ctrl+L快捷键
快速替换:
ctrl+H
定义:
所有程序员自己定义的名称
字母或者下划线开头
长度<
=255
不区分大小写
不能是保留字:
比如this等关键词就不能
指代词:
This:
代表当前窗口parent:
所编程对象的容器控件
Parentwindow:
当前菜单所在的窗口。
Super:
子对象引用父对象会用到。
数据类型:
1:
保准数据类型:
字符型:
stringchar
数值型:
注意各类型的取值范围,和数据库的同类型的数据精度是否匹配。
类型有:
integer(最大值65536)longdoublerealdecimalunsignedintegerunsignedlong
日期,时间型:
datetimedatetime
布尔型:
boolean
Blob型:
blob
2:
系统对象类型:
create(创建)destroy(释放内存)browser
3:
枚举型:
4:
Any型:
运行慢,编译时不做类型检查。
第一章语言基础
变量声明:
作用范围:
全局变量:
整个target下所有对象都可访问
实例变量:
windowapplicationmenuuserobject范围内的变量
本地变量:
申明变量的事件或者函数内
注意声明时赋值的特例
格式:
数据类型,变量名称[=初值]
位置:
代码的开头
规范:
作用范围+类型_变量名称
例子:
stringls_ss
timelt_study
类型转换:
20160712第三天:
运算符和表达式:
算术运算符:
+,-,-,*,/,∧
关系运算符:
=,<
>
<
逻辑运算符:
not,and,or,
联接运算符:
+
表达式和赋值:
表达式:
运算符,常量,变量,函数
赋值和关系运算符的区别:
左侧能否用常量,是否有返回值。
分支语句:
If语句:
if条件then语句
if条件then
语句
Endif
3:
if条件then
语句1
Else
语句2
4:
If条件then
语句1
Elseif条件then
5:
语句
case语句
choosecase表达式
Case取值
…….
Endchoose
Stringls_ls
Ls_ls=90
Choosecasels_ls
Caseisls_ls>
90
Messagebox(‘提示’,’优秀’)
60
Messagebox(‘提示’,’及格’)
Caseisls_ls<
Messagebox(‘提示’,’不及格’)
EndChoose
关于取值:
一个值,多个值列表,xtoy,is表达式,上述各种组合。
注意:
case判断的顺序性(由少范围到多范围)。
循环语句:
格式1:
dowhile条件
语句模块
Loop
格式2:
Do
Loopwhile条件
格式3:
Dountil条件
格式4:
Loopuntil条件
掌握其中一个就行(通用掌握第一个)
循环语句2:
For变量=初值to终值
Next
For变量=初值to终值step步长
Split功能的实现
学习函数:
函数的作用
函数的语法
参数的含义
返回值的含义
5:
常用编程
Pos函数:
作用:
查找一个字符串在另一个字符串中首次出现的位置(起始位置是1),
pos(str1,str2)
pos(str1,str2,start)
返回值:
integer,,从str1开始的位置,0表示没找到。
:
从start位置开始找str2在str1第一次出现的值。
Left函数:
得到指定字符串左侧若干个字符
left(str1,len)
string,字符串
Right函数
得到指定字符串右侧若干个字符
right(str1,len)
Mid函数:
得到指定字符串指定位置的一个子串
mid(str1,start,len):
从start开始取len个长度。
Len函数:
得到字符串的长度
len(str):
str代表你要判断的字符串
长度
Asc函数
得到对应的ascii
asc(char)
数字,对应的ascii
Char函数:
得到和asxii对应的字符
char(ascii)
string
Fill函数:
反复填充得到指定长度的字符串
fill(str,len)
strin