精华区 [关闭][返回]

当前位置:网易精华区>>讨论区精华>>编程开发>>● Powerbuilder>>PFC>>第一章 关于PFC

主题:第一章 关于PFC
发信人: mrliuz()
整理人: leitiger(2002-06-06 00:06:06), 站内信件
第一章 关于PFC
这一章介绍的是PFC的基础,PB的首要概念,面向对象的内容,并附有一个PFC的
组成图。

理解PFC:
PFC是一组PowerBulider的对象,它可以由用户自己定制,扩充。你可以象搭积木
一样使用它,使程序紧密的连接起来。PFC还包括许多有用的对象,例如:debug对
象。
PFC是由PowerBuilder提供的PB对象,并支持PowerScript 源代码。它使用的是先
进的PowerBuilder面向对象技术,其一个特征是面向服务设计。确使你的程序占
用最少的计算机资源。
PFC使用了许多先进的编码技巧,你可以使用PowerBuilder的PowerScript编译器
来检查对象,实例,事件,和继承PFC父类的函数。
这本书说的是PFC的概念(PFC是什么东西和你为什么使用它)还有使用信息(如何计
划.使用PFC)
为了更详细的了解PFC的对象,实例,事件,和继承PFC父类的函数,请看PFC Object
Reference 。

理解PowerBuilder:
使用PFC可以创建先进的面向对象式的PowerBuild类库。要想掌握PFC和它的面向
对象特征,首先需要了解PowerBuilder和它的面向对象特征。这一节将告诉你应
该熟悉PowerBuilder的基本概念。
PFC原是为建类库准备的,但并不是不让你用它创建应用程序。通过看PowerBuild
er User's Guide可以完全了解的PowerBuilder的概念。

PowerBuilder类库和对象:
PFC是作为PowerBuilder Libraries(PBLS)发行的。PBLs包括你用于写程序的父类
和派生类对象。在使用任何PFC对象之前,你一定要在你的应用程序库的搜索路径
中把PFC类库加进去。PowerBuilder在执行程序时通过搜索路径找到程序所引用的
对象。

PB标准对象 用途
Windows PowerBuilder应用程序和它的用户之间的联系界面。
Menus 用户在当前活动窗口用来搜索命令的表。
DataWindow objects 用于接收,实时处理数据。
User objects 由用户自己定义的对象(一次定义可以重复使用)。
User objects 有两种类型:
(一):Visual user objects (可视化用户对象)
一个可视化用户对象是一个可以重复使用的可视化控制,或者是一批预先确定的可
视化控制.PFC包括两种可视化用户对象类型.
1.标准的可视化用户对象类:
PFC提供了一套丰富的标准的可视化用户对象.每个PFC的标准的可视化用户对象都
相当于一个PowerBuilder的窗口控件.这些对象包括以PFC服务预想确定完全的综
合操作。 特别值得一提的是u_dw DataWindow 用户对象,这是以PFC服务来提供
广泛的综合功能。
2.用户自定义的可视化用户对象 
PFC也提供了用户自定义的可视化用户对象,这些对象包括一组窗口控件,并提供
先进的函数用在某些特别情况。 (PFC没有使用外部用户对象和VBX用户对象,要
想进 一步了解可视化用户对象,请看"PowerBuilder User's Guide")  
(二):Class user objects(非可视用户对象类)
一个非可视用户对象是一个用来实现非可视的处理时使用的控件。PFC包括两种非
可视用户对象类型。
1.标准的非可视用户对象:
标准的非可视用户对象是继承 PowerBuilder内嵌的系统对象而来。PFC提供了许
多标准的非可视用户对象,例如:处理事务,错误对象,和其他所有的扩展系统对
象。
2.用户自定义的非可视用户对象:
用户自定义的非可视用户对象是继承 PowerBuilder非可视对象类而来,它把数据
和代码进行封装。这种类型的用户对象允许你从SCRATCH定义一个对象。
PFC用Class user objects来执行它的许多服务以及提供这些服务对象的函数。它
也提供?reference variables(引用变量),何谓 rdference variables呢?即是
一个对象指针。你可以用它来存取一个对象的实例变量,函数,事件。

Functions(函数):
PowerBuilder支持全局函数和对象函数。PFC通过user_object function执行它的
处理。一个函数就是执行一些处理的PowerScript语句的集合,你可以传递数据或
者是什么也不传,它来返回一个值。
详细信息册参考PFC Object Reference。

Events and user events(事件和用户事件):
PowerBuilder的Windows,user objects,contols,都有一些预先设定的事件。PFC
通过定义用户事件为许多PFC 对象增加事件。事件可以接受数据和返回值。共有
三种PFC 事件: 

事件类型 触发时间
PowerBuilder预先设定的事件 某个动作导致操作系统调用事件
预先编好代码的用户事件 某个动作(例如选择一个菜单)导致PFC触发用户事件

空的用户事件(可以加入代码) 某个动作(例如选择一个菜单)导致PFC触发用
户事件
除非另有说明,本书的event都指的是这三种。

Function and events compared (函数和事件比较)

函数和事件在许多方面都是相似的:
(1)他们都可以接收数据,返回值;
(2)他们都由PowerBuilder语句构成;
(3)他们都可以被调用,触发,传递。
但他们还是有些不同的:
使用特征 函数 事件
调用一个不存在的 将会出现运行时错误 TriggerEvent返回-1
覆盖父类脚本 直接覆盖父类脚本 可以扩展或者覆盖
访问 可以是Public、Private、Protected  永远是Public
重载 可以重载 不可以重载

面向对象式的设计
面向对象的编程工具支持三个基本规则:inheritance(继承),encapsulation
(封装),polymorphism(多态)。 

如何使用PFC扩展层:
在PFC中没有类库完全适合你的需要,你可以代表性的修改PFC来满足你的程序的
需要。假如没有PFC扩展层,就会出现一个问题:当PFC版本升级时,新版本的PF
C恢复该这些修改,而你不得不用手工改变。

一个特别的扩展层:
PFC产生一个扩展层是通过继承所有的层实现的。所有的扩展对象都在单独的PBL
S,这在PFC升级时不会影响。

内容 祖先层
Application and global services PFCAPPSRV.PBL
DataWindow services PFCDWSRVPBL
Visual and standard class user objects PFCMAIN.PBL
Utility services PFCUTIL.PBL
Window services PFCWNSRV.PBL

祖先层的类库中的对象包括所有的实例变量,事件,函数;扩展层的类库中的对
象是相应祖先层类库中的对象的不可修改的子类。即使是继承,也可以访问祖先
的实际变量,事件和函数。
通过PowerBuilder Bowser来察看子类的对象的实际变量,事件和函数。

使用扩展层有二个优点:
1. 你可以增加一些点,部门,还有程序逻辑。
2. 不会影响版本升级。

旧版本对象:
PFCOLD。PBL Library包含旧的对象。如果你有一个存在的PFC程序,你有可能需
要把他加在你的library list.

注意:
你要通过修改扩展层的对象来定制PFC程序。千万不要轻易修改祖先对象。你的程
序中的对象要使用扩展层的对象并且继承扩展层的窗口。

迅速开始:
在用PFC编程时,程序经常需要修改,存取,以及从扩展层中继承对象。PFC装置
中有一套扩展库(PFC Quickstart Libraries)。它包括扩展层的基本功能,使
你的程序快速发展。

PFC命名规则:
PFC遵循以下命名规则:
Level Name
PFC层对象 用前缀pfc_
扩展层对象 和它的祖先有同样的名字但没有前缀pfc_

例如:DataWindow selection service object的祖先是pfc_n_cst_dwsrv,扩展层
的子类是
n_cst_dwsrv.Pfc_n_cst_dwsrv 包括所有服务的代码。n_cst_dwsrv 是不可修改
的子类(你可以在假如程序指定的实例变量和代码。)。

PFC定义的用户事件:
PFC定义用户实践也用前缀pfc_prefix.这使得你的应用程序的用户事件和PFC 的
用户事件更加容易。

PFC文档使用扩展层名字
当指定一个服务对象时,PFC文档总是用扩张层命名。例如:当论述基类窗口时这
书指向w_master不是pfc_w_master.但要记住,w_master的实际变量,事件和可用
函数实际上是在pfc_w_master定义的。
PFC命名习惯详细资料请看PFC Object Reference

我们不难想到:
PFC的对象继承允许你在每一层假如扩展逻辑。例如:pfc_w_sheet是从w_master
继承的,w_master的实际变量,函数,你加在它的事件在它的子类窗口中都已存
在。

如何加扩展层
扩展层通过PFC升级类有效的实现应用程序内部的重用和单个程序的重用。但是,
在大部门或者是多部门合作时,一定要考虑好扩展的标准,方法,注意部门的规
则和商业规律。
如果你是在一个组织里使用PFC,你要考虑创建一个新层(包括这个组织的所有的
变量函数,事件)。应用程序还是使用PFC扩展库的对象,可是调用实例变量,事
件,函数的祖先变了。

PFC构成:
PFC是由以下构成的:
l 一套PBLS
l 一个数据库
l Quickstart PBLS
l 实例代码
l 一个简单的应用程序
Localized PFC(局部化的PFC)
局部化的PFC 将会在PFC新版本公布后升级。

The PFC PBLs
PFC是分布在PBLS包含的祖先对象和PBLS扩展层包含的对象。每个祖先对象扩张层
包含提供以下服务的对象
Libraries Contents
PFCAPSRV.PBLPFEAPSRV.PBL 应用程序管理器,应用程序服务对象和全局服务对象

PFCMAIN.PBLPFEMAIN.PBL 标准可视化用户对象,自定义可视化用户对象,标准用
户对象类。
PFCUTIL.PBLPFEUTIL.PBL 有用的对象和服务。
PFCWNSRV.PBLPFEWNSRV.PBL 窗口服务,包括用户对象和有用的窗口。
PFCOLC.PBL 旧的用户对象。(基层和扩展层的对象)

使用library画笔:
使用library画笔来看到PFC中所有对象

PFC 数据库
PFC装载了pfc.db本地数据库。这个数据库包括以下几个表:
Table Usage
Messages 错误信息服务。
Security_apps 安全服务。
Security_groupings 安全服务。
Security_info 安全服务。
Security_template 安全服务。
Security_users 安全服务。
PFC本地数据库是由开发者预先设定的,如果你要使用错误信息服务和安全服务一
定要在你的数据库中复制指定的表。连接”Deploying database tables”

The PFC Quickstart PBLs
使用PFC Quickstart libraries用来是程序配置和运行迅速。他们包括经过挑选
的PFC扩展层对象的保护子集。
做一个PFC Quickstart libraries备份,你就有了后援了。

The PFC code example
使用它是为了了解PFC的对象和服务。学习如何编码并且实现PFC的基本功能。Th
e PFC Quickstart有广泛的参照和使用资料。

The PFC sample application
使用PEAT可以看到PFC的例子是如何进行工程预算和跟踪系统的。


--
迎着太阳,我们怒放

※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 61.137.136.66]

[关闭][返回]