明辉站/技术开发/内容

PB 5中PFC的使用

技术开发2023-08-10 阅读
[摘要]中原石油勘探局计算中心系统集成部 刘少青 ---- PFC是PowerBuilder高级开发工具集中的一个基本类库,提供了进行一般应用开发时会经常用到的对象和函数代码。PowerBuilder 5.0的基本类库中的内容十分丰富,比以前版本中所提供的功能要增加了许多,而且对象之间的继承和引用关系也比...
中原石油勘探局计算中心系统集成部 刘少青

---- PFC是PowerBuilder高级开发工具集中的一个基本类库,提供了进行一般应用开发时会经常用到的对象和函数代码。PowerBuilder 5.0的基本类库中的内容十分丰富,比以前版本中所提供的功能要增加了许多,而且对象之间的继承和引用关系也比以前更为清晰合理。因此编写一个完全建构在PFC类库之上的应用可大大提高软件质量,而且利用基类的已有代码也会使得许多复杂的功能实现起来要轻松得多。

---- 本文将根据笔者使用PFC的经验,介绍如何创建PFC的应用。

---- 1、首先在C盘新建一个目录Test,启动PowerBuilder5.0,创建一个新的应用,并将应用对象保存在Test.pbl中,将应用取名为test,保存时不使用PB提供的快速模板。

---- 2、进入应用的“Properties”(属性)中,选中“Libraries”标签,单击“Browes…”按钮,选中C:\Pwrs\Pb5i32\Adk\pfc目录下的全部8个pbl文件:pfcapsrv.plb、pfcdwarv.pbl、pfcmain.pbl、pfcwnsrv.pbl、pfeapsrv.pbl、pfedwarv.pbl、pfemain.pbl、pfewnsrv.pbl,单击“打开”按钮,再单击“Apply”按钮。然后选中“Variable Types”标签,将“SQLCA:”中的“transaction”改为“n_tr”,单击“OK”按钮保存对属性的修改。

---- 3、新建一个“User Object”(用户对象),单击“Inherit…”(继承)按钮,在“Application Libraries”中选中“PFEAPSRV.PBL”,在“User Objects”中选中“n_cst_appmanager”,单击“OK”按钮,在其“pfc_open”事件中写入以下登录数据库的程序(以SQL Server为例):

//pfc_open for n_cst_test inherited
n_cst_appmananger returns (none)
SQLCA.DBMS=ProfileString
("PB.INI","Database","DBMS", " ")
SQLCA.Database=ProfileString
("PB.INI","Database","DataBase"," ")
SQLCA.LogID=ProfileString
("PB.INI","Database","LogID", " ")
SQLCA.LogPass=ProfileString
("PB.INI","Database","LogPassword"," ")
SQLCA.ServerName=ProfileString
("PB.INI","Database","ServerName"," ")
SQLCA.UserID=ProfileString
("PB.INI","Database","UserID"," ")
SQLCA.DBPass=ProfileString
("PB.INI","Database","DatabasePassword", " ")
SQLCA.Lock=ProfileString
("PB.INI","Database","Lock"," ")
SQLCA.DbParm=ProfileString
("PB.INI","Database","DbParm"," ")
Connect Using SQLCA;
If SQLCA.sqlcode < > 0 Then
MessageBox("Cannot Connect to Database",
SQLCA.sqlerrtext,StopSign!)
Halt Close
Return
End If
Open(w_frame_test) //打开应用的主窗口(假设为w_frame_test)

---- 将该用户对象保存为n_cst_test。

---- 4、进入应用的“Script”中,选择“Declare/Global Variables…”菜单,定义全局变量:

n_cst_appmanager gnv_app //该全局变量的名称必须为gnv_app

并在该应用的open事件和close事件中分别写入以下程序:

//open for test returns (none)
gnv_app = Create n_cst_test
gnv_app.Event pfc_open(commandline)

//close for test returns (none)
gnv_app.Event pfc_close()
Destroy n_cst_appmanager

---- 经过上述步骤后,我们所要的PFC应用的总体械架就形成了,剩下的就是具体的编程工作了,本人在此不再赘述。

……

相关阅读