您好,欢迎访问三七文档
POWERBUILDER教程第一章概述1.1特点1.事件驱动在事件驱动方式中,程序的运行没有固定的流程,程序的代码也是为各种可能发生的事件编写,当程序开始运行后,它可以接受来自系统、用户或其他应用程序触发的事件,然后执行事件代码。建立窗口、控件和其他应用部件时都含有一组预定义的事件。例如:clicked(单击),用户也可以定义自己的事件。2.面向对象Windows应用程序中常见的窗口、菜单、控件在powerbuilder中都是一个个对象。同时,也可以创建自己的用户对象。每个对象都有自身的特征和行为(属性、事件和函数)。Powerbuilder提供了基础类库PFC,它为应用程序开发提供了许多可重用的预定义类和对象,利用基本类库PFC可以快速开发高质量、重用好的应用程序。3.Powerscript语言Powerbuilder中,所有的处理逻辑都是用powerscript语言编写,powerscript是PowerBuilder是专用语言。4.强大的数据库窗口对象数据窗口对象是PowerBuilder中的一种对象类型,是专门为访问后台的数据库服务的,在数据窗口对象中可以定义数据的来源和数据的显示风格,这样在应用程序就可以把精力完全放在程序的流程控制上,而不用关心具体数据的来源。如果需要使用数据库中不同的数据,也只要对数据窗口对象进行修改就可以。5.其他特点支持internet、支持分布式应用、支持多平台、支持大多数关系型数据库(Sybase、MSSQLSERVER、ORACLE等等以及ODBC等其他数据源)等等1.2安装略注:升级至7.0111.3开发环境IDE1菜单栏图标说明New新增新增一个对象Inherit继承选择一个对象并继承它Open打开选择一个对象并打开它Selectapplication选择一个应用Librarylist库文件列表To-do-list任务类别Browser打开对象浏览Library打开库文件相关对象Dbprofile打开数据库配置Dababase打开数据库Edit打开文本编辑器Run运行选择的程序Debug调试选择的程序Exit退出第一章库文件工具栏图标说明Createlibrary创建新的库文件Edit编辑选择的对象打开选择对象的属性窗口Export导出选择的对象Import在当前库文件中导入一个对象Displaycurrentlibrary显示应用所在库文件对象的对象Close关闭第二章对象编辑工具栏图标说明选择并在当前对象中插入一个控件屏蔽当前选择脚本代码放开当前选择脚本代码编译当前对象第三章库文件编辑区第四章对象编辑区第五章Datawindow编辑器1.4预备知识一个PowerBuilder应用程序一般由若干个窗口组成,每个窗口有若干个控件(如按钮、菜单、文本等),每个对象或控件都有若干个事件(如按钮的单击或双击等),每个事件将对应一段程序。1.5习题第二章库文件与应用对象2.1库文件如果一个应用创建的对象很多,可以考虑将这些对象存储于多个pbl文件中,一般按照功能模块或按对象类型组织存放。2.2应用对象所有的程序在运行时都需要一个入口,应用程序运行时从这个入库点开始启动。在PowerBuilder中的入口就是应用程序对象。在PowerBuilder中应用程序就是应用对象(application)、窗口(window)、数据窗口(datawindow)、菜单(menu)、以及用户对象(userobject)等。2.3应用对象属性、事件、函数1应用对象的属性2应用对象的事件应用程序的事件关键点:事件的触发条件是什么事件的参数事件的典型处理脚本事件的返回值事件中那些函数不能使用3应用对象的函数第三章数据库连接2.1数据库概述1关系型数据库逻辑结构为一个二维表2表一个数据库通常包含多个表,每个表都包含行和列,一个表的数据可能和其他表有关联。3主键一个或多个列的组合,用来唯一标识表中的行。4外键一个表的一个或多个列,这些列于其他表的主键列相对应。用于保证数据库的有效性。5索引可以提高数据的检索速度,同时也加大了数据存储和写入时间。6视图不同于表,可以理解为一个虚表。它的字段都隐藏在相关的实表中。7扩展属性Pb连接数据库是创建。Pbcatcol保存字段信息Pbcatedt保存编辑风格Pbcarfmt保存显示风格Pbcattbl保存数据表信息Pbcatvld有效性校验2.2数据库使用2.3数据库连接1.odbc连接2专用数据库连接略3事务对象事务对象(transcationobject)在PowerBuilder应用中有很重要的地位,它执行各种嵌入式的sql语句。它是一个特殊的不可视对象,其功能就是为PowerBuilder程序和数据库之间建立通讯,事务对象中定义了PowerBuilder用来与数据库连接的参数。在访问数据库之间,首先要创建一个事务对象,并把数据库连接所需参数赋给这个事务对象的相应属性,然后通过这个事务与数据库进行连接,才能完成所需的数据库操作。PowerBuilder会自动为应用程序创建一个sqlca的默认全局事务对象,在应用程序中可以使用这个默认事务对象进行数据库连接,当然也可以自定义事务。事务对象的属性例子:SQLCA.DBMS=ODBCSQLCA.AutoCommit=FalseSQLCA.DBParm=ConnectString='DSN=ukhis;UID=sa;PWD=sql2008'事务对象的管理语句Connectusing[事务对象];连接数据库,之前要指定相关的属性,成功后才能与数据库通讯。Disconnectusing[事务对象];断开与数据库的连接Commitusing[事务对象];提交尚未提交的数据Rollbackusing[事务对象]撤销尚未提交的数据第四章语法4.1语法基础1注释行注释open(w_main)//代开主窗口行注释已//开始,其后书写注释,直到行结束块注释/*CreatebyxykaiInput输入参数Output输出参数*/块注释已/*开始,其后写注释,直到*/结束注:默认情况下在代码编辑器中注释显示为蓝色2标示符标识符是程序中用来代表变量、标号、函数、窗口、菜单、控件对象的名称。注:命名的规则参见《开发规范》标示符不能使用保留关键字3语句分隔符、断行及续行分隔符;PowerBuilder中对分隔符要求不是那么严格,不需要每条语句都有分隔符,一般键入enter键(回车)即可。有关sql操作的需要指定分隔符。续行&大多数情况下一条语句一行,有时超长或希望多写几行的情况时使用续行符。例如:intli_xifli_x=1&li_x=2thenendif注:续行符的使用位置参见《开发规范》4特殊字符5空值空值(Null)一种交换数据的特殊值,指代表变量的数据未定义、不确定,它与空字符串、数值0以及日期00-00-00的意义是完全不同的。与null值进行任何运算结果都是null。有两种途径能得到null值。1从数据库获取2通过setnull得到。例如:stringls_idSetnull(ls_id)6保留关键字And、call、case、choose等等7常用代词This代表窗口、用户对象、菜单、应用程序或控件对象自身Parent可以在窗口的控制、用户定制对象和菜单的程序中使用。在窗口的控制中使用时代表包容该控件的窗口。例如:一个窗口w_win中有一个按钮,可以在按钮的clicked中写代码Close(w_win)和Close(parent)效果是一直的。Super在编写控制或对象的子对象时,可以用于调用祖先的脚本。Callsupper::clicked4.2数据类型1标准数据类型2any数据类型一种可变的数据类型,程序中给它赋什么类型,它就代表什么类型。注:虽然灵活,但又潜在风险,由于类型不确定所用时间会更长、编译时不能发现错误只有运行时才会发现等等。3系统对象类型在PowerBuilder中,窗口、菜单、各种控件都是系统对象,每种对象实际上都是一种数据类型。例如:WindowmywinDatawindowmydatawindow4枚举类型例如left!、righ!等等.注:开发人员不能定义自己的枚举类型,而只能按系统要求使用它。4.3变量与常量1定义除系统预定义的5个全局变量外,所有的变量在使用之前都需要进行说明。语法如下:数据类型变量名{=初始值}例如:IntegeriIntegerj=12作用域3数组数组代表具有相同类型的一系列变量。声明如下:数组类型数组名[下标]例如:Stringls_id[30]Stringls_type[5]={‘a’,’b’,’c’,’d’,’e’}注:PowerBuilder中数组的下标从1开始4常量应用程序不能修改的变量,提高可读性和可维护性。语法如下:Constant数据类型常量名=常量值例如:Constantdecldc_pi=3.14154.4运算符1双目运算符有两个操作数的运算符为双目运算符2单目运算符3组合运算符4连接运算符连接运算符只有一个,即使符号+。表示把两个string或blob变量进行连接。例如:Stringls_a,ls_b,ls_cls_a=‘hello’ls_b=‘world’ls_c=ls_a+ls_b5关系运算符6逻辑运算符7运算符优先级4.5语句1赋值语句用于给变量、对象属性进行赋值,是使用最频繁的语句。格式如下:Variablename=expression说明将表达式的值赋值给左边变量Variablename代表变量名Expression代表表达式例如:ls_id=‘a’ls_id=ls_a+ls_b2条件语句If…thenifcondition1thenaction1elseifcondition2action2elseaction3endifconditon1、condition2代表条件表达式action1、action2、action3代表一条或多条语句。例如:Ifli_score=85thenLs_dengji=‘优秀’Elseifli_score=60thenLs_dengji=‘及格’Elsels_dengji=‘不及格’endif注:单行语句可以不写endif。例如:ifli_i=1thenReturnChoosecasechoosecasetestexpressioncaseexpressionliststatement[caseexpressionliststatement……][caseelsestatement]endchoosetestexpression代表测试值expressionlist代表可能出现的测试值statement代表执行的语句段例如:Choosecasels_dengjiCase‘优秀’Messagebox(‘成绩’,’你的成绩高于85分’)Case‘及格’Messagebox(‘成绩’,’你的成绩高于60分’)CaseelseMessagebox(‘成绩’,’你的成绩低于60分’)Endchoose3循环语句For…next例如:IntegeriIntegerli_sum=0ForI=1to50li_sum=li_sum+InextDo…loopDowhile…loopDo…loopwhile4流控制语句Continue在循环语句中遇到时则不执行continue之后和循环结束之前的语句,开始新一轮循环。Exit在循环语句中遇到时跳出循环Goto控制语句到指定的标签gotolabel1label1为指定的标签Halt用于终止应用程序的运行。Halt[close]有close是先执行对象的close事件。Return立刻终止事件或函数运行,把控制返回调用的程序。Return[expression]expression代表一个表达式。Call在继承对象中调用祖先的脚本4.6对象的建立和释放PowerBuilder中支持系统对象类型和用户对象类型,当程序中声明了此类变量时只是定义了变量的指针,并没有真正建立对象。需要通过c
本文标题:PB教程
链接地址:https://www.777doc.com/doc-4354723 .html