PFC使用说明
第一章 PFC基本类库的组成
PFC基本类库由六类共十一个库组成,库名分别为Pfcmain.pbl、pfemain.pbl等,不同的类库 具有不同的对象,完成不同的功能
Pfcmain.pbl 各种通常用到的控件、窗口、
1.基本的PFC服务
Pfemain.pbl 菜单的祖先。
Pfcapsrv.pbl 各种专用来提供应用程序类服务的种对象如:
2.PFC应用程序管理器 文件、时间、版本、安全、跟踪。
Pfeapsrv.pbl
Pfcwnsrv.pbl 各种专用来提供窗口服务的各种对象窗口菜
3.窗口服务 单、Pfewnsrv状态条、窗口大小、工具条、
Pfewnsrv.pbl 子窗口服务。
Pfcdwsrv.pbl 各种用来提供数据窗口服务和对象如:基本服务
4.数据窗口服务 打印、过滤、排序、查找、替换、主从链接、
Pfedwsrv.pbl 记录管理
Pfcutil.pbl 调试、跟踪、SQL监视、数据窗口属性等。
5.实用工具服务
Pfeutil.pbl
6.废弃对象库 Pfeold.pbl
第二章PFC对象的分类和构成
PFC对象分为三大类:
应用程序对象:n_cst_appmanger(应用程序管理器)
界面对象:窗口、菜单、控件等
服务对象:为以上两类对象提供服务的对象以及为某类功能(如文件操作)提供服务的对象
PFC对象的构成
PFC对象一般由以下部分任意组合而成
一般变量—保存和获取对象信息。
变量
INV_。。。变量—为该对象提供所需的服务的服务对象。
函数
预编码事件—完成该类对象一般都有的基本功能
事件
空用户事件—提供给用户,由用户自编码以完成特定的功能
第一部分:应用程序对象(及其使用的服务对象)
Pfc_ n_cst_appmanager (n_cst_appmanager )
变量:
服务类型变量:(也是一个对象)inv_____ instance nonvisible variable
Inv_dwcache: 数据缓存服务对象:把数据存在缓存中,需在时从缓存中读取,减
少数据库操作,提高操作速度度。(n_cst_dwcache类型)
Inv_debug: 测试服务对象:pfc在发生错误时自动显示错误信息.pfc的Message
router使用测试服务来控制当一个传递的事件不存在时的错误信息显示. (n_c
st_debug类型)
Inv_appref: 应用程序基本服务对象:用户使用应用程序基本服务来保存和获取
应用程序和用户信息.(通过INI文件和windows registry)自动保存和获取。(
n_cst_appref类型)
Inv_mru: 最近使用对象服务对象:用户通过使用最近使用对象服务来显示最近
使用的窗口和工作表(工作表是列在file菜单中的条目,缺省为五个),当应用
程序打开时mru服务自动的装入mru信息,当应用程序关闭时mru服务自动的保存m
ru信息。(n_cst_mru类型)
Inv_Error: 错误信息服务对象:提供许多方式来显示和记载你的应用程序错误
信息。你可以使用messagebox或者W_message dialogbox来显示信息。它们都提供
以下功能:1.把错误信息记载到文件。2.自动把错误通告通过 e_mail发送出去。
3.把错误信息记载到数据库。4.变量修改。5.自动记载错误但不显示。(n_cst_
error类型)
Inv_security:pfc安全控制服务对象:.必须定义用户和用户组,并将之同窗口菜
单用户对象控件等联系起来。(n_cst_security类型)
Inv_trregistration:transaction登记服务对象:此服务跟踪应用程序使用的t
ransaction对象(必须是n_tr类型)。(用于当应用程序使用超过一个transact
ion对象时)(n_cst_ trregistration类型)
Iapp_object:application类型系统对象(public),用于获得或保存应用程序属
性,包括appname,DDETIMEOUT,Displayname,DWMessageTitle等.
Ienv_object:environment类型系统对象(public) 用于获得和保存屏幕大小,操
作系统等信息.
一般变量:I—instance, b___boolean, s___string, w___window
Ib_microhelp: 报告应用程序是否支持微帮助。(protected)
is_appinifile: 应用程序INI文件名.(protected)
is_appkey: 应用程序登记名.(protected)
is_copyright:(protected)版权信息
is_helpfile: (protected) 帮助文件名
is_logo: ( protected) 应用程序关于窗口的图标名。(bltmap)
is_userid: (protected) 用户信息
is_useriniflle: (protected) 用户INI文件名
is_userkey: (protected) 用户登记名
is_version: (protected) 用户版本信息
iw_frame: w_frame类型(protected)用于获得当前的激活的框架窗口。
事件:
(1)Constructor:初始化 Iapp_object和Ienv_object变量,根据需要初始化Is_。
。。类型的变量。
(2) Destrictor: 析构其本身使用的服务例程对象(Inv_。。。)类型。
(3)Pfc_close: 应用程序管理器关闭事件。例:可用来关闭用户自定义transact
ion对象。
(4)Pfc_connection begin: 应用于分布式应用。当客户端试图与服务器建立连接
时,在服务器上触发此事件。三个参数:Userid,password,connectstring,(as_
userid,as_password,as_connectstring)返回值: connect privilege!,connect
withAdminprivilege!,NoConnectprivilege!.
(5)Pfc_connectionend: 应用于分布式应用。结束连接。
(6)Pfc_exit: 用于关闭框架窗口,关闭应用程序。
(7)Pfc_idle: 应用程序管理器空闲事件。
(8)Pfc_logon: 登录事件。被w_longon对话框调用,当用户点击OK时。
(9)Pfc_open: open事件。
(10)Pfc_preabout: 用于控制应用程序关于窗口显示的信息。(通过n_aboutatt
rib)
(11)Pfc_prelogonblg: 控制应用程序logon窗口显示的信息。(通过n_cst_logo
nattrib)
(12)Pfc_presplash: 控制应用程序splash窗口显示的信息。(通过n_cst_splas
hcterib)
(13)Pfc_systemerror:Pfc系统错误事件。
函数: 分为以下几类:
(1)显示对话框
of_about:显示关于对话框
of_longondlg:显示登录窗口
of_splash:显示splash窗口
iw____
(2)用于获取一般变量 is____
ib____
of_getAppiniFile( ), of_GetAppkey( ), of_GetCopyRight( ), of_GetFra
me( ), of_GetHelpFile( ), of_GetLogo( ), of_GetMicroHelp( ),of_Get
Userid( ), of_GetUserIniFile( ),of_GetUserKey( ), of_GetVersion( ),
of_GetFrame( )
iw____
(3) 用于设置一般变量 is____
ib____
of_set____( 与(2)的函数类似,只除了将get 替换为 set。)
(4) 用于打开应用程序服务
of_setDebug(boolean)打开或关闭调试服务
of_setDwcache(boolean)打开或关闭数据缓存服务
of_setError(boolean)打开或关闭错误服务
of_setMru(boolean)打开或关闭最近使用对象服务
of_setSecarity(boolean)打开或关闭安全控制服务
of_setTrRegistration(boolean)打开或关闭事务登记服务
of_setApp Preference(boolean)打开或关闭应用程序基本服务
(5) of_ISRegistryArailable ( ) 报告工作环境是否支持Registry。
N_cst_appmanagor中使用的服务例程变量(也是服务对象):
N_cst_dwcache:数据窗口缓存服务。
变量:供其本身使用。
事件:Destructor: 析构所有的缓存对象。
函数:of_GetCount(): 获得当前登记的数据窗口对象数目。
Of_GetRegistered(): 获得当前登记的Data store。(所有Data store的ID或
所有的Data store)。
Of_ISRegistered(): 报告一个ID是否被登记该服务中。
Of_Refresh():刷新缓存的一个或所有Data store。
Of_Register():登记某个需缓存的对象。
Of_RegisterArgs():修改需要从登记对象中获取的Arguments。
Of_UnRegister():移去一个或所有需缓存的对象。
使用方法:
使用gnv_app.of_setdwcache(true)来打开服务。
使用of_Register来登记需缓存的对象。
使用of_Get Registered来访问缓存的数据。
使用of_Refresh来刷新数据。
N_cst_debug:当该对象例程化时,PFC在特定位置显示测试信息。
变量:ib_alwaysontop:指出是否其他窗口之上显示测试窗口。
Ids_debuglog:保存错误记录的datastore。
Inv_sqlspy:引用SQL SPY的测试对象。
事件:Constructor:创建一个Ids_debuglog的例程变量。
Destructor:析构所有的该服务使用的对象。
函数:of_clearLog:清除所有的Ids_debugLog中的数据。
Of_GetAlwagsOnTop():报告W_debuglog是否显示在其他窗口之上。
Of_ISLogopen():报告W_debuglog是否已打开。
Of_message():在debuglog中增加一个条目。
Of_Openlog (boolean): 打开/关闭W_debuglog窗口。
Of_Printlog( ):打印debuglog。
Of_setAlwaysOnTop(): 控制W_debuglog窗口是否显示在其他窗口之上。
Of_setDwproperty(): 控制是否显示数据窗口的属性窗口。
Of_setSQLSpy(): 开始/结束SQLSPY服务。
使用方法:
使用gnv_app.of_setDebuy(true)
N_cst_AppPerence:自动保存和获取应用程序和用户信息。
使用方法:
gnv_app.of_setAppPref(true)
N_cst_Mru: 用来在重新进入程序时显示最近使用的窗口和工作表及菜单。
使用方法:
gnv_app.of_setMru(true)
在需要使用该服务的窗口、工作表、菜单中编程。
N_cst_error:错误信息服务(显示和记载应用程序错误信息)
变量:
Ib_beep,Ib_unattended,ii_logfilestyle(1.制表符分界2.新行分界),ii_logs
everity,ii_notifyseverity,ii_style (消息框或窗口),ii_msgfile,ims_mses
(mail session),is_logfile,is_msgfile,is_msgsrc,is_notifyaddress[ ],is_
notifypretitle, is_notifywho[ ],is_user(邮件通告的前缀),itr_msgdb(n_t
r类型),
inv_errorpass (n_cst_errorattrib)用于放置错误信息以便传递:(ib_print,
ib_userinput,idt_date,ie_buttonstyle,ie_icon,ii_buttonclicked,ii_
defaut, ii_rc,ii_severity,ii_timeout,is_text,is_title,is_user,i
s_usertext )
Inv_filesrv: 文件服务对象,其中的函数提供了文件改名、文件删除、改变路
径、建新目录、删除目录等服务。
Inv_string::字符串分析服务对象,其中的函数提供了把字符串数组合为一个字
符串,一个字符串在另一字符串中出现的次数,是否全是字母,是否小写,是否
大小,除去左空格,除去右空格,除去所有空格等服务。
事件: Destructor析构所有用到的服务对象:
函数:
1类 of_get……
用于获取/设置一般变量
of_set……
2类 of_set……pfc服务对象变量———用于打开属于该对象的服务(此处无)
of_setNotifyConnection()
3特殊 ims_mses
of_gettNotifyConnection()
of_setPredefinedSource()
is_msgfile
of_get PredefinedSource()
of_setnotifywho(who,address)t
is_notifywho[ ]
is_notifyaddress[ ] of_getnotifywho(who,address)
data base
of_getpredifinedsource ( )
file
of_loadpredifinedmsg( )把源文件或数据库中存贮的错误信息取到缓存中
显示错误信息的两种格式:
of_message(title,message{,icoh {,button {,default {,severiey ,print,us
erin put }}}})使用字符串显示错误信息。
Of_message(messageid{,subs titution {,overr idetitle}})使用错误信息文件
中预先定义的错误信息。
错误信息文件的标准格式:message table(表名)
msgid(char40),msgtitle(char255),msgtext(char255),msgicon(cha
r12),msgbntton(char17),
msgdefaultbutton(integer),,msgseverity(integer),msgprint(char1
),msguseinput(char1)
使用错误信息服务方法:
(1)打开该服务:gnv_app.of_seterror (true)。
(2)设置错误文件源:gnv_app.inv_error.of_setPredefinedSoure(“……”)错
误文件名或n_tr类型变量。
(3)设置错误记录文件名:gnv_app.inv_error.of_setlogFile(“……”)文件名
。
(4)设置错误告警和记录错误的级别:
如:gnv_app.inv_error.of_setNotifySeverity(5)
gnv_app.inv_error.of_setlogSeverity(4)。
(5)(可选)使用inv_error.of_setnotifyconnection(邮件区) 和inv_error.of_s
etnotifywho(userlist,adresslist)来设置邮件区和E_mailIDS
(6)使用of_message (“ ”)来显示消息,同时有可选的告警和记录(若已经在4
中设置了错误告警和记录错误的级别,则根据消息的级别来决定是否告警或记录
)。
重点:
一、 使用of_get…和of_set…访问应用程序信息(一般变量)(如版本、版权、
应用图标等)
二、 使用应用程序对象中的服务对象提供的服务。(服务对象变量)(首先需使
用of_set…打开该服务)
重点是使用inv_error。
三、 本章中的服务对象中的变量、函数和事件请参阅附录。
第二部分 界面对象(及其使用的服务对象)
第一节 数据窗口(及数据窗口服务对象)
pfc_u_dw(u_dw)
一般变量:
DEFAULT, 0数据窗口显示的列名
DBNAME, 1数据库字段名
HEADER, 2 数据库字段的题头
ib_isupdateable: datawindow 是否可以更新
ib_rmbmenu: 右键按下时是否显示弹出菜单 m_dw
ib_rmbfocuschange: 右键按下时是否改变焦点
Iuo_calculator: 下拉计算器
Iuo_calendar: 下拉日历
服务对象变量:
inv_base:数据窗口基本服务对象(n_nst_dwsrv类型):用于获取或设置数据窗
口信息。
inv_dropdownsearch:下拉查找服务对象(n_cst_dwsrv_dropdownsearch):用
于当用户敲击某键时,
数据窗口自动滚动到以所敲击的键开始的行。
inv_filter:过滤服务对象(n_cst_dwsrv_filter):用于提供过滤服务并显示
几种过滤窗口。
inv_find:查找服务对象(n_cst_dwsrv_find):用于提供查找和替换服务并显示
查找和替换窗口。
inv_linkage:连接服务对象(n_cst_dwsrv_linkage):用于提供数据窗口的连
接服务,特别是主从
窗口连接。
inv_multitable:多表更新服务对象(n_cst_dwsrv_multitable):用于从多个数
据窗口中取出的字段
进行更新(既对视图更新)。
inv_printpreview:打印预览服务对象(n_cst_dwsrv_printpreview):用于提
供打印预览服务。
inv_querymode:查询模式服务对象(n_cst_dwsrv_querymode):用于提供查询
模式服务。
inv_report:报表服务对象(n_cst_dwsrv_report):用于提供报表服务。
inv_reqcolumn:需求列服务对象(n_cst_dwsrv_reqcolumn ):用于推迟对需求
列的检查。
inv_rowmanager:行管理器服务对象(n_cst_dwsrv_rowmanager):用于提供对
行的增加、修改、删除
和恢复等服务。
inv_rowselect:行选择服务对象(n_cst_dwsrv_rowselection):用于提供对多
行进行选择的服务。
inv_sort:排序服务对象(n_cst_dwsrv_sort):用于提供排序服务。
itr_object:transaction对象(n_tr)
事件:
Clicked 处理选择和排序服务(如果有的话)
DBError 显示一个的对话框来显示数据库错误
Destructor 析构所有存在的服务对象实例
GetFocus 通知窗口当前焦点控件是那个控件
ItemError 当发生列需求错误时,如果有需求列服务的话,调用它并判
断是否需要显示错误。
ItemFocusChanged 如果有微帮助的话,调用它来显示微帮助
LButtonDown 鼠标左键按下时触发该事件,并调用被选择行服务的pfc_Lbu
ttonDown事件
LButtonUp 鼠标左键松开时触发该事件,并调用被选择行服务的pfc_Lbu
ttonUp事件
pfc_AddRow 调用行管理服务在数据窗口后面加入一行记录
pfc_Clear 清除选择的文本
pfc_Copy 拷贝选择的文本
pfc_Cut 剪下选择的文本
pfc_DeleteRow 掉用行管理服务删除一行记录
pfc_Descendant 触发这个事件判断是否 u_dw 的子孙。
pfc_FilterDlg 显示过滤对话框并调用n_cst_dwsrv_filter的 pfc_FilterDl
g事件,提供过滤服务。
pfc_FindDlg 显示查找对话框并调用n_cst_dwsrv_find的 pfc_FindDlg事件
,提供查找服务。
pfc_FirstPage 数据窗口滚动到第一页
pfc_InsertRow 调用行管理服务在数据窗口中插入一行记录
pfc_LastPage 数据窗口滚动到最后一页
pfc_NextPage 数据窗口滚动到下一页
pfc_Operators 调用n_cst_dwsrv_querymode 的pfc_Operators 事件,并显示
w_selection 对话框
pfc_PageSetup 调用pfc_PageSetupDlg 事件来显示页设置对话框
pfc_PageSetupDlg 显示页设置对话框,并调用n_cst_platform的of_pagesetupdl
g函数,传递数据窗口属性.
pfc_Paste 粘贴
pfc_PreviousPage 数据窗口滚动到前一页
pfc_Print 打印数据窗口
pfc_PrintDlg 显示打印对话框
pfc_PrintImmediat 立即打印数据窗口
pfc_PrintPreview 数据窗口打印预览
pfc_ReplaceDlg 显示替换对话框
pfc_RestoreRow 选择恢复在数据窗口中删除的行
pfc_RowChanged 调用 linkage 服务的 pfc_rowfocuschanged 事件
pfc_Ruler 显示/隐藏数据窗口的标尺
pfc_SelectAll 选择数据窗口单元中的文本
pfc_SortDlg 显示排序对话框,调用n_cst_dwsrv_sort的pfc_SortDlg 事件
进行排序。
pfc_Undo 取消最后一次修改
pfc_Update 更新数据窗口中的修改
pfc_UpdatesPendin 查看数据窗口是否可以更新
pfc_Validation 检查需求域,调用n_cst_dwsrv_linkage服务的 of_Validati
on函数
pfc_Values 调用n_cst_dwsrv_querymode 的pfc_Values事件,显示对话框
,让用户选择
pfc_Zoom 在打印浏览时显示 w_zoom 来调整数据窗口的显示
RButtonDown 鼠标左键按下时触发该事件,并调用行选择服务的 pfc_Rbu
ttonDown 事件
RButtonUp 鼠标左键按下时触发该事件,并调用行选择服务的 pfc_Rbu
ttonUP 事件
RowFocusChanged 如果有linkage 服务的话,沿着链作变化
SQLPreview 如果应用中有这项服务的话,调用sql_spy函数
空用户事件:
pfc_Debug 空事件,允许用户调用w_dwdebugger来显示信息
pfc_PrePageSetupDlg 空事件,允许用户通过N_cst_platform 的of_PageSetupD
lg来修改属性
pfc_PrePrintDlg 空事件, 允许用户通过n_cst_platform 的of_PrintDlg函
数来修改属性
pfc_PreRMBMenu 空事件,允许在显示 m_edit 之前修改其属性
pfc_Retrieve 空事件,允许调用数据库的数据检索
pfc_RetrieveDDDW 空事件,允许为所有下拉数据窗口检索数据,
语法为instancename.Event pfc_RetrieveDDDW ( col
umn )
为自动地刷新一个数据窗口中的所有下拉数据窗口,调
用n_cst_dwsrv的
of_RefreshDDDWs 函数
函数:
of_CheckRequired 查看是否有空的而又不允许空的列
of_GetParentWindow 返回所属的窗口
of_GetUpdateable 查看数据窗口对象是否可以更新
of_SetBase 打开/关闭n_cst_dwsrv提供的服务
of_SetDropDownSearch 打开/关闭n_cst_dwsrv_dropdownsearc提供的服务
of_SetFilter 打开/关闭n_cst_dwsrv_filte提供的服务
of_SetFind 打开/关闭n_cst_dwsrv_find提供的服务
of_SetLinkage 打开/关闭n_cst_dwsrv_linkage提供的服务
of_SetMultiTable 打开/关闭n_cst_dwsrv_multitable提供的服务
of_SetPrintPreview 打开/关闭n_cst_dwsrv_printpreview提供的服务
of_SetQuerymode 打开/关闭n_cst_dwsrv_querymode提供的服务
of_SetReport 打开/关闭n_cst_dwsrv_report提供的服务
of_SetReqColumn 打开/关闭n_cst_dwsrv_reqcolumn提供的服务
of_SetRowManager 打开/关闭n_cst_dwsrv_rowmanager提供的服务
of_SetRowSelect 打开/关闭n_cst_dwsrv_rowselection提供的服务
of_SetSort 打开/关闭n_cst_dwsrv_sort提供的服务
of_SetTransObject 设置数据窗口事物对象
of_SetUpdateable 设置数据窗口是否可以更新
U_DW 中使用的服务例程变量(也是服务对象):
Inv_base: (n_cst_dwsrv)
变量:
Idw_requestor:u_dw(使用了inv_base的数据窗口控件)
函数:
Of_describe:
(1). Of_describe(returndescribe,attribute,columnname)描述一特定列的指定
属性。Returndescribe是n_cst_dwobjectattrib 类型的结构。
(2). Of_describe(returndescribe,attribute{,objecttype,heade.leveliumba
traue.leveluumse,band,headerdetall,footer,mmar,
visibleonly})描述多列的指定属性。
Of_getcolumndisplayname(column):获得数据窗口中列的显示名
Of_getcolumndisplaynamestyle( ):获得数据窗口中列的显示名 {0__default数
据窗口列显示名;1—DBNAME数据库字段名2—hearder字段题头名}
Of_getheadername(columnname{,saffix}):获得某列的题头名。
Of_getheight( ):获得数据窗口的高度。
Of_getinfo(InfoObject):InfoObject 是n_cst_infoattrib类型的结构。
Of_getitem(row,column.{buffer,originalvalue}):从数据窗口的某行某列中获
得格式化的文本(string)而不管其本来的数据类型。
Of_getitemany(row,column,{,buffer,orig in alvalue}) :获得数据窗口中的
某行某列的值(any 数据类型)。
Of_getobjects(objectlist{,objecttype,band,visibleonly}):从数据窗口中
获得相关的对象的名字并放入字符串数组中。Objecttype:(Bitmap,Column,
Compute (for computed field), Graph, Line, Ellipse (for oval) ,Rec
tangle, Report ,Roundrectangle, Tableblob ,Tex。)
Of_getwidth ( ):获得数据窗口的宽度。
Of_modify(attribute,value{,objecttype ,band,visibleonly}) 修改数据窗口
中的多列的属性和band(Header,Detail ,Footer,Summary)的属性
Of_modify(attribute,vdne,colnmnname):修改数据窗口中的单列的属性。
Of_populatedddw(column):更新指定的dddw(还有问题,建议不使用此函数而使
用of_RefreshDDDWs来代替)
Of_populatedddws( ):更新一个datawindow中所有的dddw(也有问题,使用of_
RefreshDDDWs来代替)
Of_RefreshDDDWs():更新一个datawindow中所有的dddw(下拉数据窗口)。
Of_setcolumndisplaynamestyle (style):设置数据窗口中列名称的显示风格:
0 or DEFAULT DataWindow column name ;1 or DBNAME Database column na
me ;2 or HEADER Column header name。
Of_setitem(row,column,value):设置某行某列的值。
Of_setrequstor(requestor):将该服务与某个数据窗口相连。
使用数据窗口基本服务(用于设置或获取数据窗口信息)
(1)Of_setbase (true) 打开该服务。
(2)调用该服务对象中的函数来设置或获取数据窗口信息
如:Of_describe(),Of_modify,Of_RefreshDDDWs()等。
Inv_DddwSearch (下拉数据窗口查找服务)
用途:在下拉数据窗口的文本框中输入字符串时,下拉框中自动滚动到以用户输
入的字符串开始的行。
使用下拉数据窗口查找服务
(1)Of_setdropdownsearch(true) 打开该服务。
(2)在数据窗口控件的Editchanged事件中,加入
inv_dropdownsearch.event pfc_editchanged(row,dwo,data)
(3)在数据窗口控件的itemfocuschanged事件中加入
inv_dropdownsearch.event pfc_itemfocuschanged(row,dwo)
inv_filter (过滤服务)
用途:显示一个过滤窗口,由用户选择过滤字段和过滤条件进行过滤。
使用过滤服务:
(1)Of_setfilter(true) 来打开该服务。
(2)Of_settransobject (sqlca) 设置事务对象。
(3)Inv_filter.of_setstyle (SIMPLE or EXTENDED or DEFAULT)
设置过滤窗口的类型,建议使用SIMPLE类型。
(4)在需要过滤时使用inv_filter.event pfc_filterdlg( ),即可显示过滤窗
口,进行过滤。
Inv_find (查找和替换服务)
用途:显示一个查找框或一个替换框,用来查找和替换数据。
使用查找和替换服务:
(1)Of_setfind (true) 来打开该服务。
(2)调用数据窗口控件的Pfc_finddlg( )事件来查找数据。
如:dw_1.event pfc_finddlg()
(3)调用数据窗口控件的Pfc_replaceDlg( )事件来替换数据。
如:dw_1.event pfc_replacedlg()
说明:数据窗口的pfc_finddlg和pfc_replacedlg事件只有当打开了查找和替换服
务时才起作用。
Inv_linkage (连接服务)
用途:用于提供连接服务(主要是主从数据窗口连接服务,当主数据窗口改变时
,从数据窗口自动的完成某些
相应改变)。
使用联接服务:
提供的功能:
Linkage style: 连接风格,控制连接是从数据窗口获得数据,过滤数据,还是
滚到相关的列。
Update style: 更新风格,控制联接服务怎样控制数据窗口的更新,既主从数据
窗口的更新次序。(top_down,
bottom_up,top_down then bottom_up,bottom_up then top_down)。
Confirm on row change: 主数据窗口的行改变时,若相连的从数据窗口的行已
经修改且未保存,则弹出对
话框提示用户。
Confirm delete: 删除时是否确认:当用户删除行时显示一个对话框提示用户是
否删除。
Cascading key changes:连接key改变:当主数据窗口的连接键改变时,所有相
连的从数据窗口的连接键也
同时作相应的改变。(连接键即相连的字段)
Deletestyle:删除主数据窗口的行时,是否删除从数据窗口相连的行。三种风格
:Delete,discard,leavealone。
Extended update:用于在缺省的存储进程(pfc_save)中结合其他的控制。
使用连接服务:
(1)Dw_master.of_setlinkage(true) 主窗口打开连接服务(可有不止两层数
据窗口)
(2)Dw_detail.of_setlinkage(true) 从窗口打开连接服务
(3)Dw_master .inv_linkage. Of_settransobject(SQLCA) 主窗口设置事务对
象
(4)Dw_detail.inv_linkage.of_setmaster(dw_master) 从窗口设置其主窗口
(5)建立连接:dw_detail.inv_linkage.of_register(“emp_id”,“emp_id”
) 设置主从数据窗口的连接字段。
(6)确定更新风格: dw_detail.inv_linkage.of_setupdatestyle( )
(7)确定主数据窗口行改变时从数据窗口的动作:
Dw_detail.inv_linkage.of_setstyle( ) (retrieve, filter, scroll.)
(8)执行主窗口的retrieve
dw_master.of_retrieve ()
(9)在主从数据窗口的pfc_retrieve 事件中加入以下代码:
return this.retrieve()
* (10) 是否Confirm on row change:
inv_linkage.of_setupdateonrowchanged(true)
inv_linkage.of_setconfirmonrowchanged (true)
*(11)是否confirm on delete :
inv_linkage.of_setupdateonrowchanged(true)
inv_linkage.of_setconfirmondelete(true)
*(12)是否使用连接键改变(cascading key changed):
dw_master.inv_linkage.of_setsynconkeychanged(true)
dw_detail.inv_linkage.of_set syncon key changed(true)
*(13)确定删除风格(delete style):
dw_master.inv_linkage.of_setdeletestyle( ) default----0,delete_rows
----1,discard_rows----2
inv_rowmanager (行管理器服务)
用途:增加、插入、删除行;显示一个对话框来选择恢复插入的行。
使用行管理器服务:
(1)Of_setrowmanager(true) 来打开服务。
(2)增加一行:inv_row manager.event pfc_addrow( )。
(3)插入一行:inv_rowmanager.event pfc_insertrow( )。
(4)删除一行:inv_rowmanager.event pfc_deleterow( )。
(5)恢复多行:inv_rowmanager.event pfc_restorerow()。
Inv_rowselect (行选择服务)
用途:用于对行进行选择,一次可选一行或多行。有单行,多行,扩展三种选择
方式
单行方式只能选择一行;多行方式可选择多行,对每一行click选中,再click
取消;扩展方式也可
选择多行,使用window的标准选择方式,使用(shift + click或ctrl + click)
使用行选择服务:
只需of_setrowselect (true) 打开该服务即可自动生效。
Inv_resize (调整大小服务)
用途:调整数据窗口中列的大小
使用调整大小服务:
(1)Of_setresize (true) 来打开服务
(2)Inv_resize.of_setorigsize( ) .设置数据窗口原大小。
(3)Inv_resize.of_setminisize( ) 设置数据窗口最小的大小。
(4)指定需调整大小的列。Inv_resize.of_register( ) 每调用一次登记一列。
Inv_sort (排序服务)
用途:显示一个排序框,由用户选择排序字段进行排序。有四种风格如下:
0缺省排序框。 1拖放排序框。 2单条件排序框。 3多条件排序框。
使用排序服务:
(1)Of_setsort(true) 来打开该服务。
(2)设置排序是依据显示值还是数据值。Inv_sort.of_setusedisplay(true).
(3)指定排序风格。0缺省排序框。 1拖放排序框。 2单条件排序框。 3多条
件排序框。
Inv_sort.of_setstyle ( )
(4)在需要排序处调用dw_1.event pfc_sortDLG( )来显示排序对话框。
Inv_multitable (多表更新服务)
用途:用于对从多个表中取出来的字段组成的表进行更新。(即对视图进行更新
)只可修改,不可插入,增加,
删除。
使用多表更新服务:
(1) of_setmultitable (true) 来打开服务。
(2) 登记需要更新的表。
如:string is_projcols[ ] = {“proj_id”}
string is_taskcols[ ] = {“proj_id”, “task_id”}
inv_multitable.of_register(“project”,ls_projcols) 登记project表中需
要更新的字段。
inv_multitable.of_register(“task”,ls_taskcols) 登记task表中需要更新
的字段。
(3)调用所属窗口的pfc_save() 事件来保存修改。
Inv_printprew (打印预览服务)
用途:提供打印预览服务。
使用打印预览服务:
(1) of_setprintprew (true) 来打开服务。
(2) 调用数据窗口的pfc_printprew()事件来使用打印预览服务。
Inv_property (数据窗口属性服务)
用途:程序运行时,在数据窗口上用右键打开数据窗口的属性窗口,可有以下功
能:
(1) 选择允许/禁止数据窗口的各项服务。
(2) 查看和更改行和列的状态(新建、未修改、已修改等)
(3) 访问和统计各种记录(数据窗口中的buffer分成三种:primary, filtere
d, deleted。 Primary缓冲区中保存的是数据窗口中显示的记录,filtered缓冲
区中保存的是数据窗口中被过滤掉的的记录,deleted缓冲区中保存的是数据窗口
中被删除掉的记录)
(4) 访问数据窗口中所有对象的属性。
使用数据窗口属性服务:
(1) of_setproperty (true)来打开服务。
(2) 在程序运行时右击数据窗口。
Inv_querymode (查询模式服务)
用途:提供查询模式进行查询。
使用方法:
(1) of_setquerymode (true) 来打开服务
(2) inv_querymode.of_setenabled (true) 开始查询模式。
(3) inv_querymode.of_setenabled (false) 结束查询模式。
(4) 确定需查询的列:
如:string ls_cols [ ]
ls_cols [1] = “emp_dep_id”
ls_cols [2] = “emp_id”
dw_1.inv_querymode.of_setquerymode (ls_cols)
(5) 调用of_save()函数来保存查询结果。
(6) 调用of_load()函数来装入查询文件。
(7) 右键弹出窗口来显示列名、操作符、值。
Inv_report (报表服务)
用途:提供报表服务。
使用方法:
(1) of_setreport (true) 来打开服务。
(2) of_addcompute () 来加入一个计算列。
Of_addline () 来加入一行。
Of_addpicture () 来加入bitmap。
Of_addtext () 来加入文本。
(3) of_printreport () 来打印报表。
(4) 调用其中的函数来设置default, color, border, size等。
Of_set…()
(5) of_setrelativezoom () 来使数据窗口变为现在的大小。
Inv_reqcolumn (需求列服务)
用途:推迟对有需求的列的需求检查进程直到用户完成全部输入。
使用方法:
(1) of_setreqcolumn (true)
(2) inv_reqcolumn.of_registerskipcolumn (“…”) 登记需要推迟需求检查
的列的列名。
第二节 窗口和菜单(及窗口和菜单的服务对象)
1、 窗口的关系:
Pfc_w_master是所有窗口的祖先,其中包含了变量、函数、事件用以控制窗口的
基本属性、
状态、大小等和对窗口的基本操作。由其派生了六类窗口(主窗口、框架窗口、
弹出窗口、
子窗口、工作表窗口、和响应窗口。
2、pfc_w_master (w_master)
一般变量:
ia_helptypeid Any 控制pfc的showhelp函数的topic,ind
ex 或keyword
ib_closestatus Boolean 控制窗口是否将要结束,并在窗口结束
时显示数据窗口的
合法校验信息
ib_disableclosequery Boolean 是否禁止 closequery 退出前检查的
处理
idw_active u_dw 当前正在处理的数据窗口, pfc_Mess
ageRouter事件用这个变量
来访问当前数据窗口
服务对象变量:
inv_base n_cst_winsrv 基本 windows 的服务的实例对象
inv_preference n_cst_winsrv_preference 窗口属性存取服务对象的
实例
inv_resize n_cst_resize 窗口及其中控件大小变化服务的实例
对象
inv_luw n_cst_luw 可修改对象的保存服务的实例对象
预编码事件:
Close 保存窗口的属性和撤消服务对象实例
CloseQuery 访问所有的可修改对象,作合法校验,提示是否保存信
息
Move 在窗口移动后记载窗口的属性
Open 立即触发pfc_preopen和后触发pfc_postopen事件,并执
行本身的代码。
如果有窗口属性服务,则立即加载窗口的属性到数据窗口
pfc_AcceptText 向当前窗口中所有数据窗口发出 pfc_accepttext 函数
。
pfc_BeginTran 初始化事物transaction 对象
pfc_Close 关闭窗口
pfc_ControlGotFocus 记载当前获得焦点的控件。
pfc_Descendant 测定窗口是否继承于 w_master
pfc_EndTran 作end_of_transaction处理过程,事件带 savemode参数
pfc_Help 通过ia_helptypeid参数来调用showhelp 函数
pfc_MessageRouter 主要用来和菜单传递消息,把菜单中传来的事件名称装
配起来,并触发该事件。
pfc_MicroHelp 在子孙中用来加入代码,用来显示微帮助
pfc_UpdatesPending 在closequery中调用这个事件来搜索未保存的数据窗口
和保存窗口属性,校验
pfc_Validation 在没有保存的数据窗口中发现错误
Resize 如果有n_cst_resize服务的话,自动处理调整窗口大小
pfc_PostUpdate 当成功地更新以后,重设数据窗口的标志
空用户事件:
pfc_New 空用户事件,对应于pfc菜单中的 File > New
pfc_Open 空用户事件,对应于pfc菜单中的 File > Open
pfc_PageSetup 空用户事件,允许用户加入代码来显示Page Setup对话
框和打印多个数据窗口
pfc_PostOpen 空,允许用户加入代码来完成窗口打开后的处理
pfc_PreClose 空,允许用户加入代码来完成窗口关闭之前的处理
pfc_PreOpen 空,允许用户加入代码来完成窗口打开之前的处理
pfc_PreUpdate 空,在这里用户放置保存前的处理过程
pfc_Print 空,先显示一个打印对话框,来打印窗口和数据窗口,对
应于pfc菜单中的
File > Print
pfc_PrintImmediate 空,不显示一个打印对话框,立即打印窗口和数据窗口,
对应于pfc菜单中的
File > PrintImmediate
函数:
of_GetCloseStatus 测定一个窗口是否已经关闭
of_GetDWType 返回在窗口中指定的数据窗口的类型
of_SetBase 打开或关闭n_cst_winsrv服务
of_SetPreference 打开或关闭n_cst_winsrv_preference服务
of_SetResize 打开或关闭n_cst_resize服务
of_UpdateChecks 在窗口中的修改,是否有错误,并返回错误类型
W_master中使用的服务例程变量(也是服务对象):
Inv_base (窗口基本服务)
用途:用来提供窗口居中服务。是以下三种服务的祖先:
n_cst_winsrv_preference 用来保存以下信息:toolbar visible, toolba
r alignment, toolbar
itemorder, toolbar size, toolbar 位置,wind
ow的大小位置,
菜单条的属性。
N_cst_winsrv_sheetmanager 用来管理工作表窗口
N_cst_winsrv_statusbar 用于状态条管理
使用方法:
(1) of_setbase (true) 来打开服务。
(2) 使用inv_base.of_center () 来使窗口居中放置。
Inv_resize (改变大小服务)
用途: 用于改变窗口对象的大小,只有一个PFC_RESIZE事件,通过调用pfc_re
size函数来执行。
当窗口的大小改变时,可用来自动改变窗口中的控件的大小(随着窗口的改变而
改变)
使用方法:
(1) of_setresize (true) 使能改变大小服务(在窗口中)
(2) 登记窗口的原大小
Inv_resize.of_SetOrigSize(this.width,this.height)
(3)登记窗口中需随着窗口的大小改变而改变的控件。
Inv_resize.of_register (控件名,x比例,Y比例,宽比例,高比例y)
或Inv_resize.of_register (控件名,该变方法)
(4)设置设置窗口位置,调整窗口大小
this.x = …
this.y = …
this.width = ..
this.height = …
则窗口中的控件会随着窗口的改变而改变。
(5)设置窗口的最小大小: Inv_resize.of_setminsize(宽,高)
inv_preference (窗口属性存取服务)
用途:用于自动保存和恢复用户窗口的设置(通过registery 或 ini 文件),包
括size,position,toolbar的
设置。
使用方法:
(1) 使用of_setpreference (true)来打开服务。
(2) 根据需要调用以下函数来设置需要服务的对象:
of_settoolbaritemorder () 工具条的次序
of_settoolbaritemspace () 工具条的间隙
of_settoolbaritemvisible () 工具条的可见性
of_settoolbars () 工具条是否需要服务
of_settoolbartitles 工具条的标题
of_setwindow 是否需要保存窗口的属性。
(注:以上函数均有of_get…函数来获得哪些对象已获得该服务。
Inv_luw (可修改对象的保存服务)
用途:用来提供对可修改对象的支持。
说明:一个可修改对象的更新是通过执行一个封装的与修
改有关的函数集(通过调用Of_save)。执行顺序如下:
of_accepttext (获得需检查的控件)
of_updatepending (是否有修改发生)
of_validation (值的正确性验证)
of_updateprep (修该前的准备工作)
of_preupdate (修该前的工作)
of_begintran (开始与数据库通信)
of_update (保存修改)
of_dberror (如有数据库错误,显示错误信息)
of_endtran (结束与数据库通信)
of_postupdate (修改后的工作)
使用方法:
(1) 调用其内部函数来保存修改。
Inv_luw.of_save ()
(2) 调用窗口的pfc_save () 事件来进行修改。
Windowname.event pfc_save ()
说明:窗口的pfc_save () 也是通过调用inv_luw的相应函数来完成保存的工作
的。
以上两种方法都可保存窗口中所有发生了改变的可修改对象(包括数据窗口等
)。
Pfc菜单中的save选择即为调用窗口的pfc_save() 事件,建议统一使用该事件
完成对窗口中对象
的保存。
3、pfc的其他窗口
Pfc_w_master(w_master)是所有pfc窗口的祖先,由它又派生了六种基本的窗口
,包括
Pfc_w_popup (w_popup)、Pfc_w_main (w_main)、Pfc_w_child (w_child)、
Pfc_w_frame (w_frame)、 Pfc_w_sheet(w_sheet)、 Pfc_w_response (w_resp
onse)、
其中前三种继承w_master后并未增加任何变量、函数、事件,而后三种则因其相
应的
特点有所增加。
Pfc_w_frame(w_frame) (框架窗口)
Pfc_w_frame(w_frame)除继承外添加了两个变量和两个函数:
变量:
Inv_sheetmanager (n_cst_winsrv_sheetmanager) 工作表管理器服务
Inv_statusbar(n_cst_winsrv_statusbar) 状态条服务
函数:
of_setsheetmanager(boolean) 打开或关闭使用工作表管理器服务
of_setstatusbar(boolean) 打开或关闭状态条服务
事件:
增加或修改了十六个事件Activate event、Close event、Hide event、Move ev
ent、
pfc_Cascade event、pfc_Layer event、pfc_MicroHelp event、pfc_Minimize
All event、
pfc_PostOpen event、pfc_PreToolbar event、pfc_TileHorizontal event、p
fc_TileVertical event
pfc_Toolbars event、pfc_UndoArrange event、Resize event、Show event。
Activate 调用应用管理器的of_SetFrame为这个窗口作为frame形式
来激活它
Deactivate 当别的窗口activate时,这个窗口触发这个事件
Move 当用户移动窗口时,移动状态条
pfc_Cascade 调用应用管理器的pfc_Cascade事件
pfc_Layer 调用应用管理器的pfc_layer事件
pfc_MicroHelp 在状态条上显示传递的信息
pfc_MinimizeAll 最小化所有窗口
pfc_PostOpen 打开一个 w_statusbar窗口,
pfc_PreToolbar 采用属性来组成 toolbar,pfc_toolbar先弹出 w_toolbar
来设置属性
pfc_TileHorizontal 水平排列窗口
pfc_TileVertical 垂直排列窗口
pfc_Toolbars 显示w_toolbars窗口
pfc_UndoArrange 调用应用管理器的pfc_UndoArrange事件
Resize 设置toolbar当窗口大小调整
Show 若窗口已隐藏,显示该窗口。
Hide 隐藏该窗口
W_frame 中增加的服务例程变量(也是服务对象):
Inv_sheetmanager (工作表管理服务)
用途:帮助管理MDI应用程序中的多个工作表窗口。
使用方法:
(1) of_setsheetmanager (true) 打开该服务,则该服务对工作表自动进行管
理。
(2) 当用户想要获得某些工作表信息时,调用以下函数:
of_getsheetcount () 获得工作表的总数。
Of_getsheets () 获得一个打开的工作表数组
Of_getsheetsbyclass() 获得指定类型的工作表数组
Of_getsheetsbytitle() 获得指定标题的工作表数组
Inv_statusbar (状态条服务)
用途:在框架窗口的下面的条框中显示时间、日期、内寸信息、微帮助信息以及
用户自定义的文本,并提供
进度条支持
功能函数:
of_barincrement 进度条增加
of_barreset 清除进度条中的显示
of_SetGDI 控制控件的 GDI 显示
of_SetMem 控制在显示内存中显示
of_SetTimer 设置是否显示日期,时间
of_SetUser 控制在用户内存中显示
of_modify 修改用户自定义的状态条对象。
Of_open 打开/关闭w_statusbar窗口(即状态条中的进度条)
Of_register 登记和显示一个新的状态条中的用户对象
说明:以上是设置状态条中对象的函数,另有相应的设置和获取状态条中对象的
属性的函数。
Of_getbar ( ) 报告状态条是否包括一个进度条。
Of_getbardisplaystyle 获得进度条的显示风格。 0---bar;1---PCTCOMPLETE进
度条和完成的百分比,
包括百分数2_Position.进度条和完成的百分比,不包括百分数。
Of_getbarfillcolor: 获得进度条当前颜色。
Of_getbarfillstyle: 获得进度条的填充风格。 0_(LEFTRIGHT); 1_(RIGHTLE
FT); 2_(TOPDOWN);
3_(BOTTOMUP)
Of_getbarmaximum 获得进度条的最大增量值。
Of_getbarminimum 获得进度条的最小增量值。
Of_getbarpctcomplete 获得进度条完成的百分比。
Of_getbarposition 获得进度条当前的数值。
Of_getbarstep. 获得进度条增量值。
Of_getbarwidth . 获得状态条中进度条区域的宽度。
Of_getbordertype . 获得状态条缺省的边框。0_none ;1_shadow ;2_rectan
gle;3_resize ;4_line;
5_3Dlowered;6_3draised。
Of_getgapwidth. 获得缺省的状态条中对象的间距。
Of_getGDI GDI memory是否显示。
Of_getGDIthresh 获得当前GDI极值。
Of_getmem 是否显示空闲内存。
Of_getmemthresh 获得当前空闲内存的极值。
Of_getrefreshrate 获得当空所有对象的刷新率。
Of_gettimer 是否显示日期和时间。
Of_getuser 是否显示使用的内存。
Of_getuserthresh 获得使用内存的最大值。
Of_isbarautoreset 进度条是否自动恢复到0。
Of_unregister 去掉用户定义的状态条对象。
说明:以上的of_get... 函数用于获得属性,对称的有of_set... 来设置属性,
这里就不再罗列了。
使用方法:
(1) of_setstatusbar(true) 来打开该服务。
(2) 加入所需的状态条对象。
如: Inv_statusbar.of_setmem(true) 加入内寸显示。
Inv_statusbar.of_settimer(true) 加入时间显示。
Inv_statusbar.of_register(…) 加入用户自定义对象。
(3) 在程序中需要显示微帮助的地方加入以下代码:
windowname.setmicrohelp(“...”) 显示微帮助。
(4) 在程序中需要在用户自定义对象中显示新的信息时加入以下代码:
windowname.inv_statusbar.of_modify(...)
w_response (响应窗口)
事件:
Pfc_w_response (w_response)增加了三个事件:
Pfc_apply event、 Pfc_default event、 Pfc_cancel event。
pfc_Apply 空,允许用户加入代码执行apply事件
pfc_Cancel 空,允许用户加入代码执行cancel事件
pfc_Default 确定改变并关闭这个窗口
w_sheet (工作表窗口)
事件:
Pfc_w_sheet (w_sheet)增加或修改了三个事件:
Activate、 Pfc_microhelp、 Pfc_controlgotfocus。
Activate 通知框架窗口本工作窗口被激活。
Pfc_microhelp 调用框架窗口的Pfc_microhelp事件来显示微帮助。
Pfc_controlgotfocus 把控件中的tag中的内容显示到微帮助中。
4、PFC Menus。
Pfc menu分为两类:窗口菜单和弹出菜单。
窗口菜单:
窗口菜单分为:
M_master:主窗口菜单
M_frame:框架窗口菜单
窗口菜单只有一个函数 of_sendmessage () 用于和窗口进行通信(通过messag
e对象)
弹出菜单:
弹出菜单分为:
m_dw:数据窗口菜单
m_lvs:listview菜单
m_tvs:treeview菜单
m_oc:OLE control 菜单
m_edit:其它可编辑控件的菜单。
弹出菜单只有一个函数 of_setparent () 设置该菜单属于哪个控件。
所有菜单都有两个事件:
clicked:当选中该项时触发,用于执行用户代码或触发某事件。
Selected:当该项菜单获得焦点时触发,用于显示微帮助。
5、使用PFC Windows and Menus。
1) 使用窗口服务
窗口有以下服务
· Base windows service
· Preference service
· status bar service (frame windows only)
· sheet managerment service (frame windows only)
· Resize service
首先决定使用哪些服务
然后在窗口的某个事件(如Pfc_preopen)中打开决定的服务(使用
OF_SETservicename 函数)。
如:this.of_setpreference (true)
然后再调用必要的函数来初始化这些服务。
如:this.inv_preference.of_setmenuitem(true)
2)使用菜单服务
用于提供PFC窗口和菜单之间的通信(n_cst_menu)
a) 不在PFC菜单中使用菜单服务。
·在菜单条项的脚本中
n_cst_menu inv_menu 使能菜单服务。
Message.Stringparm=“w_emplist”
Inv_menu.of_sendmessage(this,“pfc_open”)
·在框架窗口的pfc_open 事件中使用如下代码
string ls_window
w_sheet lw_sheet
ls_window=message.stringparm
opensheet(lw_sheet,ls_window,this,original!)
b)通过PFC菜单打开PFC窗口
PFC菜单通过 message router 与PFC窗口相联系。
例从菜单条中打开一个PFC窗口时
·在菜单条项的脚本中
message.stringparm=”w_temp” w_temp 为 PFC窗口名
of_sendmessage (this,”pfc_open”)
·在框架窗口的pfc_open 事件中使用如下代码
string ls_window
w_sheet lw_sheet
ls_window=message.stringparm
opensheet(lw_sheet,ls_window,this,original!)
3)使用Pfc_save进程
W_master 的Pfc_save 事件自动检验和保存当前窗口中的所有的数据窗口的数据
。
因为Pfc_save事件调用了许多其它事件,与其说它是一个事件,不如说它是一个
进程。
Pfc_Save事件的调用顺序如下:
Of_updatechecks:
Pfc_accepttext 调用n_cst_luw的of_accepttext
Pfc_updatespending 调用n_cst_luw的of_updatespending
Pfc_validation 调用n_cst_luw的of_validation
Pfc_updateprep 空事件以便用户加入代码
Pfc_prepupdate 空事件以便用户加入代码
Pfc_begintran 空事件以便用户加入代码
Pfc_update 通过调用Pfc_updateobject事件调用
n_cst_luw的 of_update
Pfc_endtran 空事件以便用户加入代码
Pfc_dberror 显示database error
Pfc_postupdate 调用n_cst_luw的 of_postupdate
Pfc_save Returns: integer
1 = success
0 = No pending changes found
-1 = AcceptText error
-2 = UpdatesPending error was encountered
-3 = Validation error was encountered
-9 = The pfc_updateprep process failed
-4 = The pfc_preupdate process failed
-5 = The pfc_begintran process failed
-6 = The pfc_update process failed
-7 = The pfc_endtran process failed
-8 = The pfc_postsave process failed
第三节 使用其他服务对象
1、 N_cst_conversion (类型转化服务)
用途:用于转变数据类型。(该对象仅有函数)
使用方法:
(1)定义一个服务对象以使能该服务。 N_cst_conversion inv_conversion.
(2)调用该服务对象的函数来完成任务。Inv_conversion.of_…;
Of_boolean(string or int)
Of_button(string,button)
ok,ok can cel,yes,no yes no can cel,retry cancel Abort petry cancd.
Of_data(string)
Of_icon(string,icon) none!,qnestion!,information!,stopsign!,exdamatio
n!.
Of_integer (boolean)
Of_ostype ( , )AIX,HPUX,macintosh,OSF1,SOL2,windows, windows NT to o
stype.
Of_string(boolean,{return type}) TRUEFALSE,TF,YESNO,YN,ZEROONR.
Of_string(input) input con button
Of_time (string).
(3)不用时destroy inv_conversion
2、N_cst_datetime (日期时间服务)
用途: 用于日期、时间的计算和格式转变。
使用日期、时间服务:
(1)n_cst_datetime inv_datetime (定义一个服务对象)。
(2)使用inv_datetime.of_... 函数来完成任务。
Of_dayofweek( sourcedate) 是一周第几日。
Of_days( seconds) 将秒转为天。
Of_firstdayofmonth(sourcedate) 计算给定日期所在月的第一天。
Of_gregorian(juliandate) 将julian型日期转变为gregorian。
Of_hours(seconds) 将秒数转为小时。
Of_isleapyear(sourcedate) 是否闰年。
Of_isvalid(source) 是否有效。
Of_isweekday (source) 是否周日。
Of_isweekend(source) 是否周末。
Of_lastdayofmonth( ) 计算给定日期所在月的最后一天
Of_monthname( ) 获得给定月的名称
Of_monthsafter( , ) 两个日子中的整月数。
Of_relativedatetime(start,offset). 给定日期时间和相对日期时间,得出日期
时间
Of_relativemonth(scart,offset). 给定日期时间和相对月数,得出日期时间
Of_relativeyear(start,offset). 给定日期时间和相对年数,得出日期时间
Of_sencondssfter(start,end) 计算两个时间之间的秒数
Of_wait( ) 临时停止进程。
Of_weeksafter( , ). 计算两个日期中间星期数
Of_yearsafter( , ). 计算两个日期中间年数
(3)不用时destroy inv_datetime
3、N_cst_filesrv (文件服务)
用途:提供文件和目录服务。
使用方法:
(1)n_cst_filesrv inv_filesrv
(2)f_setfilesrv(inv_filesru,true)
(3)调用其中的功能函数来完成工作。
of_AssemblePath 合成一个完整的文件全路径
of_CalculateFileAttributes 计算文件属性字
of_ChangeDirectory 切换到指定的目录
of_CreateDirectory 创建目录
of_DelTree 删除目录
of_DirectoryExists 目录是否存在
of_DirList 在这个对象中,仅为虚拟函数…(文件列表)
of_FileCopy 文件拷贝
of_FileRead 读文件
of_FileRename 文件重命名
of_FileWrite 写文件
of_GetAltFilename 在这个对象中,仅为虚拟函数…
of_GetCreationDate 取得文件建立日期
of_GetCreationDateTime 取得文件建立日期时间
of_GetCreationTime 取得文件建立时间
of_GetCurrentDirectory 取得当前目录
of_GetDiskSpace 取得指定磁盘空间
of_GetDriveType 取得驱动器的类型
of_GetFileAttributes 取得文件的属性
of_GetFileSize 取得文件的尺寸
of_GetLastAccessDate 取得最后访问文件的日期
of_GetLastWriteDate 取得最后写文件的日期
of_GetLastWriteDateTime 取得最后访问文件的日期时间
of_GetLastWriteTime 取得最后写文件的时间
of_GetLongFilename 取得文件的长文件名
of_GetSeparator 取得文件分隔符
of_IncludeFile 判断文件是否被包含在of_dirlist 设置中
of_ParsePath 分解全文件路径
of_RemoveDirectory 删除目录
of_SetCreationDateTime 设置文件创建的日期,时间
of_SetFileArchive 设置文件具有Archive 属性
of_SetFileAttributes 设置文件具有属性
of_SetFileHidden 设置文件具有 Hidden 属性
of_SetFileReadonly 设置文件具有Readonly 属性
of_SetFileSystem 设置文件具有System 属性
of_SetLastAccessDate 设置文件最后访问日期
of_SetLastWriteDateTime 设置文件最后写日期
of_SortDirList 设置文件列表排序
(3)不用时destroy inv_filesrv.
4、N_cst_inifile (INI文件服务)
用途:提供ini文件服务
使用INI文件服务:
(1) n_cst_inifile inv_file
(2) 调用其中的函数来完成工作。
of_Delete 删除初始化文件
of_GetKeys 取得全部的键和总键数
of_GetSections 取得全部的节和总节数
(3) 不用时 destroy inv_inifile
5、N_cst_numerical (数值服务)
用途:提供数值服务。
使用方法:
(1) N_cst_numerical inv_numerical
(2) 调用其中的函数来完成工作。
of_Binary 十进制转换为 二进制
of_BitwiseAnd 实现位的 “与” 操作
of_BitwiseNot 实现位的 “非” 操作
of_BitwiseOr 实现位的 “或” 操作
of_BitwiseXor 实现位的 “异或” 操作
of_Decimal 二进制 转换为 十进制
of_GetBit 测试十进制中的二进制位值
(3)不用时 destroy inv_numerical
6、N_cst_platform (平台服务)
用途:提供平台服务。此服务中提供的函数可在多个平台下运行而用户不需考虑
是哪个平台
使用platform服务:(获得该平台下的内存信息、系统资源、路径等)
(1) N_cst_platform inv_platform
F_SetPlatform(inv_platform, TRUE)
(2) 调用其中的函数来完成工作。
of_FindWindow 虚拟函数(在子孙中有实际的处理函数)
of_GetComputerName 虚拟函数(在子孙中有实际的处理函数)
of_GetFreeMemory 虚拟函数(在子孙中有实际的处理函数)
of_GetFreeResources 虚拟函数(在子孙中有实际的处理函数)
of_GetPhysicalMemory 虚拟函数(在子孙中有实际的处理函数) 不
支持16位环境
of_GetSystemDirectory 虚拟函数(在子孙中有实际的处理函数)
of_GetTextSize 虚拟函数(在子孙中有实际的处理函数)
of_GetUserID 虚拟函数(在子孙中有实际的处理函数)
of_GetWindowsDirectory 虚拟函数(在子孙中有实际的处理函数)
of_GetWindowText 虚拟函数(在子孙中有实际的处理函数)
of_IsAppRunning 虚拟函数(在子孙中有实际的处理函数) 不
支持32位环境
of_PageSetupDlg 显示w_pagesetup ,在里面允许控制打印设
置
of_PlaySound 虚拟函数(在子孙中有实际的处理函数)
of_PrintDlg 虚拟函数(在子孙中有实际的处理函数)
(3) 不用时 destroy inv_numerical
说明:当调用该服务中的函数时,系统根据当前的平台决定调用该服务对象的子
孙服务对象中的函数完成相应的功能。
7、N_cst_selection (选择服务)
用途:用于显示一个W_selection窗口,从datawindow中选择一行并将值存入一个
any类型的数组中。
使用selection服务:
(1) n_cst_selection lnv_selection
(2) 声明和初始变量
Any la_selected[ ] 保存选择的行的值
String ls_columns[ ] 记录需进行选择的列名
Integer li_count
ls_columns[1] = "emp_id" 初始化
ls_columns[2] = "emp_lname"
ls_columns[3] = "emp_fname"
(3) 调用该服务中函数来显示选择窗口。
inv_selection.of_Open ("datawindow名", la_selected, SQLCA, ls_columns)
则将选中的行的值存入la_selected数组中。
(4)不用时destroy inv_selection
8、N_cst_SQL (SQL语句的解析服务)
用途:用于把字符串组装成为 SQL语句和把SQL语句分解成为字符串。
使用SQL parsing服务:
(1) n_cst_sql inv_sql
(2) 组装SQL语句
String ls_sql
n_cst_sqlattrib lnv_sqlattrib[ ]
lnv_sqlattrib[1].s_verb = “。。。”
lnv_sqlattrib[1].s_tables = “。。。”
lnv_sqlattrib[1].s_columns = “。。。”
lnv_sqlattrib[1].s_values = “。。。”
lnv_sqlattrib[1].s_where = “。。。”
lnv_sqlattrib[1].s_order = “。。。”
lnv_sqlattrib[1].s_group = “。。。”
lnv_sqlattrib[1].s_having = “。。。”
ls_sql = inv_sql.of_Assemble(lstr_sql)
(3) 分解SQL语句
使用inv_sql.of_parse () 语句。
(4) 不用时destroy inv_sql。
9、N_cst_string (字符串服务)
用途:提供对字符串的分析和操作服务
使用方法:
(1) N_cst_string inv_string
(2) 调用其中的函数完成所需的功能
字符串服务的函数如下:
of_ArrayToString 把string数组 通过 分隔符号来组成 一个 stri
ng
of_CountOccurrences 判断一个字符串在另一个字符串中的个数
of_GetKeyValue 取得一个"表达式"右边的值(表达式,通过键
,分隔符)
of_GetToken 用来分解以分隔符隔开的一串参数
of_GlobalReplace 在字符串中替换所有匹配的值
of_IsAlpha 字符串是否全是字母
of_IsAlphaNum 字符串是否全是数字
of_IsArithmeticOperator 字符串是否全是数字操作符
of_IsComparisonOperator 字符串是否全是比较操作符
of_IsEmpty 字符串是否为空串
of_IsFormat 字符串是否为格式化串
of_IsLower 字符串是否全为小写字母
of_IsPrintable 字符串是否全为可打印字符
of_IsPunctuation 字符串是否全为标点符号
of_IsSpace 字符串是否全为空格
of_IsUpper 字符串是否全为大写字母
of_IsWhiteSpace 字符串是否全为特殊空字符(如tab,enter,newl
ine等)
of_LastPos 一个字符串在另一个字符串中存在的最后位置
of_LeftTrim 从字符串左边删除空格和非打印字符
of_PadLeft 在一个字符串左边加上指定空格
of_PadRight 在一个字符串右边加上指定空格
of_Parsetoarray 将一个字符串按分隔符来分解成一个字符数组
of_Quote 用引号把一个字符串包起来
of_RemoveNonPrint 删除一个字符串中不可打印的字符
of_RemoveWhiteSpace 删除一个字符串中特殊空字符的字符
of_RightTrim 从字符串后删除空格和非打印字符
of_SetKeyValue 设置键对应的值
of_Trim 删除一个字符串中空字符和不可打印的字符
of_WordCap 把所有的词的首字符大写,其余字符小写
第四节 可视控件
1、 pfc_u_cb (PFC Commandbutton class)
事件:
GetFocus 调用窗口的pfc_ControlGotFocus 事件,可以用来显示微
帮助
函数:
of_GetParentWindow 返回相关联的窗口
2、 pfc_u_cbx (PFC Checkbox class)
事件:
GetFocus 调用pfc_ControlGotFocus 事件,以用来显示微帮助
函数:
of_GetParentWindow 返回相关联的窗口
3、 pfc_u_ddplb (PFC DropDownPictureListBox class)
变量:
ib_autoselect Boolean 控件 getfocus 后, 文本是否自动地被选上
ib_rmbmenu Boolean 在控件上按右键时,是否显示 m_edit 菜单
ib_search Boolean 当用户键盘输入时,是否滚动到匹配的地方
事件:
CbnEditChange 处理用户输入字符时,自动滚动到相应的入口
GetFocus 设置 microhelp 处理
pfc_Clear 清除选择的文本
pfc_Copy 拷贝选择的文本
pfc_Cut 剪下选择的文本
pfc_Paste 粘贴选择的文本
pfc_PreRMBMenu 处理 m_edit菜单中item的是否可用性
pfc_SelectAll 选择所有文本
RButtonUp 显示 m_edit 弹出式菜单
函数:
of_GetParentWindow 返回相关联的窗口
4、 pfc_u_em (PFC Editmask class)
变量:
ib_autoselect Boolean 控件获得 focus 时,是否自动选择文本
ib_rmbmenu Boolean 当按下右键时,是否弹出 m_edit 菜单
事件:
GetFocus 显示微帮助
pfc_Clear 清除文本
pfc_Copy 拷贝文本
pfc_Cut 剪下文本
pfc_Paste 粘贴文本
pfc_PreRMBMenu 弹出菜单前处理
pfc_SelectAll 选择所有文本
pfc_Undo 恢复最后一次修改动作
RButtonUp 弹出菜单
函数:
of_GetParentWindow
5、 pfc_u_gr (PFC Graph class)
事件:
GetFocus
函数:
of_GetParentWindow
6、pfc_u_hsb (PFC HorizontalScrollbar class)
事件:
GetFocus
函数:
of_GetParentWindow
7、 pfc_u_lb (PFC Listbox class)
事件:
GetFocus 显示微帮助
pfc_InvertSelection 反向选择
pfc_SelectAll 选择所有选项
函数:
of_GetParentWindow 返回相关的窗口
of_GetSelected 返回一个N_cst_itemattrib结构数组的第一个选择项的
索引号
8、 pfc_u_lv ( PFC ListView class)
变量:
ib_rmbmenu Boolean 按右键时,是否弹出 m_view 菜单
ids_source n_ds item的数据来源
igrs_currentsort GrSortType 记载当前排序状态
ii_currentsortcol Integer 记载当前排序的列
il_lasthandle Long 记载最后一个 item 的handle
il_rightclicked Long 记载右键按下时的 item 的 handle
im_view m_view 弹出式菜单 m_view 的实例
is_colformat[ ] String 所有列的数据格式
is_coltype[ ] String 所有列的数据类型
is_columns[ ] String 所有列的名称
is_labelcolumn String 标签列
is_overlaycolumn String 选择后的图形列
is_picturecolumn String 图标列
is_statecolumn String 共有的列
is_xposcolumn String item 的 x 位置列
is_yposcolumn String item 的 y 位置列
事件:
ColumnClick 实现排序工作(详细资料情况下)
Destructor 撤消 m_view 对象
EndLabelEdit 修改标签完成后,作数据保存
GetFocus 显示微帮助
pfc_PreRMBMenu 在弹出 m_view 之前作它的显示内容修改
RButtonUp 弹出 m_view 菜单
RightClicked 记载按右键时的 item 索引号
函数:
of_AddColumn 在详细资料方式下,增加一列
of_AddColumns 在详细资料方式下,为每个数据窗口中可见的列增加一列
of_AddItem 利用Ids_source中的记录在 listview 中增加一个 item
of_CreateKey 在 ids_source 上创建一个键,使每一行都不重复
of_DeleteItem 删除 item
of_FormatData 以它自己的格式来取得转换行列的数据
of_GetCurrentSort 取得指定列的排序方式
of_GetDataRow 返回指定的item 的datastore 和在它上的记录的行号
of_GetDataSource 查看一个 datastore 是否用于 listview 的数据源中
of_GetItemForRow 返回ids_source的指定行row 在 listview 中的索引号
of_GetParentWindow 返回相关的窗口
of_Populate 指定ids_source的参数,来组装 listview 中的 item
of_Refresh 用ids_source中的更新的数据来刷新 item
of_RefreshItem 用在ids_source中对应的行的信息来刷新 item
of_RefreshItemForRow 用在ids_source中对应的行的信息来刷新 item
of_ResetUpdate 为ids_source数据更新,重新设置定标志
of_SetAttributes 利用 ids_source 中的信息来设置 item 的属性
of_SetDataSource 设置 listview 的数据源 ids_source
of_Update 保存listview 中相关的 datastore 中的数据
9、 pfc_u_lvs ( 基于服务的PFC ListView class)
建议使用此对象作为 listview 的祖先以便使用PFC提供的服务。
变量:
ib_alwaysvalidate 是否总是进行合法检查
ib_isupdateable 是否可修改
ib_rmbmenu 右键是否有弹出菜单
il_lasthandle 跟踪最后加入的listview item
il_rightclicked 右键点击的listview item的句柄
inv_base listview 基本服务对象(n_cst_lvsrv)
inv_datasource listview数据源服务对象(n_cst_lvsrv_datasource)
inv_luw 检查、存储服务对象(n_cst_luw)
inv_sort 排序服务对象(n_cst_lvsrv_sort)
说明:以上变量除inv_base、inv_datasource、inv_sort为public类型外,其余
全为protected类型。
Protected类型的变量只能在该对象及其后代内部使用。
事件:
ColumnClick 实现排序工作(详细资料情况下)
Destructor 撤消 m_view 对象
EndLabelEdit 修改标签完成后,作数据保存
GetFocus 显示微帮助
pfc_PreRMBMenu 在弹出 m_view 之前作它的显示内容修改
RButtonUp 弹出 m_view 菜单
RightClicked 记载按右键时的 item 索引号
pfc_AcceptText 获得需检查的对象
pfc_AddAll 将datastore 中所有的行加入listview中
pfc_AddItem 在listview中加入一行
pfc_DeleteItem 在listview中删除一行
pfc_InsertItem 在listview中插入一行
pfc_InvertSelection 在listview中反选行
pfc_NewItem 空用户事件
pfc_Populate 从datastore中获得数据并显示在listview中
pfc_PostUpdate 调用inv_luw中的pfc_postupdate事件
pfc_PreDeleteItem 空用户事件
pfc_PreInsertItem 空用户事件
pfc_PreRefreshItem 空用户事件
pfc_PreRmbMenu 空用户事件
pfc_Properties 空用户事件
pfc_Refresh 刷新listview
pfc_RefreshItem 刷新listview中的一项
pfc_RenameItem 改名listview中的一项
pfc_Retrieve listview重新从数据库获得数据
pfc_SelectAll 选择listview中的全部项
pfc_SetItemAttributes 设置listview中的项的属性
pfc_Undo 取消listview中的最后一次改变
pfc_Update listview修改保存
pfc_UpdatePrep 空用户事件
pfc_UpdatesPending 调用inv_luw的pfc_updatespending事件
pfc_Validation 需求列检查
函数:
of_AcceptText 调用inv_luw的of_accepttext函数
of_AddItem 利用Ids_source中的记录在 listview 中增加一个 item
of_GetInfo 获得对象信息
of_GetObjects 获得可修改的对象
of_GetParentWindow 返回相关的窗口
of_GetRow 由行索引获得行
of_GetUpdateRequestor 获得要求修改的对象
of_InsertItem 插入一项
of_IsAlwaysValidate 是否总是进行需求列检查
of_IsUpdateable 是否可修改
of_MessageBox 显示信息
of_PostUpdate 调用pfc_postupate事件
of_Reset 从listview和datastore中删除所有的列
of_SetAlwaysValidate 设置是否进行需求列检查
of_SetBase 设置是否使用listview的基本服务
of_SetDataSource 设置 listview 的数据源 ids_source
of_SetLogicalUnitOfWork 设置是否使用检查和保存服务
of_SetSort 设置是否使用排序服务
of_SetUpdateable 设置是否可更新
of_SetUpdateRequestor 设置需要使用保存服务的对象
of_Update 保存listview 中相关的 datastore 中的数据
of_UpdatePrep 空用户事件
of_UpdatesPending 调用pfc_updatespending事件
of_Validation 进行需求列验证
使用 PFC_u_lvs 中使用的服务对象
Inv_base (listview基本服务,n_cst_lvsrv类型)
用途:提供listview基本服务
使用方法:
(1) lv_1.of_setbase (true)
(2) 完成populate listview
(3) 调用inv_base中的函数来完成所需的功能。
Inv_base中的函数如下:
of_FindNext 找到某项的下一项
of_FindSelected 找到选中项的下一项
of_GetDisplayItem 获得单项的显示名
of_GetDisplayUnits 获得多项的显示名
of_SetDisplayItem 设置单项的显示名
of_SetDisplayUnits 设置多项的显示名
of_SetRequestor 设置需要该服务的对象
inv_datasource (listview数据源服务,n_cst_lvsrv_datasource类型)
用途:用于提供u_lvs中显示的数据。
使用方法:
(1) this.of_SetDataSource(TRUE) 来打开服务
(2) this.inv_datasource.of_Register("emp_lname","d_emplist", SQLCA)
来登记数据来源。
(3) 调用其中的函数来设置listview的属性:
如:this.inv_datasource.of_RegisterReportColumn ()
this.inv_datasource.of_SetPictureColumn("1")
(4)调用u_lvs的 pfc_Populate 事件来populate listview
this.Event pfc_Populate()
inv_datasource中的函数如下:
of_CanUndo function 是否可以进行undo操作
of_ConfirmDelete function 是否需要确认删除
of_ConvertToRow function 反向选择
of_FormatData function 将datawindow值转变为string
of_GetColumnInfo function 获得列的状态信息
of_GetDataObject function 获得作为listview数据来源的数据窗
口对象
of_GetDataRow function 从datastore 中获得与特定的listvie
w的项相应的行
of_GetDataSource function 获得listview的datastore
of_GetIndex function 获得datastore中特定的行的在listv
iew中相应的项的索引号
of_GetLabelColumn function 获得作为listview中项显示出来data
store中的字段名
of_GetMethod function 获得populate listview的方式
of_GetOverlayPictureColumn function 获得作为listview中项的
overlay picture来源的字段名
of_GetPictureColumn function 获得作为listview中项的icon的来
源的字段名
of_GetStatePictureColumn function 获得作为listview中项的sta
te picture的来源的字段名
of_GetTransObject function 获得作为transaction对象
of_GetXPosColumn function 获得指定X坐标的项的字段名
of_GetYPosColumn function 获得指定Y坐标的项的字段名
of_InsertItem function 在listview中插入一项
of_IsConfirmOnDelete function 获得是否在删除时确认
of_Refresh function 刷新listview
of_Register function 登记listview的数据来源(DataW
indow, SQL statement,
DataWindow control,DataStore,p
assed data,file)
of_RegisterDataSource function 将listview的数据来源登记到缓
冲区中
of_RegisterReportColumn function 加入一行或多行字段到listvi
ew的detail view的显示中
of_Reset function 清除listview数据来源中的所有数
据
of_ResetList function 清除listview中和listview数据来
源中的所有数据
of_ResetUpdate function 重新设置包含listview中数据的da
tastore中的修改标志
of_Retrieve function 从datastore中获得listview中的数
据
of_SetCache function 允许/禁止使用缓冲区
of_SetConfirmOnDelete function 设置是否需要确认删除
of_SetItemAttributes function 设置listview中项的属性
of_SetOverlayPictureColumn function 设置作为listview中项的o
verlay picture来源的字段名
of_SetPictureColumn function 设置作为listview中项的icon的
来源的字段名
of_SetStatePictureColumn function 设置作为listview中项的sta
te picture的来源的字段名
of_SetXPosColumn function 设置指定X坐标的项的相连的字段名
of_SetYPosColumn function 设置指定Y坐标的项的相连的字段名
of_UnRegisterReportColumn function 删除一行或多行字段从listv
iew的detail view的显示中
of_Update function 提交保存
inv_sort (listview排序服务,n_cst_lvsrv_sort类型)
用途:提供对listview中项的自动排序服务
使用方法:
(1) lv_1.of_SetSort(TRUE) 来打开该服务
(2) lv_1.inv_sort.of_SetColumnHeader(TRUE) 设置是否使用字段的题头排序
(3) (可选)指定不需参加排序的字段
如:String ls_exclude[ ]
ls_exclude[1] = "emp_phone_number"
lv_1.inv_sort.of_SetExclude(ls_exclude)
10、pfc_u_mle ( PFC MultiLineEdit class)
变量:
ib_autoselect Boolean 获得 focus 时是否自动选择文本
ib_rmbmenu Boolean 击右键时,是否弹出 m_view 菜单
事件:
GetFocus 显示微帮助
pfc_Clear 清除选择的文本
pfc_Copy 拷贝选择的文本
pfc_Cut 剪下选择的文本
pfc_Paste 粘贴选择的文本
pfc_SelectAll 选择所有的文本
pfc_Undo 恢复最后一次修改
pfc_PreRmbMenu 弹出 m_view 前处理
RButtonUp 弹出 m_view
函数:
of_GetParentWindow 返回相关的窗口
11、pfc_u_oc (PFC OleControl class)
变量:
ib_rmbmenu Boolean 是否弹出其不意m_oc 菜单
事件:
GetFocus 显示微帮助
pfc_Clear 清除选择的文本
pfc_Copy 拷贝选择的文本
pfc_Cut 剪下选择的文本
pfc_EditObject 激活物件
pfc_InsertObject 打开插入对话框,允许在 ole 控件里加入对象
pfc_OpenObject 激活物件
pfc_Paste 拷贝选择的文本
pfc_PasteSpecial 显示对象框,允许选择对象的嵌入与连接
pfc_PreRMBMenu 弹出m_oc的前处理
pfc_UpdateLinks 更新连接
RButtonUp 弹出 m_oc 菜单
函数:
of_GetParentWindow 返回相关的窗口
12、 pfc_u_p (PFC Picture class)
事件:
GetFocus
函数:
of_GetParentWindow
13、 pfc_u_pb (PFC Picturebutton class)
事件:
GetFocus
函数:
of_GetParentWindow
14、 pfc_u_plb (PFC PictureListBox class)
事件:
GetFocus 显示微帮助
pfc_InvertSelection 反向选择
pfc_SelectAll 全部选择
函数:
of_GetParentWindow 返回相关的窗口
of_GetSelected 返回所有选择的item 到一个数组
15、 pfc_u_rb (PFC Radiobutton class)
事件:
GetFocus
函数:
of_GetParentWindow
16、 pfc_u_rte (PFC RichText class)
变量:
ib_continuouspages Boolean 在打印时,是否激活连续编页
ib_ignorefileexists Boolean 对一个已经存在的文件,保存时是否提示
ib_ongoingfind Boolean 是否继续一个查询工作
ib_rmbmenu Boolean 按右键是否弹出 m_edit 菜单
il_currentinstance Long 记载打印
il_currentprintpage Long 记载当前打印的页号
il_startpagenumber Boolean 打印的开始页
inv_filesrv n_cst_filesrv 文件服务实例
inv_find n_cst_rtefind 查询服务实例
is_filename String 文件名称
is_pageinputfield String
PFC中各服务对象使用说明
最新推荐文章于 2022-02-16 17:00:51 发布