PowerBuilder9.0教程

更新时间:2023-09-04 14:08:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

PowerBuilder9.0教程

第一章PowerBuilder简介

本章主要内容:本章中,首先扼要地介绍本课程在软件课程中的作用和信息系统

的开发模式 PowerBuilder的主要特性,然后阐述集成开发环境的组成、各画

板的功能、作用、定制开发环境的方法、对象的基本概念等,并在章尾介绍本课

程的教学内容以及开发PowerBuilder应用程序的基本步骤。

自学内容:

1.1本课程在软件课程中的作用

在计算机专业中,软件教学占有非常重要的位置。为了满足计算机职业岗位

群的需要,近年来,我们对计算机网络专业和计算机程序员专业中的软件课程进

行了相应的改革。通过学习Word、Excel、FrontPage等常用软件使学生学会计

算机的使用方法;通过学习C语言程序设计、数据结构等课程使学生掌握基本的

程序设计方法;通过学习SQL Server使学生掌握网络数据库的设计方法和使用

方法;通过学习网页制作和Java语言使学生能够编写网站应用程序;通过学习

PB使学生能够编写客户端应用程序;通过学习软件工程使学生能够懂得软件开

发的全过程,掌握编写软件的规范,为学生在“软件工厂”从事软件工作打下基

础。从以上分析可知,PB课程属于与职业岗位群直接有关的课程,在整个软件

课程体系中占有比较重要的位置。

不同的软件课程应该采用不同的教学方法,根据软件的特点,我们把软件课

程分成三种不同类型:

1.程序设计类型。这类课程需要讲的内容较多,讲的内容相对也比较完整,

使用传统的“课堂教学+课后习题+上机实验”教学方式即能满足教学要求。

2.交互类型。这类课程人机交互内容占绝大多数,操作性强,采用传统的

“黑板+粉笔”的授课方式不但难以讲清楚,而且学生也很难学会使用。因此,

对这类课我们通常采用上机授课,一人一机,边讲边练的方式,一般都能取得较

好的效果。

3.可视化程序设计类型。这类课程往往是可视化的程序设计语言或软件开

发工具,它既有程序设计类型的特点,也有交互类型的特点。PB即属于这类课

程,因此需要对这类课程的授课方式进行探讨。

体系如下图所示。

1.2 信息系统的开发模式

PowerBuilder9.0教程

1. 单机模式

2. C/S模式

3. B/S模式

PowerBuilder9.0教程

1.3 PowerBuilder 概述

作为一个功能不凡的客户/服务器型应用程序开发工具,PowerBuilder相当

庞大,它的众多功能都在其开发环境中得到了体现。对初次接触PowerBuilder

的开发人员来说,可能会感到有点无从下手,但当你掌握了PowerBuild基础知

识并熟悉了它的使用方式后,很快就会爱不释手、游刃有余了。

PowerBuilder 的集成开发环境为开发人员提供了一个交互式定义对象、编

写代码、调试程序的图形界面。应用程序中使用的各种对象均通过称之为画板

(Painter)的相应工具来定义,比如,窗口对象使用窗口画板定义、菜单对象

使用菜单画板定义、用户对象使用用户对象画板定义、等等。开发人员定义的所

有对象都作为一个个的单独条目最终保存到磁盘文件中,这些磁盘文件叫做应用库,将应用库理解成应用程序的源文件也未尝不可。

PowerBuilder应用程序的开发过程实际上就是定义对象、组合对象的过程。

PowerBuilder 是Sybase Inc的子公司---PowerSoft---推出的新一代数据

库应用开发工具,它除了能够设计传统的高性能、基于客户/服务器

(Client/Server)体系结构的应用系统外,也能够用于开发基于Internet的应

用系统。PowerBuilder 支持应用系统同时访问多种数据库,这既包括诸如

Oracle、Sybase之类的大型数据库,也包括小至FoxPro之类的支持ODBC接口

的数据库。另外,PowerBuilder 开发环境随系统携带的Adaptive Server

Anywhere本身就是个功能强大的DBMS,对小型应用来说,直接使用这个数据库

就是个质优价廉的选择。

为方便用户界面的开发,PowerBuilder 提供了大量控件,这既丰富了应用

程序的表达能力,也加快了项目的开发进度。PowerBuilder 还支持分布式应用

系统的开发,形成多层应用系统结构,也就是说,用PowerBuilder 不仅能够开

发客户端应用程序,而且还可以轻而易举地构造应用服务器,从而形成分布式应

用。PowerBuilder 支持多种平台,并能生成机器代码的可执行文件。下面简单

地介绍一下PowerBuilder 的特点:

一 专业的客户/服务器开发工具

PowerBuilder9.0教程

客户/服务器是一种将任务进行分解、然后协同解决的计算模式。客户端的

应用程序负责提出任务需求,服务器端的应用程序则为客户提供服务。用

PowerBuilder 开发出的应用程序能够与数据库服务器完美地协同工作,构成客

户/服务器计算模式。

二 强大的Web开发功能

1、通用的Web目标

2、4GL Web页面

3、Web DataWindow容器组件

三 面向对象的程序设计

在PowerBuilder中创建的窗口、菜单、数据窗口等都是对象。除了使用系

统预先定义的对象外,开发人员可以自行构造新的对象(称做用户对象),扩展

系统的预定义对象,将各种对象有机地组合起来就构成了PowerBuilder应用程

序。

对象包括三方面的特征:属性、事件和函数。

¨ 属性规定了对象的特征,比如标题是什么,以何种颜色显示等;

¨ 事件说明对象响应什么样的操作,当我们单击窗口时,就向窗口发出了一个

单击事件;

¨ 函数封装了对象的功能,也是应用程序与对象交换信息的主要手段,在其它

面向对象的编程语言中,也尝把函数称做“方法”。

PowerBuilder主要包括的对象:

1.应用对象(Application)

2.窗口对象(Window)

3.数据窗口对象(DataWindow)

4.菜单(Menu)

5.函数(Function)

6.查询(Query)

7.结构(Structure)

8.用户对象(User Object)

9.工程对象(Project)

四 事件驱动的应用程序

所有运行于该环境下的程序并不是顺序地执行,而是用户通过各种操作控制应

用程序的流程。

五 支持多种关系数据库管理系统

用PowerBuilder 开发的应用程序可以同时访问多个数据库系统,比如说,

我们可以从Oracle中查询数据,然后将结果放入到Foxpro中。PowerBuilder

支持多种关系数据库管理系统(RDBMS),既包括诸如Oracle、Sybase、Microsoft

SQL Server、IBM DB2、Imformix等大型数据库,也包括Xbase、Foxpro、Paradox

等个人数据库。对大型数据库来说,PowerBuilder 提供了旨在充分发挥其性能

的专用接口,而小型数据库则可通过ODBC接口灵活地访问。

而且,PowerBuilder 本身带有一个功能不凡的数据库---Sybase SQLAnywhere,

利用它我们可以脱离网络环境单机运行应用程序。

六 丰富的数据表现风格

PowerBuilder 的数据窗口为展现数据的本质提供了丰富的手段,数据窗口能

够从多种数据源提取数据,然后以多种风格展现在用户面前,这既包括文本显示

PowerBuilder9.0教程

方式,也包括统计图分析方式。利用数据窗口,用户可以直观地查询、修改、插

入、删除、打印、浏览数据,而且,PowerBuilder 的数据窗口还提供了组框对

象和按钮对象,开发人员可以使用它们将数据窗口中的对象进行分组,并且将用

户对数据窗口的操作界面集成在数据窗口内部。

七 支持交叉平台开发

目前支持的平台有:

1. Windows 95/98/Me/2000

2. Macintosh

3. UNIX

4. Sun Solaris

5. HP-UX

6. IBM AIX RS6000

八 具有极高的开发效率,支持团队开发

应用程序开发步骤

用PowerBuilder开发应用系统时,一般都要经过系统分析、系统设计、系

统开发、代码调试、系统测试、生成EXE、交付应用等各个阶段。

一、系统分析和系统设计

实际上,在开发任何应用系统之前,开发人员都必须充分了解系统需求,理

解系统应该完成的真正任务,千万不能因为赶进度而过分缩减或忽略该阶段的工

作,这一阶段的成果很大程度上决定了项目的成败。理解了系统需求后,就进入

系统设计阶段,考虑用户界面的风格、使用何种数据库、如何组织数据等。

二、系统开发

在PowerBuilder 中,建立应用程序需做的大量工作是创建对象、描述对象、

设置属性,而不是编写大量的代码。系统开发过程可分为:

1.建立应用对象;

2.生成用户对象、函数和结构;

3.建立窗口和菜单;

4.创建数据窗口对象,将数据窗口对象连接到窗口上;

5.编写各对象的事件处理程序;

6.调试应用;

7.测试系统;

8.生成EXE文件。

第二章 数据库管理

本章主要内容:本章中,首先介绍数据库接口及与数据库的连接,然后阐述连

接到数据库之后如何操作数据库,这些操作包括创建表、删除表、维护索引和

关键字等。这些操作在PowerBuilder 8.0中都被集成到数据库画板中,然后在

库画板调用打开相应的画板或使用其他工具来操作数据库。

自学内容:

2.1 数据库接口和数据库连接

PowerBuilder与数据库的连接通过数据库接口来实现。PowerBuilder提供

了两类接口:ODBC接口和专用接口。

1. ODBC(Open Data Base Connectivity)接口是微软公司提出的开放式数据库互

连标准接口,它以关系数据库标准查询语言SQL来存取连接到的数据源,

PowerBuilder9.0教程

ODBC支持单个应用系统访问多个不同的数据库管理系统(DBMS)。

2. 专用接口针对具体的数据库管理系统而设计,通过专用接口我们可以将

PowerBuilder 连接到相应的数据库上。

一、ODBC接口

ODBC是PowerBuilder与数据库进行连接的接口之一,它位于PowerBuilder

与具体的数据库管理系统之间,它由四层结构组成:

1.一层为ODBC应用软件,包括用PowerBuilder 开发的应用程序。

应用程序通过调用ODBC函数,向ODBC数据源提供操作数据源的SQL语

句,并处理SQL语句返回的结果。PowerBuilder 通过动态链接库PBODB60.DLL

完成这一功能。对开发人员来说,调用ODBC函数的过程是隐含的,它由

PowerBuilder6.0自动完成。

2.第二层为驱动管理程序,或称作驱动管理器,它管理并装载驱动程序。

驱动管理器的作用为:

用ODBC.INI文件把数据源名映射成特定驱动程序的动态链接库

处理几个ODBC初始化调用

为每个驱动程序提供ODBC的入口点

检验ODBC的调用参数和次序

3.第三层为驱动程序,它处理ODBC函数调用,提交SQL请求到特定的数据

源并把结果返回给应用程序。

4.第四层是数据源,数据源包括要存取的数据以及相关的操作系统、数据库管

理系统和网络系统。

通过ODBC接口,PowerBuilder 访问数据库的模式:

通过ODBC接口把PowerBuilder 开发环境连接到数据库实际上要经过三

个步骤:

1.建立或配置与要连接的数据库对应的数据源ODBC数据源:应用ODBC配置

画板。

2.建立数据库描述文件或设置连接参数。 应用“DB Profile”工具栏,打开

“Database Profile”对话框,选择ODBC,单击鼠标右健选择“New Profile”。

3.连接到ODBC数据库:使用“DB Profile”画板将开发环境连接到相应的数

据源上了。

2.2创建和删除数据库

一、创建数据库

讲解创建数据库的主要步骤。

练习创建Server Anywhere8.0的stock数据库。

PowerBuilder9.0教程

二、删除数据库

讲解删除数据库的主要步骤。

练习删除stock数据库。

练习:

1、通过ODBC与本地机上的SQLServer 2000中的数据库student建立连接

2、通过ODBC与教师机上的SQLServer 2000中的数据库student建立连接

3、通过ODBC与本地机上的Server Anywhere8.0中的数据库stock建立连接

通过以上练习,重点找出不同之处

2.3操纵表结构

数据表是一个二维表,它可以表示一个关系数据模型中的关系。由列表示字

段(或域),由行表示元组(或记录)。

注意:⑴在PowerBuilder中不能用汉字作为数据表的列名。

⑵Integer型数据由系统最多定义长度。

⑶数据的长度就是数据表的列的宽度。

数据表定义工具栏: 创建表实际上就是定义构成表的各列的特性,即列属性。列属性分为基本属

性和扩展属性,基本属性必须加以定义,包括列名称、列数据、列宽度、小数位

数、是否为空以及默认值,其中小数位数只有当数据类型为数值型时才需加以定

义。列的扩展属性主要用于定义列的显示格式、编辑风格和有效性规则。

一、创建表

1.单击工具栏中的“Create table”按钮,打开列视图。

2.在列视图中,每一行定义表的一个列的属性,包括如下信息(按Tab键将输

入焦点移动到下一栏,按Shift+Tab键将输入焦点移动到上一栏):

Column Name:表的列名,使用标识符作列名;

Data Type:指定列的数据类型,PowerBuilder以列表形式列出当前数据库支

持的所有类型,从中选择所需类型;

Width:列的宽度;

Dec:小数位数,只有当列的数据类型选择为Decimal或Numeric时才需要

输入这个值,它表示小数点后数字的位数;

Null:是否允许为空值,Yes允许,No不允许;

Default:设置该列的默认值。

3.输入完表的一个列各种属性后,将输入焦点定位在上部的任意编辑框中,按

回车键系统自动插入下一列。

4.定义了表的所有列后,单击工具栏中的Save按钮,打开“Greate New Table”

对话框,在该对话框中的“Table Name”中输入表名,然后单击“OK”按钮

关闭对话框并保存所创建的表。

二、修改表

只能修改非关键描述,不能对已经定义过的列数据类型进行修改。

三、删除列

注意:删除一个列的定义将删除此列中的所有数据。

2.4 定义列的扩展属性

1、列的属性对话框

PowerBuilder9.0教程

列的“属性”对话框不但可以对列进行“扩展属性”的设置,更主要的是能

够新建和修改“扩展属性”的属性值选项。

“属性”对话框有“General”普通、“Headers”标题、“Display”显示、

“Validation”有效性、“Edit Style”编辑风格,五个选项,最右边的3个选项卡

(2)“Headers”标题属性

“Headers”标题属性项包括列的扩展属性中的“表头”和“标签”两个属

性。并可以改变“表头”和“标签”的位置。

(3)“Display”显示属性

“Display”显示项中,可以定义新的显示格式,也可以修改已有的显示格

式定义。

(4)“Validation”有效性属性

“Validation”有效性属性用于对输入数据的限制。

(5)“Edit Style”编辑风格属性

“Edit Style”编辑风格项的主要功能是修改已有的“编辑”属性值,或定义

新的“属性”值。有如下编辑风格:

编辑框:用于设置列的一些基本属性。

下拉列表框:用于设置下拉列表框。

复选框:可以让用户在2个可选值中选择一个作为输入值。

单选按钮:单选按钮可以让2个或多于2个的可选值中选择一个作为输入值。

编辑屏蔽:可以让用户按某种固定的格式输入数据。

2、定义列的扩展属性操作步骤

(1)在对象视图区中展开当前连接的数据库→Tables→Columns,然后选择

要定义的扩展属性的列;

(2)单击工具栏上的Properties按钮,打开列视图区;

(3)激活Display选项卡,如下图;

PowerBuilder9.0教程

(4下

拉列表框用于选择当前列数据的显示格式,该显示格式以系统表的形式存储于数

据库中;

(5)Justify下拉列表框用于选择显示列数据的对齐格式,可选项有None、

Left、Right和Center,分别表示不对齐、左对齐、右对齐和中间对齐。

(6)Display Height和Display Width编辑框可设置显示列数据所占据的

矩形的高度和宽度,以厘米为单位;

(7)左Case下拉列表框中可选择显示列数据时字母的大小写,可选择的有

Any、Upper和Lower,分别表示任意、大写和小写;

(8)启用Picture复选框,则该列数据以图片形式显示,即只有当该字段

获得焦点时才显示数据,否则不显示数据;

(9)最后,单击工具栏上的Save按钮保存属性设置。

2.5创建索引、主键及外键

定义构成表的各列的基本属性后,可以说已经建立了表,但是创建表的目

的是为了向表中存储数据,而仅定义各列基本属性后尚不能向表中输入数据,

这是因为在PowerBuilder中要向表输入数据,必须为表定义一个唯一索引或主

关键字。

㈠建立主关键字

“主键”由一个数据表中的一个或几个列组成。通过主键,可以连接到另外

一个或几个相关的数据表。选定表后建立主键有两种途径:

▲在展开的表名下用鼠标右键单击Primary Key项,然后选择弹出的New Primary

Key菜单项;

▲数据库画板的PainterBar的下拉图标列表框中选择Create new primary key for

selected table工具按钮。

进入主键设置对话框后进行选择,然后单击PainterBar上的Save按钮存盘

完成了主关键字的建立。

㈡建立外部关键字

外键是与主键相对而言的。外键是指一个数据表与另一个或几个数据表相联

系的一个键。建立了外键以后,就可以通过主键打开与之有外键相连的所有数据

表。选定表后建立主键有两种途径:

▲在展开的表名下用鼠标右键单击Foreign Key项,然后选择弹出的New Foreign

PowerBuilder9.0教程

Key菜单项;

▲数据库画板的PainterBar的下拉图标列表框中选择Create new foreign key

for selected table工具按钮。

进入外键设置对话框后有2个选项卡:

①General选项卡:在这里要为外键指定一个名称,并要选择构成外键的字

段;

②Primary Key选项卡:在这里要确定构成外键的字段属于那个表的主键;

以上项目确定后单击PainterBar上的Save按钮存盘完成了外键的建立。

㈢建立索引

建立索引只会改变数据表中的逻辑顺序,而不会改变数据表中的记录的物理

顺序。只有建立了索引才能在数据库窗口中输入和修改数据。选定表后建立主键

有两种途径:

▲在展开的表名下用鼠标右键单击Indices项,然后选择弹出的New Indices

菜单项;

▲数据库画板的PainterBar的下拉图标列表框中选择Create new indices for

selected table工具按钮。

进入索引设置对话框后进行选择:

①索引名称(Index):由于一个表可以建立多个索引,所以这里必须指定名

称;

②选择建立索引的字段,可以选择一个或多个字段;

③指定是否唯一(Unique)索引,如果是则选中复选框Unique;

④说明索引是按升序还是降序排列,如果是升序则选中复选框Ascending,

否则是降序。

以上项目确定后单击PainterBar上的Save按钮存盘完成了索引的建立。

㈣ 删除表、主键、外部键与索引键

1.删除表

当一个和多个数据表不再使用时,可以将其删除。删除一个数据表要十分慎

重,数据表一旦删除,就不可以再恢复。

2.删除主键

1.单击要删除的主键标志

2.单击“数据库”工具栏中的“Drop Object”按钮,出现提示信息框。

3.单击提示信息框中的“是”按钮,结果就将所选择的主键删除。

3.删除外键

与删除主键方法相似

4.删除索引

与删除主键方法相似。 要强调的注意事项:

1、必须为索引命名,否则将无法删除

2、在建立主键、外键时要确保数据正确。

2.6操纵表数据

数据操作工具栏:

上图中的图标依次为:Retrieve(恢复)、Save Changes(保存修改)、Insert Row

(插入行)、Delete Row(删除行)、First(翻到第一页)、Prior(翻到前一页)、

PowerBuilder9.0教程

Next(翻到下一页)、Last(翻到最后一页)、Print(打印)。

选定表后单击鼠标右键弹出菜单,选择“Edit Data”后有3种选择分别为:Grid——表格格式,Tabular——列表格式,Freefrom——自由格式。单击这3个选项的任意一个,都将打开输出视图区,利用该视图区可以插入、浏览、修改、

一、 创建一个表的子集视图

二、创建二个表的子集视图

实训内容:熟悉系统开发环境,实训教材:P7.实训二

练习1:

建立学生成绩管理库包含学生(Student)、课程(Course)、和成绩(Grade)三个表,它们的字段名和类型如下:

Student(学生表):

sno(学号)主键 char(7)

sname(姓名) char(10)

sex(性别) char(2)

birthday(出生日期) datetime

wherefrom(生源) char(6)

his(简历) text

Course(课程表):

Cno(课程编号)主键 char(6)

Cname(课程名称) char(20)

Type(类型) char(1)

Hours(学时) smallint

Grade(成绩表):

sno(学号) cno(课程编号)主键 char(6)

score(成绩) decimal(5,1)

练习2:

PowerBuilder9.0教程

定义Student表、Course表和Grade表的扩展属性。

练习3:

㈠ 建立主关键字。

㈡ 建立外部关键字。

㈢ 建立索引。

㈣ 删除表、主键、外部键与索引键。

练习4:

对Student表、Course表和Grade表的数据进行编辑(每个表输入20条记录)。

PowerBuilder9.0教程

第三章 创建应用程序对象

本章主要内容:本章中,主要介绍如何创建PowerBuilder应用程序对象。应用程序对象是PowerBuilder应用程序可包括的主要对象之一,它通过应用程序对象画板来创建。

自学内容:

任何数据库系统的应用,都离不开数据库,因此,每一个数据库系统的应用都会与一个或几个数据库相联系。反过来,任何一个数据库都是与一个或几个应用相关的,否则这个数据库就没有存在的价值。

至于是先创建应用呢?还是先创建数据库呢?这两者并无先后次序可言。 每个PowerBuilde用程序都必须有一个、而且只能有一个应用对象,也可以说,应用对象代表了应用程序,程序从应用对象开始运行。

PowerBuilderr是个面向对象的开发环境,用它开发的应用程序以对象和事件为

基本特征。

3.1应用程序对象

一、应用程序对象是PowerBuilder应用程序启动时装入的第一个对象,它是用户应用程序的入点。除了标识应用程序和作为应用程序的入口点外,应用对象还保存和定义了下述信息:

1.缺省字体:应用对象是个非可视对象,它的4个字体属性(Label Font,Text Font,Column Font,Header Font)用于定义应用程序中其他对象使用的默认字体。

2.应用程序图标:指定用哪个图标代表运行中的应用程序。

3.缺省的全局变量:PowerBuilder为每个应用程序都提供五个缺省的全局数据库接口和数据库连接变量,分别为SQLCA,SQLDA,SQLSA,Error,Message。

4.应用对象结构、函数和实例变量。

二、通常应用程序除必须包含应用程序对象之外,还包含如下PowerBuilder对象:

1.窗口及其控件。

2.数据窗口。

3.菜单。

4.函数。

5.结构。

6.脚本语言代码。

7.外部资源文件。

8.项目。

3.2应用对象画板和菜单

PowerBuilder应用程序的开发过程实际上是在各个画板工作窗口中完成的,画板的工作窗口也就是对象的实际窗口,把它看成对象的设计器也未尝不可。在应用对象画板工作窗口中可以完成如下工作:

●创建或选择应用对象;

●设置应用对象的属性;

●编写应用对象事件脚本;

●保存应用对象;

● 显示应用的组成成分。

PowerBuilder9.0教程

一、在应用对象画板中,具有两个工具栏,即PainterBar1和 PainterBar2如图3-1。其中:

◆PainterBar1工具栏的作用是实现Windows编辑功能,如剪切、复制和粘贴。 ◆PainterBar2工具栏与脚本工具栏具有相同作用,用于帮助用户编写应用程序

二、和应用程序对象画板相联系的菜单有Edit、View、Insert和Design。其中: ■Edit菜单所包含的命令用于实现编辑操作,如对剪切板的操作、各种特殊性粘贴、查找与替换等。

■View菜单所包含的命令用于打开各种视图区。

■Insert菜单所包含的Object、Event、Function、Structure命令分别用于向当前用于程序中插入对象、事件、函数和结构。

Design菜单只有一个命令,即Option,该命令用于设置应用程序选项。

3.3创建新的应用对象的步骤

一、建立工作空间:

在PowerBuilder 8.0中用工作空间(Workspace)管理应用程序。在一个工作空间中可以建立多个应用程序,可以同时开发和管理多个应用程序。因此,用PowerBuilder8.0开发应用程序必须首先建立工作空间,具体方法是:

⒈单击PowerBar上的New按钮打开New(新建)对话框;

⒉选择Workspace(工作空间)选项卡中的,然后单击OK命令打开New Workspace(新工作空间)对话框;

⒊选择保存工作空间文件的目录,并输入工作空间文件名,然后单击“保存”命令按钮。

二、建立目标和应用对象

在PowerBuilder 8.0中工作空间管理的是目标(Target),每个目标对应一个应用或应用程序,在建立应用程序目标时将自动建立一个应用对象。建立目标的方法是:

⒈单击PowerBar上的New按钮打开New对话框,并选择Target(目标)选项卡;

⒉从Target选项卡中选择Application(应用程序),并单击OK按钮打开Specify New Application and Library(指定新的应用和库)对话框;

⒊在Application Name中输入应用程序名,然后PowerBuilde会自动生成默认的库文件名和目标文件名(可以修改),最后单击Finish完成目标的建立。

PowerBuilder9.0教程

3.4设置应用对象的属性

应用对象是开发PowerBuilder应用程序必须用到的对象,应用对象的属性对整个应用程序的开发起着举足轻重的作用。利用应用对象可以为应用程序设置下述属性:默认的字体属性、应用程序的图标、默认的全局对象的类型。

1.设置默认字体

应用对象的4个字体属性决定了开发应用程序过程中经常使用的4种字体,这4个字体属性分别为:Text Font、Column Font、Header Font、Label Font。 ◇Text Font决定窗口中控件、用户对象、数据窗口中静态文本的默认字体; ◇Column Font指定数据窗口中检索出的数据使用的字体;

◇Header Font定义列表风格(Tabular)和网格风格(Grid)数据窗口对象中列标题的默认字体;

◇Label Font确定自由风格(Freefrom)数据窗口对象中列标签的默认字体。

2.设置应用程序图标

应用程序图标的用途是代表应用程序。程序运行后,如果用户将其最小化,该图标就出现在屏幕上。指定应用程序图标的操作步骤如下:

⑴打开一个需要设置字体的应用对象,在其中的属性对话框中单击“Additional Properties”按钮。选择“Icon”选项页。

⑵单击,系统显示“Select Drag Icon”对话框,选择一个合适的图标文件(后缀为.ICO),单击“打开”按钮后,其文件名出现在“Icon Name”编辑框中,图标图案显示在“Browse”按钮下面。

⑶单击“OK”按钮完成应用程序图标的设置。

3.指定默认全局变量的类型

PowerBuilde 8.0提供了5个内置的全局变量(SQLCA、SQLDA、SQLSA、Error、Message),它们都有默认的类型,但开发者可对其进行修改,步骤如下:

⑴打开一个需要设置字体的应用对象,在其中的属性对话框中单击

“Additional Properties”按钮。选择“Variable type”选项页。

⑵显示缺省的全局变量:

SQLCA,SQLDA,SQLSA,Error,Message。

PowerBuilder9.0教程

⑶如需改变,可在相应的编辑框中键入新的类型,单击“OK”按钮完成类型设置。

3.5 应用对象的事件

应用对象的事件一共只有6个,但却十分重要。无论何时运行一个应用程序,首先运行的脚本就是应用程序对象的Open事件。如果此脚本是空的,应用程序绝不会进行任何操作,而且还提示用户编写Open事件脚本。下面介绍应用对象的Open、Close、Idle、SystemErro、ConnectionBegin、ConnectionEnd。事件的发生时机与常见用法。

一、Open(打开)事件

Open事件是PowerBuilder应用程序的唯一入口,在启动应用程序是发生,且只发生一次。对所有应用程序来说都必须对该事件编程,否则运行应用程序时系统将出现一个警告对话框,提醒必须对应用对象的Open事件编程。一般来说,在Open事件处理程序只应该完成下述工作:

◇完成初始化工作;

◇利用INI文件设置某些属性,或初始化一个事务对象;

◇查询环境,保证运行应用程序所需要的所有资源都可以使用;

◇连接要访问的数据库;

◇打开应用程序的第一个窗口。

二、Close(关闭)事件

应用程序的Close事件只发生一次,它发生在退出应用程序、返回到操作系统之前,通常在这个事件的事件处理程序中完成下述工作:

◇删除应用程序运行过程中创建的对象(例如额外的事务对象等);

◇往INI文件中保存状态信息,以便下次运行程序时恢复状态;

◇关闭应用程序中尚未关闭的文件;

◇断开与数据库的连接。

三、Idle(空闲)事件

Idle在下述情况下发生,首先在应用程序的某段程序中使用Idle()函数设置一个定时器时间间隔,如果在时间间隔规定的时间内用户没有敲击键盘或使用鼠标(即用户没有操作应用程序),那么系统产生应用对象的Idle事件,用户的任何交互操作都将重设该定时器。Idle事件的用途有下述几种:

◇创建自己独具特色的屏幕保护程序;

◇隐蔽机密数据并强制用户在长时间未操作应用程序时重新输入新密码;

◇了解用户是否长时间未操作应用程序,如果是的话,应用程序可以自动退出、返回系统,这样有助于减少数据库的连接数目并节省数据库资源。

四、SystemError(系统出错)事件

SystemError事件是处理运行错误的最后一道关卡,用来处理最严重的错误,可以在此处编写错误处理和可能的恢复代码,简单的措施是显示出错信息。如果未对此事件编程,那么系统出错时PowerBuilder会通过对话框显示代码和错误信息。

五、ConnectionBegin(连接开始)事件

ConnectionBegin事件用于分布式PowerBuilder应用的服务器端。当客户程序试图连接到服务器程序的连接时,触发服务器程序应用对象的ConnectionBegin事件。

六、ConnectionEnd(连接结束)事件

PowerBuilder9.0教程

ConnectionEnd事件用于分布式PowerBuilder应用的服务器端。当客户程序试图断开与服务器程序的连接时,触发服务器程序应用对象的ConnectionEnd事件。

3.6 选择应用对象

一、在SystemTree中选择

先介绍如何打开工作空间

二、在open工具栏中选择

实训内容:

1.创建应用程序对象

⑴建立工作空间

⑵建立目标和应用对象

2.在应用程序对象的打开(open)事件中添加连接数据库的脚本

实训教材:P13.实训三

PowerBuilder9.0教程

第四章 窗口对象

本章主要内容:本章中,将叙述窗口对象的创建、修改、属性设置、事件及其

事件处理程序的编写,为以后编写程序打下基础。

自学内容:

4.1 窗口概述

窗口是用户界面的最基本要素,是应用程序的界面,应用程序通过窗口显示运行状态和执行结果。

窗口由4部分组成:属性、事件、函数和控件。窗口的属性决定了窗口的外观和行为(比如窗口类型、初始位置、是否有边框等),它的事件说明了应用程序能够响应用户的操作类型,它的函数为程序控制窗口提供了简洁而安全的手段。

窗口是应用程序图形界面的基础,它由属性、事件、函数、控件组成,用户通过窗口及窗口上的控件和菜单表达自己的操作意图。

窗口还是其他PowerBuilder控件(比如按钮、编辑框、数据窗口控件等)的物理载体,PowerBuilder中的各种控件均需要放置到窗口才能发挥作用。

除此以外窗口是用户同应用程序之间的交互界面。窗口可用来显示信息、请求、

用户输入和响应用户的鼠标或键盘动作。

4.2 窗口类型

主窗口(Main Window)主窗口是独立的窗口,它不依赖于其它任何窗口而独立存在,这种类型的窗口既能够覆盖其它窗口,也能够被其它窗口覆盖。对功能单一的应用,通常选用主窗口作界面基础。

弹出式窗口(Popup Window) 弹出式窗口通常由另一个窗口打开,该窗口一般情况下成为弹出式窗口的父窗口。弹出式窗口显示在父窗口前面,它既可以移出父窗口,也能够覆盖父窗口,但不能被父窗口覆盖,当父窗口最小化时,弹出式窗口随之隐藏,父窗口被关闭时,弹出式窗口也随之关闭。弹出式窗口用途广泛,它可以显示文字信息,也可以作成图形化的进度提示窗口,还能够用于输入用户的选择。

子窗口(Child Window)子窗口从属于另一个窗口,它总是在主窗口或弹出式窗口中打开,该窗口成为子窗口的父窗口。子窗口可以在父窗口内部移动,但不能移出父窗口。当子窗口的一部分移出父窗口时,系统剪裁子窗口,使得只有父窗口内的部分可见。移动父窗口时,子窗口随之移动,关闭父窗口时,子窗口也随之被关闭。

多学两招:子窗口的位置总是相对于父窗口,而不是相对于屏幕。

响应窗口(Response Window)响应窗口向用户请求信息,它总是在另一个窗口(父窗口)中打开。响应窗口被显示时,用户必须关闭了该窗口后才能操作同一个应用程序的其它窗口。响应窗口不能被最大化、最小化,但可以带有控制菜单。

MDI框架窗口(MDI Frame )和带微帮助的MDI框架窗口(MDI Frame WithMicrohelp)MDI框架窗口及其子窗口构成了应用程序的多文档界面风格,它有两种形式:普通的MDI框架窗口和带微帮助的MDI框架窗口,两者的区别在于,后一种框架窗口在底部多了个状态栏,用于显示应用程序简短的当前信息,我们将其称做微帮助(Microhelp)。典型的MDI框架窗口由标题、菜单、工具栏、客户区、状态栏组成。PowerBuilder 开发环境使用的就是带微帮助的MDI

PowerBuilder9.0教程

框架窗口。

4.3 窗口事件及事件处理程序

窗口对象中最常用的事件是Open、Close、CloseQuery、DragDrop、Resize

一、打开窗口的Open事件

在窗口打开之后、显示之前发生,此时系统已经构造好了窗口的所有属性以及其上的所有控件。

二、激活窗口的Active事件

在激活(Active)窗口前发生,该事件发生后,窗口中第一个跳转次序号最小的对象首先得到焦点。如果窗口中没有这样的对象,则窗口本身得到焦点。

三、单击窗口的Clicked事件

用户单击窗口中空白区域时发生,窗口的空白区域指窗口内未被有效控件占据的区域,即窗口中没有可见、有效控件的地方。

四、关闭窗口的Close事件

窗口被关闭时发生。触发该事件后,没有办法能够阻止窗口关闭操作。

五、关闭窗口时的CloseQuery事件

在开始关闭窗口时,发生该事件,该事件返回一个0或1的返回值。

执行该事件的事件处理程序后,系统检查返回值,如果返回值为1,则窗口不被关闭,通常情况下紧随其后发生的Close事件不被产生;如果返回值为0,则窗口被关闭。

利用该事件的这种特性,程序能够根据当前状态提醒用户保存数据、询问用户是否真要关闭窗口。窗口被关闭时,同时关闭任何与之相关的子窗口和弹出窗口。

六、按键时的Key事件

当用户在键盘上按下一个键且插入点不在编辑区域(如单行编辑框、超文本框等)中时发生。

七、窗口右击时的RButtonDown事件

当用户在窗口客户区中任何未被有效控件占用的部分按下鼠标右键时发生。

4.4 窗口函数

一、打开窗口函数

在应用程序中使用窗口的第一步工作是通过Open( )函数打开窗口,打开之后才能对窗口进行各种操作。Open( )函数有两种语法格式:

第一种语法格式为: Open ( windowvar {, parent } )

其中:①参数windowvar是要显示窗口的名称,我们可以直接使用窗口画笔中定义的窗口名;

②参数parent可以省略,未省略时,由该参数指定父窗口的名称,此时,被打开窗口作为子窗口形式出现。

Open( )函数返回整型值1表示打开窗口成功,返回整型值-1表示打开失败。

例如,我们用窗口画笔定义了一个窗口w_main,那么在应用对象的Open事件中写上代码:Open(w_main)则程序运行后,窗口w_main就会出现在屏幕上。

例如: 打开w_main窗口

Open(w_main)

第二种语法格式为: Open ( windowvar ,windowtype{, parent } )

本文来源:https://www.bwwdw.com/article/m47i.html

Top