PB学习——精选推荐
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
PB学习
Pb
1.B/S模式
2.对象包括三⽅⾯:属性,事件,函数
属性——规定了对象的特征;
事件——说明对象相应什么样的操作;
函数(⽅法)——封装对象的功能;
3.PB主要包括的对象:
应⽤对象,窗⼝对象,数据窗⼝对象,菜单,函数,查询,结构,⽤户对象,⼯程对象
4.系统分析和系统设计——充分了解系统需求
5.系统开发——创建对象,描述对象,设置属性
建⽴应⽤对象;
⽣成⽤户对象,函数和结构;
建⽴窗⼝和菜单;
创建数据窗⼝对象,将数据窗⼝对象连接到窗⼝上;
编写各对象的事件处理程序;
调试应⽤;
测试系统;
⽣成EXE⽂件。
6.PB与数据库的连接通过数据库接⼝来实现:ODBC接⼝,专⽤接⼝
ODBC:开放式数据库互连标准接⼝,以关系数据库标准查询语⾔SQL来存取连接到的数据源专⽤接⼝:针对具体的数据库管理系统⽽设计,将PB连接到相应的数据库上。
ODBC接⼝
(1)ODBC应⽤软件,包括⽤PB开发的应⽤程序
调⽤ODBC函数,PB通过动态链接库PBODB60.DLL完成这⼀功能,对于开发⼈员来说,该过程是隐含的,由PB⾃动完成(2)驱动管理程序
⽤ODBC.INI⽂件把数据源名映射成特定驱动程序的动态链接库
处理⼏个ODBC初始化调⽤
为每个驱动程序提供ODBC的⼊⼝点
检验ODBC的调⽤参数和次序
(3)驱动程序——处理ODBC函数调⽤,提交SQL请求到特定的数据源并把结果返回给应⽤程序。
(4)数据源——要存取的数据以及相关的操作系统,数据库管理系统和⽹络系统ODBC,PB访问数据库模式:
PB应⽤程序——ODBC接⼝——数据库到⽹络的接⼝——⽹络——数据库到⽹络的接⼝——数据库服务器
连接数据库
(1)建⽴或配置与要连接的数据库对应的数据源ODBC数据源:应⽤ODBC配置⾯板;(2)建⽴数据库描述⽂件或设置连接
参数。
(3)连接到ODBC数据库
创建应⽤程序对象
1.PB——应⽤对象代表应⽤程序,程序从应⽤对象开始运⾏,⾯向对象,⽤它开发的应⽤程序以对象和事件为基本特征。
2.应⽤程序对象——应⽤程序⼊点,保存和定义缺省字体,应⽤程序图标,缺省全局变量,应⽤对象结构函数和实例变量。
通常应⽤程序除必须包含应⽤程序对象以外,还包含如下PB对象:窗⼝及其控件,数据窗⼝,菜单,函数,结构,脚本语⾔代码,外部资源⽂件,项⽬。
3.创建新的应⽤对象:
建⽴⼯作空间
建⽴⽬标和应⽤对象(target/application)
应⽤对象的时间⼀共只有6个:Open(打开),Close(关闭),Idle(空闲),SystemError (系统出错),ConnectionBegin(连接开始),ConectionEnd(连接结束)
ConnectionBegin(连接开始)——⽤于分布式PowerBuilder应⽤的服务器端。
当客户程序试图连接到服务器程序的连接时,触发服务器程序应⽤对象的ConnectionBegin事件。
窗⼝
1.窗⼝——属性,时间,函数,控件
2.窗⼝类型——主窗⼝,弹出式窗⼝,⼦窗⼝(⼦窗⼝的位置总是相对于⽗窗⼝,⽽不是相对于屏幕),响应窗⼝(向⽤户请求信息,它总是在另⼀个窗⼝<⽗窗⼝>中打开,响应窗⼝被显⽰时,⽤户必须关闭了该窗⼝后才能操作同⼀个应⽤程序的其它窗⼝),MDI框架窗⼝
3.窗⼝事件及事件处理程序——Open,Close,CloseQuery,DragDrop,Resize
窗⼝函数
1.打开窗⼝函数:Open(windowvar{,parent})——参数windowvar是要显⽰窗⼝的名称,parent
可以省略,若为省略,由该参数指定⽗窗⼝的名称。
Open()函数返回整型值1表⽰打开窗⼝成功,返回整型值-1表⽰打开失败。
Open(windowvar,windowtype{,parent})——参数windowtype是个字符串,其值是希望打开的窗⼝的类名,注,windowtype 必须与参数windowvar的类继承脸肿某个类相同。
2.关闭窗⼝函数:Close(windowname)——参数windowname是要关闭窗⼝的名称,该函数返
回整型值1表⽰关闭窗⼝成功,否则返回值为-1。
创建窗⼝
1.创建新窗⼝——File|New——PB Object——Window
2.常⽤图标——控件列表图标(选择某个控件图标,然后再⼯作区单击);
代码编写图标(对需要响应的事件编写事件处理程序);
设置与查看窗⼝以及窗⼝中对象的属性;
设置控件的跳转(Tab)次序;
预览窗⼝图标
窗⼝属性
1.窗⼝属性定义窗⼝的外观、⾏为和状态
2.⼀般属性:在General选项页中设置(Title,Tag,Visible,MenuName,Enabled.…..);其他属性:
Scroll选项页设置窗⼝的滚动⽅式——HScroll Bar(⽔平滚动条);VScroll Bar(垂直滚动条)ToolBar选项页设置窗⼝中⼯具栏的初始位置——Visible(复选框指定⼯具条是否可见)
Alignment(指定⼯具栏显⽰位置)Other选项页设置窗⼝在屏幕中的位置和⿏标的现状
菜单
1.菜单类型——下拉菜单,弹出式菜单,级联菜单
2.菜单命令特点——图标,访问键,快捷键,带省略号,灰⾊显⽰
3.菜单⾯板功能——设置访问键
删除菜单项或命令
移动菜单项或命令
为命令添加脚本
查看菜单的布局
4.设置菜单属性——General选项,ToolBar选项卡
菜单事件及其编程
1.菜单事件——Clicked事件:每个菜单中的每个菜单项都需要对Clicked事件编程,以相应
⽤户的选择操作;Selected事件:显⽰提⽰信息。
2.Clicked事件——⽤⿏标单击菜单对象;⽤键盘选中菜单对象(该对象被加亮),然后按Enter 键;按菜单的快捷键;菜单对象被显⽰在屏幕上后,按访问键。
——只有菜单对象的Visible和Enabled属性均为True时,菜单对象才会响应⿏标单击或键盘操作。
3.Selected事件——在菜单对象被选择时(此时菜单对象被加亮显⽰)才会触发。
4.编写菜单事件处理程序步骤——进⼊菜单画板,通过单击选择要编程的菜单项
单击菜单画板⼯具栏上的编程图标或启动脚本画板
在事件列表框中选择要编程的事件
键⼊所需代码
5.编程设置菜单属性——m_main.m_sys.m_system.enabled=true//使能为有效
m_main.m_sys.m_system.visible=true//显⽰为有效
m_main.m_sys.m_system.checked=true//检测为有效
6.弹出窗⼝上的菜单——在某对象或某控件的RbuttonDown事件中写上
m_main.m_sys.PopMenu(PointerX(),PointerY());
或⾸先创建菜单对象,然后
m_test m_new //说明菜单变量
m_new=Create m_test //创建菜单实例
m_new.PopMenu(PointerX(),PointerY())
Destroy m_new //释放空间
⼀般窗⼝控件
1.控件名的缺省前缀——控件类型的英⽂缩写
2.操作控件的⽅法——选择控件,移动控件,改变控件⼤⼩,删除控件,对齐控件,Tab次序
窗⼝控件的操作技术
1.选择控件——选中单个控件;选中相邻的多个控件;选中不相邻的多个控件
2.移动控件——⽤⿏标移动控件;⽤键盘移动控件
3.改变控件⼤⼩——使⽤⿏标⼀次只能修改⼀个控件的尺⼨;⽤键盘改变控件⼤⼩时,可以
同时改变多个控件的⼤⼩(按住Shift键,箭头朝向为控件改变⽅向)
4.删除控件
5.对齐控件——选中——Edit(Align Controls)
6.复制与粘贴控件——Ctrl+T
7.焦点——接收⽤户⿏标或键盘输⼊的能⼒(有焦点时,才能接收⽤户的输⼊),得到焦点,
产⽣GotFocus事件,失去焦点,产⽣LostFocus事件,可以在代码中使⽤SetFocus()对象函数设置焦点。
8.Tab次序——程序运⾏后⽤户按Tab键时输⼊焦点的跳转次序。
修改跳转次序——Design——Tab Order
9.控件属性、事件和函数——General,Scroll,Toolbar,Other
General:X,Y,Width,Height确定控件的位置和⼤⼩,
Visible——要想⼦窗⼝画板中显⽰被隐藏的控件,
Design——Show Invisible,代码中cb_1.Visible=TRUE
Enabled——控件处于活动状态,cb_1.Enabled=TRUE
控件事件及其脚本——单击,双击,拖放,构造,析构,计时
控件函数——脚本是事件的实现部分,可通过脚本视图区创建
⼏个重要的简单控件的应⽤
1.命令按钮CommandButton——General(名称,标题,是否显⽰,是否可⽤)
Font(定义命令按钮标题的显⽰字体)
Other(Position,Pointer,Drag&Drop)
命令按钮事件——Clicked事件
2.静态⽂本控件StaticText——⽤于向⽤户显⽰提⽰信息或说明没有标题控件
事件——Clicked,DoubleClicked(通常极少对其编程)
3.单⾏编辑器SingleLineEdit——⽤于输⼊⼀⾏⽂本,键⼊⽤户保密字
Text——保存⽤户键⼊的内容以及当前显⽰的⽂本
Password——显⽰*号
Auto HScroll——允许⽤户键⼊超过单⾏编辑框实际长度的⽂本
Display Only——禁⽌⽤户输⼊
TextCase——强制性地对⽤户键⼊字母进⾏⼤⼩写转换
Limit——可输⼊的最⼤字符个数,0表⽰不限制输⼊字符个数
事件——Modified,GetFocus,LoseFocus
4.多⾏编辑框MultiLineEdit——⽤于输⼊⼤块的⽂字
Auto VScroll——⾃动下滚⽂本(左右滚动)
HScroll Bar(VScroll Bar)——⽔平滚动条(垂直滚动条)
Ignore Default Button——⽤户键⼊Enter不会触发缺省按钮的Clicked,⽽是产⽣新⾏,否则,触发Clicked事件,此时要想产⽣新⾏,需键⼊Ctrl+Enter
5.掩码编辑框EditMask
选框,按钮
1.单按钮RadioButton——事件(Clicked)
2.复选框CheckBox——让⽤户设置独⽴的选项,多个复选框彼此相互独⽴
3.组框GroupBox——装饰界⾯,对单选钮分组(Ctrl+T复制)
修饰性控件
1.直线Line——前缀ln_
2.椭圆Oval——前缀oval_
3.图⽚框Picture——前缀p_
4.动画
数据窗⼝对象
1.数据窗⼝——前连接⽤户窗⼝,后连接数据库——包括数据窗⼝对象和数据窗⼝控件
数据窗⼝对象——展⽰数据并允许⽤户增删改数据
数据窗⼝控件——把数据窗⼝对象放置到窗⼝上并呈现在⽤户⾯前
2.数据窗⼝对象——数据和显⽰风格
3.使⽤数据窗⼝对象的⼀般⽅法——使⽤数据窗⼝画笔创建数据窗⼝对象,并把它保存到应
⽤库中;在窗⼝或⽤户对象中建⽴⼀个数据窗⼝控件;通过数据窗⼝控件的属性设置或编写代码将数据窗⼝控件与数据窗⼝对象联系起来,使其成为⼀个整体;在窗⼝画笔或⽤户对象画笔中编写代码以操作数据窗⼝控件以及放置在该控件中的数据窗⼝对象。
(使⽤Retrieve()提取数据,使⽤Update()函数更新数据库中的数据)
创建数据窗⼝对象
1.New——DataWindow(有11种数据窗⼝显⽰风格)——Grid(ok)——Choose Data Source for Grid DataWindow(有5中数据源可供选择)——SQL Select (选择表或视图)——Open——单击数据表所要出现在数据窗⼝中的列名——Return——Select Color and Border Settings (可完成数据窗⼝的背景颜⾊,编辑框字体和边框颜⾊及列颜⾊的设置)——Finish——Save
2.调整对象——选择对象(Edit_Select)——移动与改变对象的⼤⼩——对齐对象、调整对象间间距与⼤⼩——使⽤⽹格和标尺(Design——Options——DataWindow Options)
General——Show Grid(显⽰⽹格)——Snap to Grid(对象⾃动与最近的⽹格线对齐)——Show Ruler(边缘显⽰标尺)——Show Edges(对象的外形尺⼨)——Retain Data to Design(把当前数据窗⼝的数据保存到临时⽂件中)——Retrieve on Preview(从设计模式切换到预览模式时系统将检索数据)
——改变数据窗⼝的显⽰⽐例(Design_Zoom)——对象的跳转次序(Tab Order)——预览数据窗⼝对象
数据窗⼝的布局结构
1.页眉区(Header)——放置每页或没屏顶部显⽰的信息(如报表名,列标题)
组标题区(Group Header)——选择分组风格或创建分组
细⽬区(Detail)——显⽰查询到的数据
组尾区(Group Trailer)
汇总去(Summary)
脚注区(Footer)——通常在脚注区中放置⼀些计算列,如显⽰页码等
2.控制列对象的显⽰与编辑
显⽰格式——Properties(Format)——从右部的格式列表中选择⼀种格式或直接在”Format”编辑框中键⼊显⽰格式
编辑风格——右击要编辑风格的列对象(Properties——edit(Style type,Style name))
控制数据⾏
1.记录过滤——针对数据窗⼝缓冲区中的数据进⾏,不⽣成新的SQL语句,也不访问数据库
过滤条件是逻辑表达式(条件为真的数据被显⽰,为假的数据被隐藏)Rows——Filter(Specify Filter)——键⼊逻辑表达式——Verify,验证逻辑表达式的有效性2.记录排序——定义数据源,通过ORDER BY字句可以对检索到得数据排序,并由DBMS
完成
Rows——Sort(Specify Sort Columns)
3.记录分组——Rows——Create Group(Specify Group Columns)
定义数据源
1.快速选择(Quick Select)
2.SQL选择(SQL Select)
3.查询(Query)数据源
4.外部(External)
5.存储过程(Stored Procedure)
数据窗⼝对象的显⽰风格
增强数据窗⼝对象的功能
1.删除某个列对象(Delete/Clear)
2.在数据窗⼝中增加列对象
静态⽂本对象
计算域
PowerBuilder编程
1.续⾏符&——放在⼀⾏的末尾指⽰下⼀⾏是当前⾏的继续
2.注释——⾏注释//,块注释/**/(PB不执⾏任何注释)
3.标识符——必须以字母开头,其余是字母数字及特殊符号,最长40,不能插⼊空格
4.特殊ASCII码——波浪号(~)引⽤
5.空值(NULL)——PB与数据库交换数据时使⽤的⼀种特殊值,代表数据未定义,不确定
PB的所有数据类型都⽀持空值,变量被赋予空值的途径:
——从数据库中读到空值
——使⽤SetNull()函数赋值(String person/SetNull(person))
测试变量或表达式是否为空值,使⽤函数IsNull()——IF IsNull(a) THEN…
6.对象、属性、函数和事件的引⽤⽅法——在PowerScript中,访问对象的属性等的⽅法就是
使⽤圆点作为标识符
——访问对象属性的格式——对象名.对象属性
例,把单⾏编辑框sle_1的⽤户输⼊内容送到字符串变量UserEnter的语句
UserEnter=sle_1.Text
——程序中访问对象的函数格式——对象名.函数名([参数表])
例,把输⼊焦点移动到单⾏编辑框sle_1上
sle_1.SetFocus()
7.代词——This,Parent,ParentWindow,Super
This——This代表窗⼝,⽤户对象,菜单,应⽤对象或控件本⾝,即代表正在为之编写事件处理程序的对象——This.text=”单击⼀次”(This代表该按钮——因为我们在对按钮的Clicked编写事件处理程序)
Parent——Parent指当前控件所在的窗⼝——关闭窗⼝w_main——close(Parent) ParentWindow——ParentWindow代表运⾏时菜单所在的窗⼝,只能在菜单的事件处理程序中使⽤——close(ParentWindow) 8.保留字——不能再作为标识符
数据类型与变量说明
1.系统预定义的五个全局变量——SQLCA,SQLDA,SQLSA,Error,Message——此外,其它所有
变量在使⽤前必须⾸先说明
2.标准数据类型——Boolean,Char,Date,DateTime,Dec,Double,Int,Long,String
3.枚举类型——PB定义的特殊常量,常⽤于系统定义函数的参数,也能够⽤于指定对象或控
件的属性
——开发⼈员不能定义⾃⼰的枚举类型,只能按系统要求使⽤它
——枚举类型实际上是⼀组值,每个值都以英⽂单词开始,以感叹号(!)结束
——定义多⾏编辑框对齐⽅式的枚举类型为Alignment,其取值为:Center!Justify!
Left! Right!——使⽤赋值语句给Alignment类型的变量或属性赋值——mle_1.Alignment=Center!
4.系统对象数据类型——窗⼝、菜单、各种控件都是系统对象,每⼀种系统对象都是⼀种数
据类型,只需在相应画笔中定义它们——利⽤系统对象类型可以说明对象数据类型变量——window mywin//说明窗⼝变量——menu mymenu//说明菜单对象变量
5.变量说明——使⽤变量之前,⾸先予以说明——数据类型变量名[=初值][,变量名[=初值]]
——变量名必须是标识符
——⼀次说明多个变量,变量之间⽤逗号分隔,变量名⽤前⾯讲到的标识符表⽰
——在说明变量的同时,可以同时指定变量的初值
6.数组——代表⼀系列具有相同类型的变量,它们共⽤⼀个变量名,通过下标访问数组中的
每个元素——Integer person[30]//说明了整型数组person,它有30个元素,下标从1到30 7.变量的作⽤域——全局变量,实例变量,共享变量,局部变量
运算符和表达式
1.操作符——算术操作符,关系操作符,逻辑操作符,连接操作符
2.算术操作符——在使⽤减号(-),负号(-),减⼀(--)运算符时,必须在这些运算符的两边都加上空
格
3.关系操作符——>,>=,<,<=,=,<>
4.逻辑操作符——NOT,AND,OR
5.连接操作符——符号“+”,⽤于把两个String型的变量内容连接在⼀起,形成新的字符串——string TestTest=”北京”+”海淀”//Test中包含“北京海淀”
6.操作符的优先级
基本语句
1.赋值语句——给变量,对象属性赋值——variablename=expression(Address=”北京”)——PowerScript的赋值语句不⽀持多重赋值,⼀条赋值语句只对⼀个变量赋值
2.条件语句——单⾏IF…THEN语句
IF逻辑表达式THEN语句1[ELSE语句2]
IF sle_State.text=”BJ”THEN MessageBox(“欢迎”,”北京”)
——多⾏IF…THEN语句
IF 逻辑表达式1 THEN
语句1
[ELSEIF 逻辑表达式2 THEN
语句2
…
][ELSE 语句n]
END IF
例:从单⾏编辑框中输⼊考分,按“输⼊”按钮再根据考分显⽰及格或不及格
Integer s
S=integer(sle_1.text)//sle_1.text单⾏编辑框⽂本
If s<60 then
St_1.text=”不及格”//St_1.text静态编辑框⽂本
Else
St_1.text=”及格”
End if
3.CHOOSE CASE 语句——根据测试表达式的值选择不同的操作
CHOOSE CASE 测试表达式
CASE 判断表达式
执⾏语句块
[CASE 判断表达式
语句块…
CASE 判断表达式
语句块]
[CASE ELSE
语句块]
END CHOOSE
——判断表达式可以使⽤如下形式:
——⽤逗号分隔的⼀组数据(2,4,7)
——⽤TO表⽰⼀个区间范围(2 TO 15)
——⽤IS代表测试值,后跟关系操作符和⽐较值(IS>30)
——组合运⽤上述三种⽅法,并⽤逗号进⾏分隔(5,6,8 TO 12,IS>20)
4.循环语句——DO…LOOP、FOR…NEXT、GOTO
——DO…LOOP——提供⼀种基于某个条件的灵活的循环⽅法
DO UNTIL<条件>…LOOP
DO WHILE<条件>…LOOP (前两种可以⼀次也不执⾏)
DO…LOOP UNTIL<条件>
DO…LOOP WHILE<条件>(后两种⾄少执⾏⼀次)
——DO表⽰循环的开始,LOOP表⽰循环的结束,condition表⽰循环条件,是个逻辑表达式,其值为True或False ——FOR …NEXT
FOR varname=start TO end[STEP increment]
Statementblock
NEXT
——循环变量varname从start开始,到end为⽌,每执⾏⼀次,varname被重新赋值,为:varname+increment
——EXIT(退出循环,在嵌套循环的情况下,EXIT语句退出当前层循环,⽽不是所有循环)
——CONTINUE(继续循环)
5.返回语句与终⽌程序运⾏
——RETURN——终⽌事件处理程序或函数的执⾏,把控制返回到调⽤程序
——HALT{CLOSE}——终⽌应⽤程序的运⾏,CLOSE是可选项,当HALT语句不带CLOSE选项时,⽴即终⽌应⽤程序的运⾏,当HALT语句带CLOSE选项时,执⾏该语句后,应⽤程序先只想应⽤对象的Close事件处理程序,之后再终⽌应⽤程序的运⾏。
函数与事件的调⽤
1.常⽤函数——系统函数,对象函数(对象名.函数名),数据窗⼝画笔函数
2.消息函数MessageBox()——向⽤户显⽰出错,警告及其它重要信息(在开发过程中常⽤它显⽰程序状态和重要变量的取值)
li_button_pressed=MessageBox(title,text{,Icon,Button{,Default}})
——title(窗⼝标题),text(窗⼝⽂本)
——参数Icon,指定在窗⼝中的图标,枚举类型
信息图标Information!(缺省值)停⽌图标StopSign!惊叹号图标Exclamation!惊叹号图标Question!问号图标None!⽆图标
3.⽇期函数——RelativeDate(date,n)(得到指定⽇期前多少天或后多少天的⽇期)
——DaysAfter(date1,date2)(得到两个⽇期间的天数)
——Today()(得到当前系统⽇期)
——Year(date)——得到⽇期值中的年度
——Month(date)(得到⽇期中的⽉份)
——Day(date)(得到⽇期型数据中的号数)
4.时间函数——RelativeTime(time,n),Now(),Hour(time),Minute(time),Second(time)。