PFC中各服务对象使用说明

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

  • 0
    点赞
  • 0
    收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页
评论
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值