📄 pfc详细教程.txt
字号:
调用窗体的pfc_Help事件。因为,pfc_Help定义在窗口w_master中,所以所有的
PFC窗口都具有事件。
4. 对于对话框,则在其中的HELP按钮的Clicked事件中编写:
Parent.Event pfc_Help()
PFC自动处理窗口级别的帮助
当你从m_master的子类的菜单中选择Help->Help时,消息路由机制会自动的调用
当前活动的窗口的pfc_help事件。
PFC的升级
PFC在发布PowerBuilder的升级版本时同时也包括了PFC的升级文件。如何升级PF
C,请按如下规则:
l_ PFC的各层(PFC层、PFE层、中间层等)没有任何被修改时:你可以直接安装
新的PBLs覆盖原有的PBLs 。
注意:每次升级PFC时都保留一份原有的文件备份
l_ 如果你修改了PFC中的某一层:你必须保证你所作的修改不会被覆盖!请按如
下的步骤进行:
将PFC升级到最新版本
1. 将所有扩展层的PBL文件移到一个不会被安装过程覆盖的目录中。
说明:你不应该对PFC的最基类(以PFC为前缀的对象)作任何修改,这里假设你
没有对PFC的最基类作任何修改
2. 确定你当前的PFC的版本号。你可以在Readme.txt文件中查看,或者在pfc_n_
cst_debug的实例变量中查看。版本号的格式:主版本号.次版本号.修正号
3. 执行安装程序,将PFC安装口的PBL文件放到PFC所在的目录中,覆盖原有的PF
C最基类的PBLS ,即以PFC开头的库文件。
4. 合并已存在的扩展对象与新安装的扩展对象。首先详细阅读Readme.txt中说明
的新扩展对象清单。然后按照一下的两种方法合并对象:
l_ 将新的对象COPY到你的扩展PBLS中。
l_ 将已经存在的对象COPY到新的扩展PBLS中。
5. 启动PowerBuilder
6. (可选)必要的时候调整一下应用程序的库列表
7. 打开库画笔,从新编译一边所有的对象。
PFC的服务
概要:
这一章主要介绍了什么是PFC的Services ,以及如何使用它们。
1 应用程序服务
PFC提供了以下各种应用程序Services :
DataWindow caching
Debugging
Error
Application preference
Most recently uesed object
Security
Transaction registration
你必须通过n_cst_appmanager(应用程序管理器)来控制这些Services (这些S
ervices实际上是应用程序管理器的是数据成员)。应用程序管理器(applicati
on manager)通过调用成员函数来开启与关闭Services 。由于它们在应用程序管
理器的范围内有效。而应用管理器是全局变量,因此你可以在你的应用程序的任
何地方是使用应用程序Services 。
1. DataWindow caching service
概要:
Datawindow caching service为Datawindow提供了数据缓冲。它将数据保存在内
存中,从而减少了程序访问数据库的频率,加快了程序的执行速度。Datawindow
caching service支持如下的数据源:
l_ Datawindow对象,它的数据可以来自于数据库表也可以来自存储过程。
l_ SQL语句
l_ Datawindow控件
l_ DataStore对象
l_ 数组中的数据
l_ 文件
PFC使用Powerbuilder的Datastore来实现Datawindow caching service 。它对应
的对象是n_cst_dwcache 。
PFC的代码实际只在父类对象中
这本书讲述的都是扩展类的对象,就像n_cst_dwcache 。而实际上PFC的代码全在
父类的对象中(pfc_n_cst_dwcache)。
使用方法
使用DataWindow caching 可以将数据库访问频率降到最低,可以加快程序运行速
度。
2 开启DataWindow caching
l_ 调用n_cst_appmanager的of_SetDWCache函数
gnv_app.of_SetDWCache(TRUE)
2 使用Datawindow caching :
1. 调用of_Register函数进行数据缓存,同时依据不同的数据提供相应的参数。
l_ 缓存Datawindow对象从数据库中检索出的数据时:你需要传递标识符(ident
ifier)、事务对象、Datawindow对象名、其他参数(如果存在的话)。
l_ 缓存SQL语句从数据库中检索出的数据时:你需要传递标识符(indentifier)
、事务对象、SQL语句。
l_ 将数据缓存到数组中:传递标识符(identifier)、Datawindow对象名、数据
。
l_ 缓存DataWindow控件中的数据:传递标识符(identifier)、Datawindow控件
。
l_ 缓存DataStore中的数据:传递标识符(identifier)、DataStore对象。
l_ 缓存文件中的数据:传递标识符(identifier)、文件名。
2. 你可以使用函数of_IsRegistered(参数是对象本身),确定DataWindow对象
是否已经在caching service中注册了。
3. 调用函数of_GetRegistered函数访问已经缓存的数据。
Gnv_app.inv_dwcache.of_GetRegistered(攄_emplist敚琲ds_datastore)
Ids_datastore.ShareData(dw_emplist)
4. 调用函数of_Refresh检索已经缓存数据的DataWindow 。
5. 调用函数of_UnRegister函数停止数据缓存服务。
6. (可选)调用n_cst_appmanager的of_SetDWCache函数关闭DataWindow cachi
ng service 。
gnv_app.of_SetDWCache(FALSE)
通常你没必要显示的关闭DataWindow caching service 。PFC在删除对象n_cst_
dwcache时会自动的关闭它。
2. Debugging service
概要:
Debugging service 在应用程序遇到错误时会自动显示错误信息。PFC的消息路由
当发现需要调用的事件不存在时便会使用Debugging service显示出错信息。
重要说明:PFC debugging service 只是一个开发工具。在用户的应用程序中不
要开启它。
使用方法
使用debugging service 可以帮助你在PFC的开发过程中解决问题。
1. 调用n_cst_appmanager的of_SetDebug函数开启Debugging service 。
gnv_app.of_SetDebug(TRUE)
2. PFC的对象首先检测应用程序的debugging状态,然后在适当的情况下显示错误
信息。
3. (可选)调用n_cst_appmanager的 of_SetDebug函数关闭Debugging service
。
gnv_app.of_SetDebug(FALSE)
多数情况下,你不需要显示的关闭Debugging service 。
关于PFC提供的两个工具(SQL Spy 和DataWindow Property)的使用请参考第七
章揚FC Utilities敗?
3. Application preference service
概要:
你可以利用Application preference service保存、恢复应用程序、用户的信息
到INI文件或WINDOWS的注册表中。保存和恢复应用程序设置有如下两个好处:
l_ 延续性:保存应用程序的设置可以使得用户在下次使用软件时可以看到他上次
关闭软件的样子。也就是说用户不必每次使用软件时都重新设置他的软件环境。
l_ 容易维护:你可以无须更改n_cst_appmanager的代码的情况下更新应用程序的
设置。
PFC通过用户自定义对象n_cst_apppreference提供Application preference ser
vice 。
这个Service保存应用程序的如下信息:
用户键(User key)
MicroHelp
Help File
Version
Logo bitmap
Copyright notice
DDETimeOut property
DisplayName property
DWMessage Title property
MicrohelpDefault property
RightToLeft property
ToolbarFrameTitle property
ToolbarPopMenuText property
ToolbarSheetTitle property
ToolbarUserControl property
Application preference service 同时保存如下的用户信息
ToolbarText property
ToolbarTips property
User ID
保存、恢复设置
Application perference service 在应用程序开启的时候会自动恢复应用程序在
关闭时保存的设置。这些信息可以保存到注册表中(只限于Windows95和Windows
NT)或者INI文件中。你可以按照如下说明:
l_ 保存到注册表中:调用函数of_SetUserKey ,指定你需要保存的键。
l_ 保存到INI文件中:调用函数of_SetUserINIFile ,指定用于保存信息的INI文
件名。
使用步骤:
1. 调用n_cst_appmanager的of_SetAppPref函数开启Application preference s
ervice 。
gnv_app.of_SetAppPref(TURE)
2. 依据不同的执行平台采用不同的方式保存应用程序信息。下面的例子就是在应
用程序的构造事件中保存应用程序的信息。同时假设你已经在n_cst_appmanager
中建立好了应用程序信息键、用户信息键、应用程序INI文件、用户INI文件。
IF this.of_IsRegistryAvailable() THEN
this.inv_apppref.of_SetAppKey(this.of_GetAppKey()) this.inv_
apppref.of_SetUserKey(this.of_GetUserKey())
ELSE
this.inv_apppref.of_SetAppINIFile(this.of_GetAppINIFile()) this.inv_ap
ppref.of_SetUserINIFile(this.of_GetUserINIFile())
END IF
3. 调用函数of_SetRestoreApp和of_SetRestoreUser函数设置需要保存信息的类
型:
this.inv_apppref.of_SetRestoreApp(TRUE)
this.inv_apppref.of_SetRestoreUser(TURE)
4. Most recentily used object service
概要
你可以使用Most recentily used object service(最近使用对象Service)将最
经使用的对象、表单列在文件菜单下。默认情况下只允许显示5个最经使用对象。
但是,你可以改变这个数量。
PFC 通过n_cst_mru用户自定义对象提供MRU Service(Most recentily uesd ob
ject service)。
MRU Service在应用程序启动时会自动的将应用程序关闭时保存的最经使用过的对
象信息加载到应用程序中。这些信息可以保存到注册表或者INI文件中。你可以通
过如下的方式:
l_ 保存到注册表中:调用函数of_SetUserKey函数确定要保存到注册表中的MRU信
息。
l_ 保存到INI文件中:调用函数of_SetUserINIFile函数指定用于保存MRU信息的
INI文件。
l_
你必须还要额外编写代码:
为了使用MRU Service ,你必须在你想启用MRU Service的窗口的两个事件中编写
代码。
l_ pfc_MRUProcess :在窗口开启时加载MRU信息。
l_ pfc_PreMRUSave :在窗口关闭时保存MRU信息。
与PFC菜单的结合
PFC的m_master菜单的FILE菜单包括了五个MRU菜单项,你还可以自己添加。
如果你的应用程序没有使用PFC的菜单,那么请以m_master为模板建立你自己的M
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -