版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
PowerBuilder介绍什么是PowerBuilderPowerBuilder的特点PowerBuilder与数据库的连接完整应用程序开发过程什么是PowerBuilderPowerBuilder是著名的数据库应用开发工具生产厂商PowerSoft公司推出的产品(PowerSoft现已被数据库厂商Sybase所收购),它完全按照客户机/服务器体系结构研制设计,在客户机/服务器结构中,它使用在客户机中,作为数据库应用程序的开发工具而存在。由于PowerBuilder采用了面向对象和可视化技术,提供可视化的应用开发环境,使得我们利用PowerBuilder,可以方便快捷地开发出利用后台服务器中的数据和数据库管理系统的数据库应用程序。 总之在数据库开发工具领域,PowerBuilder是其中非常优秀的一个,利用它我们可以开发出功能强大的数据库应用程序。PowerBuilder的特点
PowerBuilder提供了对目前流行的大多数关系数据库管理系统的支持,由于在PowerBuilder的应用程序中对数据库访问的部分一般采用国际化标准数据库查询语言SQL,使得用PowerBuilder开发的应用程序可以不做修改或者只做少量的修改就可以在不同的后台数据库管理系统上使用。也就是说用PowerBuilder开发的应用程序是独立于服务器上的数据库管理系统的。
PowerBuilder的特点(续)和大多数的WINDOWS应用程序一样,PowerBuilder也是事件驱动工作方式。在这种工作方式中,程序的运行没有固定的流程,程序中的代码也是为各种可能发生的事件编写的,当程序开始运行之后,它就可以接受来自系统,用户或者其它应用程序触发的事件,然后执行相应的事件代码。事件驱动的工作方式与面向对象技术是紧密相关的,在PowerBuilder应用程序中,接受发生的事件的往往就是程序界面中的各种可视化对象。PowerBuilder的特点(续)PowerBuilder是一种面向对象的开发工具,各种WINDOWS应用程序中常见的窗口、菜单、控件等在PowerBuilder中都是一个个的对象。在PowerBuilder中我们还可以创建自己的用户对象。特别要指出的是PowerBuilder提供了对面向对象方法中的各种技术的全面支持,我们可以利用面向对象方法中的对象的封装性、继承性、多态性等特点使得我们开发的应用程序具有极大的可重用性和可扩展性,而这一点正是软件工程中对应用程序所提出的重要目标。PowerBuilder的特点(续)PowerBuilder一个很大的特点就是提出了数据窗口对象的概念。数据窗口对象也是PowerBuilder中的一种对象类型,与其它对象不同的是数据窗口对象是专门为了访问后台的数据库服务的,在数据窗口对象中我们定义了数据的来源和数据的显示风格,这样在应用程序中我们就可以把精力完全放在程序的运行流程控制上,而不用关心具体数据的来源,因为我们在数据窗口对象中已经定义好了数据的来源。如果需要使用数据库中不同的数据也只要对数据窗口对象进行修改就可以了。PowerBuilder与数据库的连接
数据库前端开发工具与后台数据库管理系统的连接方式是一个很重要的课题。 PowerBuilder提供了两种访问后台数据库的方式,一种是通过ODBC标准接口的方式,第二种是通过专用的接口与后台的数据库相连。
PowerBuilder与数据库的连接(续)ODBC的中文名字是开放式数据库连接,它是微软公司提出的数据库连接标准,使用ODBC方式连接数据库的第一步是创建数据源,比如我们可以利用WINDOWS下控制面板中的“32位ODBC”选项来创建驱动某种数据库的数据源,创建好数据源之后,我们就可以在本地计算机中利用定义好的数据源存取后台数据库中的数据了。
我们还可以通过专用接口同后台的数据库相连,由于专用接口是针对特定的后台数据库管理系统而设计,因此这种方式存取数据的速度要比采用ODBC方式存取数据的速度要快一些,如果我们的应用程序只是针对特定类型的后台数据库,当然是采用专用接口访问后台数据更快一些。完整应用程序开发过程 为了使大家尽快了解PowerBuilder的基本工作原理和编程环境,我们以一个完整的数据库应用程序的开发为例,通过对其开发过程的详细介绍,让大家对PowerBuilder有一个基本的认识,为以后的深入学习打基础。
创建新的数据库
创建应用对象创建第一个窗口创建数据窗口对象创建第二个窗口对象建立应用程序运行程序完整应用程序开发过程-创建新的数据库 PowerBuilder作为一种数据库应用程序的开发工具,一般访问的是后台服务器上的大型数据库。但是PowerBuilder自身也带有本地的数据库管理系统SYBASESQLANYWHERE,利用它我们可以创建本地的数据库,由于利用ODBC接口来实现应用程序和远程数据库或本地数据库的连接在操作上并没有太大的区别,下面我们利用PowerBuilder自带的数据库管理系统SYBASESQLANYWHERE来创建本地数据库。完整应用程序开发过程-创建新的数据库 双击屏幕上的PowerBuilder6.5图标,就可以启动PowerBuilder,下图显示的就是PowerBuilder的初始界面,可以看出,PowerBuilder的界面同其它WINDOWS应用程序的界面是类似的,也是由菜单、工具条、工作区和状态条等部件组成。
完整应用程序开发过程-创建新的数据库 单击工具条上的DATABASE画板按钮,利用它来创建新的数据库,单击后屏幕上弹出一个标题为SELECTTABLES的对话框,让我们选择表,这些表是系统当前所连接的数据库中的表,因为我们现在是要创建新的数据库,所以单击对话框的CANCEL按钮关闭这个对话框,接着屏幕上显示的是一个完整的数据库画板窗口,窗口的标题显示的是系统当前所连接的数据库的名字。
完整应用程序开发过程-创建新的数据库 单击FILE菜单,选择其中的CREATEDATABASE菜单项,屏幕上弹出了CREATELOCALDATABASE对话框,利用这个对话框我们就可以创建本地数据库。完整应用程序开发过程-创建新的数据库 单击OK按钮,PowerBuilder的本地数据库管理系统就会自动生成SQL语句,在指定的目录D:\DATABASE下生成一个名为TELEBOOK的本地数据库,并以文件名TELEBOOK.DB保存在磁盘上。观察一下数据库窗口的标题,可以发现系统已经自动把新创建的TELEBOOK数据库作为系统当前所连接的数据库。完整应用程序开发过程-创建新的数据库 数据库是一个容器,其中存放的是一个个的表。接下来我们就来为刚建的TELEBOOK数据库创建表,创建表的过程如下:
单击工具条上的CREATETABLE画板按钮,就弹出了标题为CREATETABLE的对话框,利用这个窗口我们就可以生成定义一张表所需要的各项信息。
完整应用程序开发过程-创建新的数据库 一个表是由很多的字段组成的,接下来开始定义表的各个字段了。注意COLUMNNAME一项,它是用来输入表的字段的名字。这里输入第一个字段的名字为NUMBER,代表一个人在通讯录中的编号。单击DATATYPE一栏的下拉箭头,从中选择当前字段的数据类型,不妨把NUMBER字段设置为INTEGER整型。这时WIDTH和DEC两项是灰色的,这表示对于整型字段,数据宽度和小数点后的数据宽度两项是不可操作的。单击NULL一栏的下拉列表框,弹出YES和NO两项,是用来选择当前的字段是否可以取空值,也就是在以后的实际记录中这一个字段是否可以不往里面输入数据,因为通讯录中的每一条记录都必须有一个编号,所以在NULL项中选择NO,表示这个字段不能取空值。注意到对话框的下部还有很多项用来设置当前字段的扩展信息,要指出的是,对于具体的某个字段,只要对确实需要定义和修改的属性进行修改,其它的属性采用系统所给定的缺省值就可以了。此外有些属性我们等到表建立好以后再重新定义。注意扩展属性中的HEADER项,系统已经设置了缺省值NUMBER,这里把它修改为“编号”,同样地把LABEL项中的缺省值修改为“编号”,上面定义的这两项是设置这个表将来通过数据窗口等途径显示出来时的字段题头和标签。
完整应用程序开发过程-创建新的数据库完整应用程序开发过程-创建新的数据库 这里定义第二个字段的字段名为NAME,代表记录中一个人的名字,数据类型选择为CHAR字符型。最大宽度WIDTH不妨设置为20,显然这个字段也应该是非空的,然后把这个字段的题头和标签都设定为“名字”。 用类似的方法接着定义第三个字段的名字为HOME-ADDRESS,代表家庭地址。它的数据类型为CHAR型,宽度为50,因为在通讯录中可能暂时不知道某个人的家庭地址,所以这个字段可以是空的,即NULL栏选择为YES,字段的题头和标签都定义为“家庭地址”。接着定义第四个字段的名字为POSTCODE,代表邮政编码,它的数据类型设为NUMERIC,即数值型,宽度为6,DEC一栏为数值的小数点后的位数,这里设为0,NULL设项为YES,题头和标签设置为“邮政编码”,第五个字段的名字定义为WORK-ADDRESS,代表工作单位的地址,数据类型也为CHAR型,宽度为50,NULL项为YES,题头和标签设置为“工作单位”,第六个字段的名字设定为TELEPHONE,代表电话号码,数据类型设置为CHAR型,数据宽度为15,NULL项为YES,题头和标签定为“电话号码”,最后一个字段给它起名为STATUS,代表一个人的目前状况,这个字段的值可能会因为人的不同,有时很长,有时很短,有时甚至可以为空值,所以定义它的数据类型为VARCHAR型,即变宽字符型,它的最大长度设置为256,NULL项为YES,题头和标签设为“目前状况”,这样我们就完成了对一个表的基本结构的设置工作。完整应用程序开发过程-创建新的数据库完整应用程序开发过程-创建新的数据库 下一步把表起个名字保存起来,单击工具条上的SAVECHANGES按钮,系统弹出一个对话框让我们输入表的名字,在TABLENAME一栏中给它起名为MYTELEBOOK,单击OK按钮关闭对话框。注意到这时窗口的标题已经从UNTITLED变成了MYTELEBOOK,表示名为MYTELEBOOK的表已经成功地创建了。完整应用程序开发过程-创建新的数据库 单击工具条上的DBADMINISTRATION画板按钮,弹出一个标题为DATABASEADMINISTRATION的可编辑窗口,在这个窗口中可以输入SQL语句来往表中添加记录,不妨在其中输入一条标准的SQL语句为INSERTINTOMYTELEBOOKVALUES(4,‘王晓’,‘安徽天长市建设东路30号’,239300,‘安徽天长市水泥厂’,‘05507545450’,‘担任水泥厂厂长’);
完整应用程序开发过程-创建新的数据库 单击工具栏上的EXECUTE按钮,系统没有给出任何的反应,这表示INSERT语句已经提交给数据库管理系统并被成功地执行,如果输入的SQL语句有错的话,比如我们把上面INSERT语句括号中应该是整数的NUMBER项用一个字符串代替,然后单击工具条上的EXECUTE按钮,系统会弹出对话框提醒我们刚才输入的SQL语句有错,应该修改后再重新提交。完整应用程序开发过程-创建应用对象
应用对象是PowerBuilder应用程序的基础,通过它可以设置有关应用程序的全局信息,例如应用程序的名字,程序使用的图标,程序中文本的字体,应用程序所在的对象库等各种信息。在以后将详细介绍如何设置应用程序的这类信息。要记住的很重要的一点是应用对象是PowerBuilder应用程序执行时的入口点。下面我们就开始创建一个新的应用对象。
单击工具条上的APPLICATION画板按钮,系统弹出一个标题为APPLICATION的窗口,每次启动PowerBuilder后系统都会自动打开前一次的应用对象。下面我们将要创建一个新的应用对象
完整应用程序开发过程-创建应用对象
打开FILE菜单,单击其中的NEW菜单项,屏幕上弹出一个名为SELECTNEWAPPLICATIONLIBRARY的对话框,用于设置把应用对象保存到哪个库文件中。应用程序对象库实际上是一个特殊格式的文件,用于存放应用程序所用到的各种对象。应用程序本身作为一个对象自然要放到对象库中。这里我们创建一个新的对象库,首先设置对象库的存放路径为D:\DATABASE,在文件名一栏中输入对象库的名字为TELEPHONE-BOOK,然后单击保存按钮。
完整应用程序开发过程-创建应用对象 系统又弹出一个名为SAVEAPPLICATION的对话框,用于给应用对象自身起一个名字,为方便记忆,同样给它起名为TELEPHONE-BOOK,对话框下部的注解栏用于输入有关这个应用对象的一些信息。单击OK按钮,系统就创建了一个名为TELEPHONE-BOOK的应用对象和它所在的名为TELEPHONE-BOOK.PBL的对象库。系统弹出一个对话框询问是否需要由PowerBuilder为我们生成一个应用程序的模板,所谓应用程序的模板就是应用程序基本框架,这个框架中含有一些应用程序可能用到的基本对象,利用这个框架可以更好更快地开发应用程序。这里选择“否”不让系统生成应用程序的基本框架,而是由我们自己一步步创建应用程序,以使你对PowerBuilder应用程序的开发过程有一个更深刻的了解。完整应用程序开发过程-创建第一个窗口 窗口在WINDOWS应用程序中是一个极为重要的概念,它提供了应用程序同用户之间交互的非常直观的界面,目前许多的WINDOWS下的开发工具都提供了可视化开发窗口对象的方法,使得开发一个窗口对象变得非常容易,PowerBuilder也不例外,下面就开始创建这里的应用程序中要用到的两个窗口。 首先来创建第一个窗口对象,创建一个窗口的一般步骤如下: 单击工具条上的WINDOW画板按钮,系统弹出一个题为SELECTWINDOW的对话框,用来选择当前对象库中已存在的窗口对象。完整应用程序开发过程-创建第一个窗口 单击对话框的NEW按钮来创建一个新的窗口对象。单击后屏幕上弹出一个题为WINDOW的窗口,接下来就可以往这个窗口中添加需要的控件了。 单击PAINTERBAR工具条上的控件画板按钮,系统弹出一个方框,其中包含有各种各样的可用控件,选中其中的一个,在窗口上单击,就可以把选中的控件放到窗口中。这里首先从方框中选择STATICTEXT控件,然后在窗口中单击,就会发现一个静态文本框空间就出现在窗口中, 再次单击工具条上的控件 画板按钮把第二个静态文 本框控件放到窗口中,用 类似的方法把一个SINGLE LINEEDIT控件,也就是单 行编辑框放到窗口中,最 后再把一个COMMAND BUTTON控件,也就是命令 按钮放到窗口中。完整应用程序开发过程-创建第一个窗口为了使窗口更美观一点,可以对已放入窗口中的控件调整位置和改变一些特性,单击第一个静态文本框选中它,然后放到合适的地方,在上面单击右键,在弹出的菜单中选择PROPERTIES菜单项,系统弹出一个对话框用来设置这个控件的属性,NAME栏显示的是控件的名字,这个名字是用在以后编写的脚本中,系统已经设置了一个缺省的名字,这里不作修改,接下来的TEXT一栏是用来设置显示在静态文本框中的文本,这里把它改为“个人通讯录管理系统”,设好后单击OK按钮,用类似的方法把调整另外一个静态编辑框的位置,并把上面的文字改为“请输入你的使用口令:”,然后激活单行编辑框,调整好它的 位置后把鼠标放在它的右边框上等 鼠标变成水平双箭头形状的时候单击 并拖动鼠标,把编辑框拉长一些;最 后调整命令按钮的位置并把上面的标 题修改为“OK”。用鼠标右键单击窗口 中没有控件的空白区域,然后在弹出 的菜单中选择PROPERTIES菜单项,在 弹出的对话框中把TITLE一栏改为“个 人通讯录”,然后单击“OK”按钮关闭对 话框。完整应用程序开发过程-创建第一个窗口 单击工具条上的PREVIEW按钮可以预览设计好的窗口,窗口的标题就是我们刚在窗口的TITLE属性中输入的值。关闭预览窗口,这样我们就定义好了第一个窗口对象,需要给它起一个名字,单击FILE菜单的SAVE菜单项,弹出一个题为SAVEWINDOW的对话框,在WINDOWS一栏中给窗口起一个名字为TELEPHONE-WINDOW1,这个明字将用于以后的程序中,输好后单击OK按钮,可以发现窗口的标题已变成刚输入的名字,到此为止第一个窗口就设计好了。完整应用程序开发过程-创建数据窗口对象
在创建第二个窗口对象之前,我们需要先来创建两个数据窗口对象。数据窗口对象是PowerBuilder的一大特色,它为我们操作数据库中的数据提供了一种直观有效的手段,利用它可以方便地联结数据库,以自己喜欢的方式显示数据库中的数据以及修改数据库。下面就开始创建第一个数据窗口对象。 单击工具条上的DATAWINDOW画板按钮,系统弹出一个名为SELECTDATAWINDOW的对话框,用以选择已存在的数据窗口对象或者创建新的数据窗口对象。完整应用程序开发过程-创建数据窗口对象
这里来创建一个新的数据窗口,单击NEW按钮,在弹出的NEWDATAWINDOW对话框中有DATASOURCE和PRESENTATIONSTYLE两个组合框,分别用来选择要创建的数据窗口的数据来源和显示样式,关于这些选项的含义在以后的内容中再详细介绍,这里选择数据源为QUICKSELECT,即简单查询型,数据显示样式选择GRID,即网格型。完整应用程序开发过程-创建数据窗口对象
单击OK按钮,系统弹出一个名为QUICKSELECT对话框用于对数据源进行配置,在TABLES栏中选中先前创建的表MYTELEBOOK,这时在COLUMNS栏中显示出MYTELEBOOK表中的所有的字段,让我们从这些字段中选择其中的一些,这样做是考虑到用户在大多数时候可能只对表中的某些字段感兴趣,没必要在提供给用户的界面上显示出记录的所有的字段。目前创建的这个数据窗口是用来浏览通讯录的大致情况,所以只选中NUMBER,NAME TELEPHONE三个字段, 选好后在对话框的下部 显示出这三个字段,在 每一个字段的下面又有 三个选项,单击NUMBER 字段下的SORT选项框, 在弹出的下拉框中选择 ASCENDING选项,这表示 以后在数据窗口中显示数 据的时候按编号字段从小 到大的顺序显示记录,以 便于查看。其它的选项我们 不作改动。完整应用程序开发过程-创建数据窗口对象
单击OK按钮,这样就为数据窗口设好了数据源,系统弹出的标题为DATAWINDOW的窗口中显示出的三个字段就是刚才选中的字段,可以看出DATAWINDOW窗口 被划分成了四个带状 区域,这四个区域的 大小和内容都是可以 设计的,在HEADER
区域中系统已经自动 放好的就是我们为每 个字段设定的题头,
HEADER中的内容以 后将显示在数据窗口 中。
完整应用程序开发过程-创建数据窗口对象
单击左边工具条上的PREVIEW预览按钮,窗口中显示出预览的结果,数据库中的数据也自动按编号字段从小到大的顺序显示在网格中。完整应用程序开发过程-创建数据窗口对象
接着为设计好的数据窗口对象起一个名字,双击DATAWINDOW窗口的左上角,弹出一个对话框询问是否保存设计结果,选择“是”后出现SAVEDATAWINDOW对话框,在DATAWINDOWS一栏中给设计好的数据窗口起名为TELE-DATAWINDOW1,确定在APPLICATIONLIBRARIES选中的是TELEPHONE-BOOK1.PBL,然后单击OK按钮,就完成了第一个数据窗口对象的创建。 再次单击POWERBAR工具条上的DATAWINDOW画板按钮,来创建第二个数据窗口对象,这个数据窗口用来显示在第一个数据窗口中选中的某个记录的详细信息。类似地,在弹出的对话框中选择NEW按钮,在NEWDATAWINDOW对话框中数据源选为SQLSELECT,即标准的SQL查询方式,数据显示方式这次设置为FREEFORM,即自由表格形式,它的特点是数据窗口中显示的每条记录的字段纵向排列,看起来比较清楚,选好后单击OK按钮,接下来弹出的对话框中同样选中MYTELEBOOK表后单击OPEN按钮,窗口中显示出表的所有字段,这次选中它的所有字段,可以发现在窗口下部的工作区中显示出自动生成的SQL语句,单击下部的SORT标签,单击并拖动NUMBER字段到右边的方框中,旁边出现的复选框表示已经把NUMBER字段按上升排序。单击DESIGN菜单,选中其中的RETRIEVIALARGUMENTS菜单项,弹出的对话框用来定义SQL语句的搜索参数
完整应用程序开发过程-创建数据窗口对象
在NAME栏中给参数起名为NUMBER-SEARCH,TYPE就选择为NUMBER类型,然后单击OK按钮,就定义好了搜索参数。单击窗口下部的WHERE标签,单击COLUMN栏后选择NUMBER字段,OPERATOR栏就选择“=”号,VALUE栏中输入冒号加刚才定义的搜索参数NUMBER-SEARCH,然后单击PAINTERBAR工具条上的SELECT画板按钮,就定义好了数据窗口的数据源的具体格式。
完整应用程序开发过程-创建数据窗口对象
单击左边PAINTERBAR工具条上的PREVIEW按钮,弹出一个对话框用来输入刚才定义的搜索参数的值,这里不妨输入1,确定后窗口中就显示出表TELEBOOK中的NUMBER的值为1的记录。选择PAINTERBAR工具条上的EXIT按钮,弹出的对话框询问是否保存数据窗口,单击“是”后,在弹出的对话框中给数据窗口起名为“TELE-DATAWINDOW2”,确定在APPLICATIONLIBRARIES选中的是TELEPHONE-BOOK1.PBL对象库,然后单击OK按钮,就完成了第二个数据窗口对象的创建。完整应用程序开发过程-创建第二个窗口对象 在创建了两个数据窗口对象后我们来创建第二个窗口,把数据窗口对象应用到窗口中去。 单击POWERBAR工具条上的WINDOW画板按钮,在对话框中选择NEW按钮来定义一个新的窗口。 单击PAINTERBAR工具条上的控件画板按钮,在弹出的方框中选择DATAWINDOW控件,再在窗口中单击把它放到窗口中,这里要提醒一点的是这里的DATAWINDOW控件与前面定义的数据窗口对象是两个不同的概念,这里的DATAWINDOW控件相当于一个容器,是用来存放数据窗口对象的。这里的数据窗口控件的作用是显示出数据库中所有记录的主要信息,所以可能在一个窗口中显示不下所有的数据,在这个DATAWINDOW控件单击鼠标右键,在弹出的菜单中选择PROPERTIES菜单项,在弹出的对话框中选中VSCROLLBAR复选框,就为数据窗口控件在以后显示数据的时候提供了一个垂直滚动条,以便可以利用滚动条看到数据窗口中的所有的记录。 用和放入第一个数据窗口控件类似的方法在窗口中放入第二个数据窗口控件,然后再在窗口中放入四个COMMANDBUTTON控件, 鼠标右键单击激活窗口中的第一个DATAWINDOW控件,在弹出的菜单中选择PROPERTIES菜单项,弹出DATAWINDOW对话框,系统已经自动为这个控件起名为DW-1,这里就用这个名字,单击BROWSE按钮开始为控件定义它所联结的数据窗口对象,在弹出的SELECTDATAWINDOW对话框中选择数据窗口为TELE-DATAWINDOW1,然后单击OK按钮,可以发现在DATAWINDOW对话框的DATAWINDOWOBJECTNAME一栏中出现了刚选中的数据窗口对象。完整应用程序开发过程-创建第二个窗口对象 单击OK按钮,第一个数据窗口控件中显示的就是它所联结的数据窗口对象的结构。 用类似的方法为第二个数据窗口控件联结刚才定义的数据窗口对象TELE-DATAWINDOW2,联结好之后把四个命令按钮控件上的文字分别改为“插入”,“删除”,“更新”和“关闭”,而它们的名字则分别修改为“CB-INSERT”,“CB-DELETE”,“CB-UPDATE”,“CB-COLSE”。完整应用程序开发过程-创建第二个窗口对象 接下来调整窗口的大小和窗口上的每个控件的位置和大小,要注意的是要使得数据窗口控件中的数据窗口对象的每一个字段都能在控件中看得到。调整好之后可以单击PAINTERBAR工具条上的PREVIEW按钮预览一下窗口的样子。设计好窗口以后单击PAINTERBAR工具条上的SAVE按钮,弹出SAVEWINDOW对话框用来给窗口起一个名字,给它起名为TELEPHONE-WINDOW2,确定对话框下部的对象库是TELEBOOK.PBL后单击OK关闭对话框。这样就定义好了第二个窗口对象。
完整应用程序开发过程-建立应用程序
到目前为止,本程序中用到的对象都定义好了,但程序还不能运行,因为我们还没有为程序编写代码,这种代码在PowerBuilder中被称为脚本,PowerBuilder是一种基于面向对象的事件驱动机制开发工具,所以脚本也是针对对象的事件来编写,接下来就为应用程序编写脚本。 PowerBuilder应用程序的特点是从应用对象开始执行程序,所以我们首先要做的是为应用对象的打开事件编写代码,单击POWERBAR工具条上的APPLICATION画板按钮打开应用对象,然后单击PAINTERBAR工具条上的SCRIPT画板按钮,系统弹出SCRIPT对话框用来为应用对象编写脚本,从SELECTEVENT下拉列表框中选择OPEN事件,然后在工作区中输入如下脚本: SQLCA.DBMS=PROFILESTRING("PB.INI","DATABASE","DBMS","") SQLCA.DBPRAM=PROFILESTRING("PB.INI","DATABSE","DBPRAM","") OPEN(TELEPHONE-WINDOW1)完整应用程序开发过程-建立应用程序 解释这段脚本前要先介绍事务对象的概念,这里的SQLCA就是一个系统自动提供的缺省事物对象变量,SQLCA是一个全局变量,可以用在所有的窗口对象中。事物对象的作用是为联结数据库提供有关的信息,以便可以从数据库中获取需要的数据。这段脚本所做的工作是在应用对象启动后首先从POWERBUIDER中存放与数据库有关信息的文件PB.INI中取得需要的值放入事物对象变量中,然后打开TELEPHONE-WINDOW1窗口,以便用户从登录窗口输入正确的密码后可以进入到个人通讯录管理系统。这里就为应用对象编写这三行代码。完整应用程序开发过程-建立应用程序 单击POWERBAR工具条上的WINDOW画板按钮,选择打开TELEPHONE-WINDOW1,我们开始为它编写脚本,右键单击窗口上的OK按钮,首先在菜单中选择PROPERTIES菜单项来修改OK控件的一个属性,在弹出的对话框中有一个DEFAULT复选框,我们选中它,这样在以后程序运行的时候按回车键的效果和单击OK控件就一样了,单击OK关闭对话框。完整应用程序开发过程-建立应用程序 然后再次右键单击窗口上的OK按钮,在菜单中选择SCRIPT菜单项开始为这个命令按钮的单击事件编写脚本,观察窗口的标题确定目前选择的是命令按钮的CLICK事件后在工作区中输入以下的脚本: ifupper(trim(sle_1.text))="MYPASSWORD"then open(telephone_window2) close(telephone_window1) else
sle_1.setfocus() endif 这段脚本所做的工作是当用户在打开的登录窗口中单击OK按钮的时候判断单行编辑框中的字符串在去掉前后的空格符和整个转换成大写字符后是否为字符串“MYPASSWORD”,如果是的就打开我们在前面定义的第二个,也就是用来对个人通讯录数据库进行操作的窗口,然后再关闭登录窗口,如果输入的字符串与设定的字符串“MYPASSWORD”不符的话就表示用户不能对通讯录数据库进行访问,就把输入焦点切换到编辑框让用户重新输入正确的口令,这里我们把口令设成了“MYPASSWORD”,在实际应用中你可以换成一个自己的口令,这样可以保证自己的数据库的安全性。完整应用程序开发过程-建立应用程序 接下来我们为第二个建立的窗口,也就是真正对数据库进行操作的窗口编写脚本,这里的脚本是真正完成对数据库中数据的修改。首先要为窗口的打开事件编写脚本,也就是在窗口打开后需要干什么事。用类似打开第一个窗口的方法打开第二个窗口,用鼠标右击窗口中的空白区域,在弹出的菜单中选中SCRIPT菜单项,系统弹出一个用来为窗口本身所有可能的事件编写脚本的窗口,选中窗口的打开事件后在窗口的工作区中输入如下脚本: CONNECTUSINGSQLCA; DW-1.SETTRANSOBJECT(SQLCA) DW-1.RETRIEVE() DW-2.SETTRANSOBJECT(SQLCA) 脚本的第一条语句的意思是用刚才介绍的系统事物对象SQLCA联结数据库。第二行脚本的意思是告诉数据窗口控件DW-1中的数据窗口对象利用事物对象SQLCA来取得数据库的有关信息。而第三条语句的意思是让数据窗口控件中的数据窗口对象,要利用创建该数据窗口对象时的SELECT语句来获得数据显示在相应的数据窗口控件中。第四行语句的作用和第二行语句的作用是类似的,是告诉数据窗口控件DW-2所联结的数据窗口对象从系统缺省的事物对象SQLCA中获取有关数据库的信息。这样我们就为对数据库进行操作的窗口的打开事件编好了脚本,要指出的是可以发现这里的脚本都是做一些窗口被打开后必须做的事情,即初始化工作。
完整应用程序开发过程-建立应用程序接下来我们为窗口中的控件编写脚本,首先为数据窗口控件DW-1的鼠标单击事件编写脚本,脚本要达到的目的是当用鼠标单击数据窗口控件DW-1中显示出来的某条记录时,关于这条记录的详细信息将显示在数据窗口控件DW-2中。鼠标右击数据窗口控件DW-1,在弹出的菜单中选择SCRIPT菜单项,系统弹出编写脚本的窗口,从SELECTEVENT下拉列表框中选择事件为CLICKED,然后在工作区中输入如下脚本:intrecordnumber//脚本的前两行是定义了两个整型的变量intcurrentnumberrecordnumber=dw_1.getclickedrow()//第三行脚本的意思获取被用户用鼠标单击的那行记录的行号, //也就是第几个记录,并把这个值放在变量RECORDNUMBER中ifrecordnumber=0thenmessagebox("thisisamessage","notvalidrow,pleaseclosethisdialogandclickavalidrowindw_1")else
correntnumber=dw_1.getitemnumber(recordnumber,1)
dw_2.retrieve(currentnumber)endif 这是一段很重要的脚本,深刻理解这段脚本对你以后的编程会有很大的帮助的。如果用户虽然单击了数据窗口控件DW-1,但单击的是没有数据的地方,这时函数返回的行号就为零,表示用户单击的不是一条有效的记录。从第四条语句一直到最后是一个IF条件语句,它的作用是判断用户单击的是否是一条有效的记录行,如果不是的就弹出一个对话框告诉用户错误和解决方法。如果用户单击的是一条有效的记录行,就从这行所对应的记录中取出第一个字段NUMBER的值,并把这个值放入变量CURRENTNUMBER中,然后把变量CURRENTNUMBER作为数据窗口控件DW-2所联结的数据窗口对象TELE-DATAWINDOW2定义时的搜索参数的值,使用RETRIEVE函数把对应的记录从数据库中取出来显示在数据窗口控件DW-2中。完整应用程序开发过程-建立应用程序 接下来我们为窗口中最下面的四个命令按钮分别编写脚本。首先看“插入”按钮,用和前面类似的方法打开“插入”按钮的事件编写窗口,选中CLICKED事件,开始输入下面的脚本: dw_2.reset()
dw_2.insertrow(0) 这段脚本只有两句,第一条语句的意思是清除数据窗口控件DW-2中的已有记录,即使得数据窗口控件中没有任何内容。第二条语句的作用是向数据窗口控件所联结的数据窗口对象中加入一条新的记录。 再为“删除”按钮编写脚本,用和前面
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 人工智能安全审计框架设计
- 老屋加盖施工方案
- 人工智能在市场情绪识别中的研究进展
- 灯光亮化工程应急预案
- 高密楼梯施工方案
- 医院窗户施工方案
- 2026年国际注册信息系统审计师(CISA)资格考试(英文版)综合试题及答案一
- 湖南长沙市立信中学2025-2026学年下学期七年级期末考试英语试卷-文字版-含答案-
- 2026年二级造价工程师考试模拟题库及答案:建设工程计量与计价实务、水利工程(荆门)
- 2026年初级统计师资格考试(统计专业知识和实务)能力提高训练试题库及答案(河南)
- DB35∕T 1036-2023 10kV及以下电力用户业扩工程技术规范
- 合格分包方管理制度
- 安全培训矩阵管理制度
- cnc操机员考试试题及答案
- 办公耗材采购配送服务项目方案投标文件(技术方案)
- 股票市场的隐秘科学
- 矿山打钻作业承包合同
- GB/T 41850.9-2024机械振动机器振动的测量和评价第9部分:齿轮装置
- 初中数学综合实践活动课
- DL∕T 2002-2019 换流变压器运行规程
- DL-T5190.1-2022电力建设施工技术规范第1部分:土建结构工程
评论
0/150
提交评论