文档库 最新最全的文档下载
当前位置:文档库 › PFC中文教程

PFC中文教程

PFC中文教程
PFC中文教程

PFC中文教程

一.PFC介绍

PFC(Powerbuilder Foundation Class,Powerbuilder基础类库)是PowerBuilder提供的一个类库,它提供了一些常用的函数和功能,有非常友好的用户界面,用PFC作为您的开发工具,可以节省您很多的时间。

在使用PFC时,要记住,您的所有的控件和对象都要使用PFC提供的,或是从PFC对象继承过来的

二.快速入门

(一).打开应用程序画笔

(二) .在应用中包含下列库文件:

PFCAPSRV.PBL

PFCDWSRV.PBL

PFCMAIN.PBL

PFCUTIL.PBL

PFCWNSRV.PBL

PFEAPSRV.PBL

PFEDWSRV.PBL

PFEMAIN.PBL

PFEUTIL.PBL

PFEWNSRV.PBL

(三) .在应用程序画笔中,定义一个全局变量,gnv_app,类型为n_cst_appmanager

n_cst_appmanager gnv_app

变量名称一定要为gnv_app,PFC中的对象、函数、事件要求一个类型为n_cst_appmanager 或从它继承过来的类型的名称为gnv_app的变量

(四).在应用程序画笔的脚本中,在OPEN事件中,建立这个全局变量,并且调用pfc_Open(commandline)事件

gnv_app = CREATE n_cst_appmanager

gnv_app.Event pfc_Open(commandline)

(五).在应用程序画笔的CLOSE脚本中,调用pfc_Close事件,并且删除gnv_app变量

gnv_app.Event pfc_Close()

DESTROY gnv_app

(六).在PFEAPSRV.PBL库文件中,找到并打开n_cst_appmanager用户对象

在n_cst_appmanager构造事件中,调用n_cst_appmanager的函数来初始化有关版本、公司名称和INI文件的实例变量

在n_cst_appmanager的pfc_Open事件中,调用n_cst_appmanaer的函数来打开你想要的应用服务,然后,调用of_Splash函数显示一个Splash屏幕,然后,打开你的程序的最开始的窗口.

参考:

·应用的例子PEA T.PBL

·代码的例子EXAMPFC.PBL

·PFC快速入门QCKSTART.PBL

·基本代码解释PFC Tutorial

三.PFC中的数据类型和变量的定义规则

(一).对象名称定义

pfcobject_type_objectname

其中,pfcobject 为PFC_时,表示为PFC级别,否则为PFE级别(扩展级别)

type包含以下类型

类型

说明

类型

说明

m_

Menu

u_

Visual user object

n_

Standard class user object

w_

Window

n_cst

Custom class user object

s_

Global structure

(二).变量名称定义

_varialbename Scorpe为以下值之一

类型

说明

类型

说明

g

Global variable

i

Instance variable

l

Local variable

s

Shared variable

简单变量的Type为以下值之一

类型

说明

类型

说明

a

Any

blb

Blob

b

Boolean

ch

Character

d

Date

dtm

DateTime

dc

Decimal

dbl

Double

e

Enumerated

i

Integer

l

Long

r

Real

s

String

tm

Time

ui

UnsignedInteger

ul

UnsignedLong

指针变量的Type值为以下之一

类型

说明

类型

说明

app

Application

ab

ArrayBounds

cbx

CheckBox

cb

CommandButton

cd

ClassDefinition

cdo ClassDefinitionObject

cn

Connection

cninfo ConnectionInfo

cno

ConnectObject

cxk

ContextKeyword

cxinfo ContextInformation

cpp

Cplusplus

ds

DataStore

dw

DataWindow

dwc DataWindowChild

drg

DragObject

drw

DrawObject

ddplb DropDownPictureListBox

类型

说明

说明

ddlb

DropDownListBox

dwo

DWObject

dda DynamicDescriptionArea dsa DynamicStagingArea

ed EnumerationDefinition

eid EnumerationItemDefinition

em

EditMask

env

Environment

err

Error

ext

ExtObject

gr

Graph

go

GraphicObject

grax

GrAxis

grda

GrDispAttr

gb

GroupBox

hsb HorizontalScrollBar

inet

ir InternetResult

类型

说明

类型

说明

ln

Line

lb

ListBox

lv

ListView

lvi

ListViewItem

mfd MailFileDescription mm MailMessage

mr

MailRecipient

ms

MailSession

mdi

MDIClient

m

Menu

mc MenuCascade

msg

Message

mle

MultiLineEdit

nv NonVisualObject

OleControl

oo

OleObject

ostg

OleStorage

omc

OmControl

类型

说明

类型

说明

omcc OmCustomControl omec OmEmbeddedControl

omo

OmObejct

omstm

OmStream

omstg

OmStorage

oval

Oval

p

Picture

pb

PictureButton

pbcpp PBToCPPObject

plb PictureListBox

pl

PipeLine

po

PowerObject

procall ProfileCall proclass ProfileClass

proln ProfileLine prort ProfileRoutine

pro

Profiling

rb RadioButton

类型

说明

类型

说明

rec

Rectangle

rem RemoteObject

rte RichTextEdit rrec RoundRectangle

rteo

RteObject

scrd ScriptDefinition

sle SingleLineEdit srv

Service

st

StaticText

std

SimpleTypeDefinition

str

Structure

tab

Tab

tabpg

TabPage

tcan TraceActivityNode

tcbe TraceBeginEdn

tcerr

TraceError

tcf

TraceFile

tcln

TraceLine

类型

说明

类型

说明

tcgc TraceGarbageCollect tco

TraceObject

tcrt

TraceRoutine

tcsql

TraceSQL

tct

TraceTree

tctn TraceTreeNode

tcterr TraceTreeError

tctsql

TraceTreeSQL

tctgc TraceTreeGarbageCollect tctln

TraceTreeLine

tcto

TraceTreeObject

tctrt

TraceTreeRoutine

tctu

TraceTreeUser

tcu

TraceUser

td

TypeDefinition

tr

Transaction

trp

Transport

tv

TreeView

类型

说明

类型

说明

tvi

TreeViewItem

uo

UserObject

vrcd VariableCardinalityDefinition vrd

VariableDefinition

vsb

VerticalScrollBar

wo

WindowObject

w

Window

(三).函数名称定义

全局函数以f_开头,成员函数以of_开头

四.PFC Services 类型

(一).PFC Services总述

A.用继承关系(inheritance)实现windows,menus和user objects

B.把每一个Object的数据和代码封装(encapsulation)起来

C.用多态(polymophism)提供同名机制

主要分为以下几种类别:

·Application services

·Window services

·DataWindow services

·File services

·Data/Time services

·String-handling services

·Platform services

·Menu Services

·Resize services

·INI file services

·Numerical services

·SQL parsing services

·Conversion services

(二).Application services

应用程序服务可分为DataWindow caching、Debugging、Error、Security、Transaction registration共五种;可通过n_cst_appmanager来控制,调用application manager的函数来Enable 或者Disable掉

(三).Windows services

PFC通过w_master中的函数、事件和实例变量以及各种自定义对象来对Windows进行控制。

要存取Windows services,在程序中所使用的所有窗口都得从w_child、w_frame、w_main、w_popup、w_response、w_sheet中继承过来。

下表列出了Windows services子功能:

Windows service

Implementation

Basic Window service

Implemented in n_cst_winsrv and as well as functions and user events in PFC windows

Preference service

n_cst_winsrv_preference

Sheet management

n_cst_winsrv_sheetmanager

Status bar service

n_cst_winsrv_statusbar

(四).DataWindow services

下表列出了Windows services子功能:

DataWindow service

Implementation

Basic DataWindow service(ancestor for all other services) n_cst_dwsrv

Dropdown search service

n_cst_dwsrv_dropdwonsearch

Filter service

n_cst_dwsrv_filter

Find and replace service

n_cst_dwsrv_find

Linkage service

n_cst_dwsrv_linkage

Multitable update service

n_cst_dwsrv_multitable

Print preview service

n_cst_dwsrv_printpreview

Querymode service

n_cst_dwsrv_querymode

Reporting service

n_cst_dwsrv_report

Required column service

n_cst_dwsrv_reqcolumn

Row management service

n_cst_dwsrv_rowmanager

Row selection service

n_cst_dwsrv_rowselection

Sort service

n_cst_dwsrv_sort

(五).File service

通过调用file_management函数来实现,比如调用of_FileRename函数来对一个文件改名。

(六).Date/Time service

PFC通过n_cst_datetime用户对象来实现,它包括下列功能:

将Julian 形式的日期转换为Gregorian形式的日期

将秒转换为小时

将秒转换为天数

将Gregorian日期转换为Julian日期

取得两个日期时间型变量之间相隔的年、月、日、星期、秒、毫秒数

测试一个日期是否正确

测试某天是否为一个星期中的一天,或是周末

中止一个进程直到一个特定的日期时间

(七).String-handling service

PFC通过用户对象n_cst_string来实现,主要实现了以下功能:

将一个无限制字符串转入到一个数组,或反过来

测试字符串的类型是否为:Lowercase、Uppercase、Alphabetic、Alphanumeric

全局字符串替换

统计一个字符串中特定字符串的出现字数

去掉字符串开头或结尾处的空格和非打印字符

测试一个字符串是否为comparison或arithmetic operator

将一个字符串中的所有字转换为initial cap

(八).Platform service

PFC通过对象n_cst_platform来实现,主要实现了以下功能:

检测内存

检测未用的系统资源

取得PBUs中的高度和宽度,以字符串的形式返回

(九).Menu Services

PFC通过m_master中的函数、菜单项和事件来实现以下功能:

实现消息路由的函数

通过消息路由实现所要求功能的菜单项

(十).Resize Services

此服务可以让你自由实现在窗口改变大小时,以某种方式自动改变控件的大小和位置,主要是通过n_cst_resize用户对象来实现

(十一).INI File Services

可以对INI文件进行读和写操作,通过n_cst_inifile用户对象来实现:

通过INI-File部件来更新所有的键值

通过一个INI文件来更新所有部件

从一个INI文件删除一行

从INI文件删除一个整的部件(section)

(十二).Numerical Services

可以对二进制数据对行存取和控制:

测试一个二进制数某位是1还是0

二进制与十进制数互相转换

(十三).SQL parsing service

可以汇编和分析SQL语句

组合SQL语句

分解SQL语句

(十四).Conversion Services

可以进行数据类型的转换:

From

To

Integer or String

Boolean

Bollean,ToolbarAlignment,or SQLPreviewType

String

Boolean

Integer

String

ToolbarAlignment

Button

String

Icon

String

String

SQLPreviewType

五.PFC Services及对象详细解说

(一).n_cst_AppManager应用程序类

1.类的详细定义

A.继承关系:pfc_n_base : n_base : pfc_n_cst_appmanager : n_cst_appmanager

B.事件

事件ID

事件说明

Constructor

初始化一些实例变量

Destructor

消毁用户自定义对象

pfc_Exit

执行结束程序时的清理工作

pfc_Logon

在w_logon中的OK按钮中调用,返回1表示成功,-1表示失败

pfc_Open

相当于应用中的Open事件,可在此打开gnv_app中的多个服务

pfc_PreAbout

在函数of_About()中调用,用来控制w_about窗口

pfc_PreLogonDlg

在函数of_LogonDlg()中调用,用来控制w_Logon窗口

pfc_PreSplash

在函数of_Splash()中调用,用来控制splash屏幕

pfc_SystemError

当有系统错误发生时调用

pfc_Close

关闭应用时调用

pfc_ConnectionBegin

与其它应用连接时调用

pfc_ConnectionEnd

断开其它应用的连接时调用

pfc_Idle

应用空闲时调用

C.函数

函数名称

功能说明

of_About()

根据所设信息显示w_About窗口,返回1表示成功,-1表示失败

of_GetAppIniFile()

返回is_AppIniFile的值

of_GetAppProperties(未知)

未知

of_GetAppKey()

取得is_AppKey的值

of_GetCopyright()

返回is_Copyright的值

of_GetFrame()

返回当前的w_Frame类型的窗口对象

of_GetHelpFile()

返回在线帮助文件名

of_GetLogo()

返回is_Logo的值,为一BMP文件名

of_GetMicrohelp()

返回微帮助是否能使用,能使用时返回TRUE,否则返回FALSE

of_GetUserid()

取得用户名(is_UserId)

of_GetUserIniFile()

取得用户配置文件名,即is_UserIniFile

of_GetUserKey()

返回is_UserKey的值

of_GetVersion()

取得程序的版本号,即is_Version

of_IsRegistryAvailable()

确定注册表是否可用,在Windows 95及WindowsNT中返回TRUE,否则返回FALSE

of_LogonDlg()

显示w_Logon窗口,并且调用pfc_Logon事件;返回1时表示成功,0表示取消,-1表示失败

of_SetAppIniFile(iniFileName)

设置is_AppIniFile的值

of_SetAppKey(RegistryKey)

设置is_AppKey的值

of_SetAppPreference(Boolean)

设置application preference service是否可用,1表示成功,-1表示失败;可通过inv_apppref变量来实现相关功能

of_SetCopyright(Copyright Information)

设置is_Copyright的值

of_SetDebug(Boolean)

设置Debugging Service是否可用,1表示成功,-1表示失败;可通过inv_Debug来实现相关功能

of_SetDwCache(Boolean)

设置Data Caching Service功能,1表示成功,-1表示失败;可通过inv_dwCache来实现相关功能

of_SetError(Boolean)

设置Error Service功能,1表示成功,-1表示失败;可通过inv_Error来实现相关功能

of_SetFrame(FrameWindow)

标记Frame窗口到iw_Frame变量,可在w_Frame类型的窗口的active事件中调用以设置当前激活Frame窗口

of_SetHelpFile(helpFileName)

设置帮助文件文件名,即is_HelpFile

of_SetLogo(LogoBMPFileName)

设置应用程序标志图标,即is_Logo

of_SetMicrohelp(Boolean)

设置微帮助是否可用

of_SetMRU(Boolean)

设置Most Recently User Object Service是否可用,通过inv_MRU来实现相关功能

of_SetSecurity(Boolean)

设置Security Service是否可用,通过inv_Security来实现相关功能

of_SetTrRegistration(Boolean)

设置Transaction Registration Service是否可用,通过inv_TrRegisrration来实现相关功能

of_SetUserId(UserId)

设置用户名,即is_userId

of_SetUserIniFile(IniFileName)

设置用户配置文件名,即is_UserIniFile

of_SetUserKey(RegistryKey)

设置用户注册键名,即is_UserKey

of_SetVersion(VersionInformation)

设置应用程序版本信息,即is_Version

of_Splash(Second)

显示Splash屏幕,参数为显示时间

2.用法

声名一类型为n_cst_AppManager的全局变量gnv_app

在应用的Open事件中建立此全局变量gnv_app = CREATE n_cst_AppManager

在应用的Open事件中调用pfc_Open()事件gnv_app.EVENT pfc_Open(CommandLine)

在应用的Close事件中调用pfc_Close()事件gnv_app.EVENT pfc_Close()

相关文档