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

运行效果 http://hi.csdn.net/attachment/201012/9/0_1291865794j998.gif ************************************************************************* PowerBuilder Foundation Class Library Version 9.0 R E L E A S E N O T E S Copyright ?1996-2003 Sybase, Inc. and its subsidiaries. All rights reserved. ************************************************************************* Last Updated: January 17, 2003 ************************************************************************* Please take a few minutes to review this file for fixes that were made in PowerBuilder 8.0.2 and 9.0. ************************************************************************* BUG FIXES IN PFC 9.0 ************************************************************************* CR300376 Object: pfc_n_cst_fileSrv, pfc_n_cst_fileSrvwin32 Method: OfGetDiskSpace Fix: Method returned a negative number when the calculated amount of free disk space exceeded 2 gigabytes. Added new method of_GetDiskSpaceEx that takes decimals as arguments instead of longs. of_GetDiskSpace will be obsolete in a future release. ************************************************************************* BUG FIXES IN PFC 8.0.2 ************************************************************************* PFC.PBR CR256529 Fix: The PFC.PBR file can be used to copy bitmaps and dynamically referenced DataWindow objects into the executable file for deployment. The following bitmap files that were removed from PFC have now been removed from the PFC.PBR file: details.bmp, helptop.bmp, largeico.bmp, listv.bmp, and smallico.bmp. ======================================================== PFC DataStore CR261992 Object: pfc_u_ds Method: pfc_print/pfc_printdlg Fix: Changed the return code test to check for 1 on success, otherwise there is an error or the user cancelled. Fix: Set the
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值