金蝶K3 BOS插件开发手册
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
K/3 BOS插件开发手册
K/3 BOS插件开发手册
(版本:V12.1)
金蝶软件(中国)有限公司
BOS系统部
K/3 BOS系统部
目录
概述 (1)
COM (1)
K3ClassEvents的对象模型 (1)
使用说明 (1)
K3ClassEvents的对象 (2)
ListEvents对象参考 (3)
DataSrv 属性 (3)
EnableListFillRowEvents 属性 (4)
K3Lib 属性 (5)
List 属性 (6)
ListEntrySort 属性 (6)
ListFilterString 属性 (7)
ListHeadSort 属性 (7)
MenuBar 属性 (7)
MultiCheckMgr 属性 (8)
RsId 属性 (8)
ShowMode 属性 (9)
ShowMsg 属性 (9)
DeleteBill 函数 (9)
GetDataFldByKey 函数 (10)
GetDataFld 函数 (11)
GetCurrentSelRowInfo 函数 (12)
GetSelectedBillInfo 函数 (13)
LoadSelectedBill 函数 (14)
RefreshList函数 (15)
SenderMessage 函数 (15)
UpdateNormalFld 函数 (16)
UpdateNormalFldByKey 函数 (17)
RefreshMenu 函数 (17)
AfterBatchMultiCheck事件 (18)
AfterBusinessCheck 事件 (18)
AfterBusinessCheckEx 事件 (18)
AfterCopyBillCreateData 事件 (19)
AfterDeleteBill 事件 (19)
AfterMergeCopyBill事件 (20)
AfterMultiCheck 事件 (20)
AfterMultiCheckEx 事件 (21)
AfterSelList 事件 (21)
AfterUnBusinessCheck 事件 (21)
AfterUnBusinessCheckEx 事件 (22)
AfterUnMultiCheck 事件 (22)
BeforeMultiCheck 事件 (23)
BeforeMultiCheckEx 事件 (24)
BeforePrintBill 事件 (24)
BeforeSenderMessage 事件 (25)
BeforRefreshToolBar 事件 (25)
BusinessCheck 事件 (26)
BusinessCheckEx 事件 (26)
FinishMultiCheck 事件 (26)
FinishMultiCheckEx 事件 (27)
ListFillRow 事件 (28)
ListRowSelected 事件 (29)
MenuBarClick 事件 (30)
MenuBarInitialize 事件 (30)
MultiCheck 事件 (30)
MultiCheckEx 事件 (31)
PrintSuccessful事件 (32)
StartMultiCheck 事件 (32)
StartMultiCheckEx 事件 (33)
UnBusinessCheck 事件 (33)
UnBusinessCheckEx 事件 (34)
UnMultiCheck 事件 (34)
UnMultiCheckEx 事件 (35)
ReMultiCheck 事件 (35)
ReMultiCheckEx 事件 (36)
ReUnMultiCheck 事件 (36)
ReUnMultiCheckEx 事件 (37)
BaseClassEvent对象参考 (38)
BrowseCtl 属性 (38)
DataSrv 属性 (38)
EnableListFillRowEvents 属性 (38)
InsertNewRowAndFillOption属性 (40)
K3Lib 属性 (41)
ListActiveBar 属性 (41)
ListEntrySort 属性 (41)
ListFilterString 属性 (42)
ListHeadSort 属性 (42)
MenuBar 属性 (42)
RsClassGroup 属性 (43)
RsId 属性 (43)
GetActiveCtl 函数 (43)
GetSelectedClassID 函数 (44)
GetSelectedClassType 函数 (45)
GetSelectedItemID 函数 (45)
IsSearchState 函数 (47)
PitchItemByID 函数 (48)
SelectClassGroupByID 函数 (48)
SenderMessage 函数 (49)
SetStatus函数 (50)
RefreshClassGroups 方法 (50)
RefreshListByClassGroupID 方法 (51)
RefreshSelectedClassGroup 方法 (51)
RefreshSelectedClassGroupList 方法 (52)
AfterGetData 事件 (52)
BeforePrintBill 事件 (53)
BeforeSenderMessage 事件 (53)
ClassGroupSelected 事件 (54)
DeleteBillSucessful事件 (55)
ListFillRow 事件 (55)
ListRowSelected 事件 (57)
MenuBarClick 事件 (57)
MenuBarInitialize 事件 (58)
RefreshList 事件 (58)
BillEvent对象参考 (59)
AccessoryTypeID 属性 (59)
BillCtl 属性 (59)
BillEntrys 属性 (59)
BillHeads 属性 (60)
BillHeight 属性 (60)
BillName 属性 (60)
BillStatus 属性 (61)
BillWidth 属性 (61)
CancelPrintControl属性 (62)
ClassType 属性 (62)
ClassTypeEntry 属性 (62)
ClassTypeKey 属性 (63)
Data 属性 (63)
DataSrv 属性 (63)
EntryPrimaryKey 属性 (64)
FID 属性 (64)
InsertNewRowAndFillOption属性 (65)
IsDoAction 属性 (65)
IsDoActionData 属性 (65)
K3Lib 属性 (66)
LayerCount 属性 (66)
LayerNames属性 (66)
MenuBar 属性 (67)
ObjectID 属性 (68)
ObjectType 属性 (68)
OriginalFieldValue属性 (68)
PrimaryKey 属性 (69)
ReSaveSuccess 属性 (69)
rsBillID 属性 (69)
ShowType 属性 (70)
TableInfo 属性 (70)
TableName 属性 (70)
TaskID 属性 (71)
ShowMsg 属性 (71)
BatchToDoActions函数 (71)
DeleteEntryData 函数 (72)
GetActiveCtl 函数 (73)
GetActiveField 函数 (74)
GetCommonControl函数 (74)
GetDataFld 函数 (75)
GetDataFldbyKey 函数 (76)
GetFieldInfoByKey 函数 (77)
GetDynamicCtlByKey函数 (78)
GetFieldValue 函数 (78)
GetToolIndex 函数 (79)
GetVariable函数 (80)
InsertNewRowAndFill 函数 (81)
IsChange 函数 (82)
IsFileNeedFilter 函数 (82)
LockBill 函数 (83)
RefreshBill 函数 (83)
SenderMessage 函数 (84)
SetDecimal 函数 (84)
SetFieldSumValue函数 (85)
SetFieldValue 函数 (85)
SetSumDecimal 函数 (87)
SetText 函数 (87)
SetTypeFloatMax 函数 (88)
SetTypeFloatMin 函数 (88)
ShowHideField 函数 (89)
ShowHideGrid 函数 (90)
Sum 函数 (90)
UpdateLookFld 函数 (91)
UpdateNormalFld 函数 (91)
DoAction 方法 (92)
IsDoActionByKey 方法 (92)
RemoveRow 方法 (93)
SaveBill 方法 (94)
SetActiveTab方法 (94)
SetBillFormCaption 方法 (95)
SetCaption 方法 (95)
SetGridMaxRows方法 (96)
SetStatus 方法 (96)
SetActiveCell 方法 (97)
SetBillWindowState方法 (97)
SetRowsPerRequest方法 (98)
SetStateStampPicture方法 (98)
SetStatusBarInfo方法 (99)
SetVariable函数 (99)
SizeBillControl方法 (100)
AddNewRow 事件 (100)
AfterBusinessCheck 事件 (101)
AfterBusinessCheckEx 事件 (101)
AfterCopyBill 事件 (101)
AfterDeleteRow 事件 (102)
AfterDoAction 事件 (102)
AfterFillRow 事件 (103)
AfterFirstNewBill 事件 (103)
AfterInputBillSetSumData 事件 (104)
AfterLoadBill 事件 (104)
AfterLoadBillSetSumData 事件 (104)
AfterLoadDynamicCtl事件 (105)
AfterMergeCopyBill 事件 (105)
AfterMultiCheck 事件 (105)
AfterMultiCheckEx 事件 (106)
AfterNewBill 事件 (106)
AfterNewEmptyData 事件 (107)
AfterSave 事件 (107)
AfterSelBill 事件 (107)
AfterSelBillBeforeFillData 事件 (108)
AfterStockQuery事件 (108)
AfterUnBusinessCheck 事件 (108)
AfterUnBusinessCheckEx 事件 (108)
AfterUnMultiCheck 事件 (109)
AfterUnMultiCheckEx 事件 (109)
BeforeDeleteRow事件 (110)
BeforeDoAction 事件 (110)
BeforeLoadBill 事件 (112)
BeforeMultiCheck 事件 (112)
BeforePrintBill 事件 (113)
BeforeSave 事件 (114)
BeforeSelBills 事件 (114)
BeforeSelBillShowFilter 事件 (114)
BeforeSenderMessage 事件 (115)
BeforeSetMutilSelData事件 (116)
BeforeSetMutilSelData2事件 (116)
BeforeVerify 事件 (117)
BeforeWindowExit事件 (117)
BeforLoadBillFillData 事件 (117)
BeginEdit 事件 (118)
BusinessCheck 事件 (118)
BusinessCheckEx 事件 (118)
Change 事件 (119)
CommandClick事件 (119)
EntryFieldChanged事件 (120)
FinishMultiCheck 事件 (120)
FinishMultiCheckEx 事件 (121)
GetFocus 事件 (121)
HeadCtlClick 事件 (122)
LostFocus 事件 (122)
MenuBarClick 事件 (122)
MenuBarInitialize 事件 (123)
MultiCheck 事件 (123)
MultiCheckEx 事件 (124)
ReMultiCheck 事件 (125)
ReMultiCheckEx 事件 (125)
ReUnMultiCheck 事件 (125)
ReUnMultiCheckEx 事件 (126)
SaveBillFailed 事件 (126)
SaveBillSuccess事件 (127)
SSTabClick事件 (127)
StartMultiCheck 事件 (127)
StartMultiCheckEx 事件 (128)
UnBusinessCheck 事件 (128)
UnBusinessCheckEx 事件 (129)
UnMultiCheck 事件 (129)
UnMultiCheckEx 事件 (130)
Verify 事件 (130)
K3Lib对象参考 (132)
Account 属性 (132)
Net 属性 (133)
User 属性 (133)
CreateK3Object 函数 (137)
GetData 函数 (138)
GetK3Language 函数 (139)
LoadKDString 函数 (140)
UpdateData 方法 (142)
GetStockQty 函数 (142)
LookUpClass函数 (143)
LoadBill 方法 (145)
LoadList方法 (145)
AccountID 属性 (147)
AccountName 属性 (147)
SetupType 属性 (147)
Net对象参考 (149)
BeginMutex 函数 (149)
CommitMutex 函数 (149)
QueryFunc 函数 (150)
QuerySubSys 函数 (150)
User对象参考 (151)
UserID 属性 (151)
UserName 属性 (151)
MenuBar对象参考 (152)
MenuBar 对象结构图 (152)
ActiveBand 属性 (153)
BOSBands 属性 (153)
BOSTools 属性 (154)
Refresh 方法 (154)
BOSBands对象参考 (155)
Count 属性 (155)
Item 属性 (155)
Add 函数 (155)
Remove 方法 (156)
RemoveAll 方法 (156)
BOSBand对象参考 (157)
BandName 属性 (157)
BandType 属性 (157)
BOSTools 属性 (157)
Caption 属性 (157)
CurrentTool 属性 (158)
DockingArea 属性 (158)
DockingOffset 属性 (158)
DockLine 属性 (159)
Flags 属性 (159)
Visible 属性 (159)
Refresh 方法 (160)
BOSTools对象参考 (161)
Count 属性 (161)
Item 属性 (161)
Add 函数 (161)
GetFreeToolID 函数 (162)
InsertAfter 方法 (162)
InsertBefore 方法 (163)
Remove 方法 (163)
RemoveAll 方法 (164)
BOSTool对象参考 (165)
Alignment 属性 (165)
BeginGroup属性 (165)
Caption 属性 (165)
CaptionPosition 属性 (166)
Checked 属性 (166)
Default 属性 (166)
Description 属性 (167)
Enabled 属性 (167)
ShortcutKey 属性 (167)
Style 属性 (170)
SubBand 属性 (170)
Tag 属性 (170)
ToolID 属性 (170)
ToolName 属性 (171)
ToolPicture 属性 (171)
TooltipText 属性 (171)
Visible 属性 (171)
PasteToolFace 方法 (171)
SetPicture 方法 (172)
BillHeads\BillHead\BillEntrys\BillEntry\BOSFields\BOSField对象参考 (174)
MenuBar 对象结构图 (174)
BillHeads对象参考 (175)
Count 属性 (175)
Item 属性 (176)
BillHead对象参考 (177)
BOSFields 属性 (177)
BillEntrys对象参考 (178)
Count 属性 (178)
Item 属性 (179)
BillEntry对象参考 (180)
BOSFields 属性 (180)
EntryHeight 属性 (180)
EntryLeft 属性 (180)
EntryTop 属性 (180)
EntryType 属性 (181)
EntryWidth 属性 (181)
KeyField 属性 (181)
Layer 属性 (181)
MaxRows 属性 (182)
TableName 属性 (182)
Visible 属性 (182)
AddRow 方法 (182)
RemoveRow 方法 (183)
BOSFields对象参考 (184)
Count 属性 (184)
Item 属性 (184)
BOSField对象参考 (185)
Caption 属性 (185)
FieldHeight 属性 (185)
FieldLeft 属性 (185)
FieldLock 属性 (185)
FieldName 属性 (186)
FieldTop 属性 (186)
FieldWidth 属性 (186)
Filter 属性 (186)
FKey 属性 (186)
FontBold 属性 (187)
FontItalic 属性 (187)
FontName 属性 (187)
FontSize 属性 (187)
FrameBorder 属性 (188)
FrameBorderColor 属性 (188)
LabelColor 属性 (188)
LabelWidth 属性 (188)
Layer 属性 (188)
MustInput 属性 (189)
NeedSave 属性 (189)
Note 属性 (189)
Number 属性 (189)
Page 属性 (189)
Row 属性 (190)
TableName 属性 (190)
Text 属性 (190)
TextColor 属性 (190)
Value 属性 (190)
SetFieldSumValue方法 (191)
.Net (192)
基础配置 (192)
开发环境 (192)
使用说明 (192)
引用 (192)
插件跟踪 (192)
K3ClassEvents的对象模型 (193)
K3ClassEvents的对象 (193)
ListEvents对象参考 (194)
事件声明 (194)
AfterCopyBillCreateData 事件 (195)
OnBarInitialize事件 (195)
AfterShowBill事件 (195)
OnBarItemClick事件 (196)
ShowBill函数 (196)
AspxGetSelectList函数 (197)
AddBarItem函数 (197)
AddBarItemLink函数 (198)
SetBarItemProperty函数 (199)
AddBarItemLink函数 (199)
RemoveBarItem函数 (200)
RemoveBarItemLink函数 (200)
BillName 属性 (201)
ClassType 属性 (201)
ClassTypeEntry 属性 (202)
ClassTypeKey 属性 (202)
PrimaryKey 属性 (202)
EntryPrimaryKey 属性 (203)
TableInfo 属性 (203)
TableName 属性 (203)
BillEvent对象参考 (205)
事件声明 (205)
OnBarInitialize事件 (206)
OnBarItemClick事件 (207)
AfterNewBill 事件 (207)
BeforLoadBillFillData事件 (207)
AfterLoadBill事件 (207)
AfterShowBill 事件 (208)
AfterConfirm事件 (208)
AfterF7Select事件 (208)
Change 事件 (209)
BeforeSave 事件 (209)
AddBarItem函数 (210)
AddBarItemLink函数 (211)
GetBarItemProperty函数 (211)
SetBarItemProperty函数 (212)
AddBarItemLink函数 (212)
RemoveBarItem函数 (213)
RemoveBarItemLink函数 (213)
Alter函数 (214)
Confirm函数 (214)
GetFieldValue函数 (215)
GetRequest函数 (216)
LockCell函数 (216)
LockWebTabItem函数 (217)
SaveBill函数 (218)
SetFieldValue函数 (218)
ShowBill函数 (219)
ShowF7Select函数 (220)
BillName 属性 (221)
ClassType 属性 (221)
ClassTypeEntry 属性 (221)
ClassTypeKey 属性 (222)
PrimaryKey 属性 (222)
EntryPrimaryKey 属性 (222)
TableInfo 属性 (223)
TableName 属性 (223)
CurBillID属性 (224)
BillHeads对象参考 (225)
Count 属性 (225)
Item 属性 (225)
BillHead对象参考 (226)
BOSFields 属性 (226)
BillEntrys对象参考 (227)
Count 属性 (227)
Item 属性 (227)
BillEntry对象参考 (228)
BOSFields 属性 (228)
EntryHeight 属性 (228)
EntryIndex 属性 (228)
EntryLeft 属性 (228)
EntryTop 属性 (228)
EntryType 属性 (229)
EntryWidth 属性 (229)
KeyField 属性 (229)
TableName 属性 (230)
Visible 属性 (230)
BOSFields对象参考 (231)
Count 属性 (231)
Item 属性 (231)
BOSField对象参考 (232)
Caption 属性 (232)
FieldHeight 属性 (232)
FieldLeft 属性 (232)
FieldLock 属性 (232)
FieldName 属性 (233)
FieldTop 属性 (233)
FieldWidth 属性 (233)
Filter 属性 (233)
FKey 属性 (233)
FontBold 属性 (234)
FontItalic 属性 (234)
FontName 属性 (234)
FontSize 属性 (234)
FrameBorder 属性 (235)
FrameBorderColor 属性 (235)
LabelColor 属性 (235)
LabelWidth 属性 (235)
Layer 属性 (235)
MustInput 属性 (236)
NeedSave 属性 (236)
Note 属性 (236)
Number 属性 (236)
Page 属性 (236)
Row 属性 (237)
TableName 属性 (237)
Text 属性 (237)
TextColor 属性 (237)
Value 属性 (237)
Visible 属性 (238)
用户场景 (239)
需求 (239)
总体需求 (239)
需求分解 (240)
详细需求 (241)
单据信息 (241)
单据流程 (243)
多级审核 (244)
设计和实现 (245)
单据数据结构设计 (245)
单据头 (245)
单据体 (247)
字段的过滤条件 (250)
BOS IDE中设置过滤条件 (250)
通过SQL更新字段的过滤条件 (252)
Action设置 (253)
自动生成Action (253)
手动添加Action (256)
单据流程 (258)
【销售订单】下推生成【产品入库通知单】 (258)
练习一下 (262)
多级审核 (264)
多级审核设置 (264)
凭证功能 (265)
设置凭证数据来源 (265)
操作管理 (266)
插件开发 (269)
部署 (270)
发布到主控台 (270)
制作部署文件 (272)
概述
为了实现客户个性化的需求和保持K/3 BOS架构的开放性,K/3 BOS提供了插件编程,有效的扩展了K/3 BOS平台,K/3 BOS插件编程是通过K3ClassEvents对象代理实现的。
K/3 BOS提供了基于COM和.Net两套插件模型。
COM
K/3 BOS提供ListEvents、BaseClassEvent、BillEvent三个重要的客户端接口对象及其他的辅助对象。
K3ClassEvents的对象模型
使用说明
关于Kingdee Foundation Objects 1.0 对象
本文中所有涉及到的KFO 对象,如KFO.Dictionary、KFO.Vector,他们的结构、使用方法、描述等详细内容,请参考《KFO组件使用参考》。
关于Microsoft ActiveX Data Objects Library 对象
本文中所有涉及到的ADODB 对象,如ADODB.Recordset,版本必需不低于2.6;他们的结构、使用方法、描述等详细内容,请参考/相关内容。
K3ClassEvents的对象
上面的对象结构图囊括了K3ClassEvents组件中所使用到的所有对象。
需要注意的是:以下对象:
K3Lib (Net、User、Account)
MenuBar
BOSBand(以及它的集合对象BOSBands)
BOST ool(以及它的集合对象BOST ools)
BillHead(以及它的集合对象BillHeads)
BillEntry(以及它的集合对象BillEntrys)
BOSField(以及它的集合对象BOSFields)
属于辅助对象,不能使用New 关键字创建。
以下对象:
ListEvents
BaseClassEvent
BillEvent
属于金蝶K/3 BOS的客户端接口对象。
我们主要使用这3个对象完成插件的开发。
ListEvents对象参考
ListEvents对象属于金蝶K/3 BOS 的客户端接口对象,用来获得金蝶K/3 BOS 的客户端的序时簿对象的属性、方法和事件。
ListEvents对象共包含11 个属性、8 个函数和23 个事件。
DataSrv 属性
序时簿客户端的数据服务对象
语法
Object.DataSrv
返回值类型
Object
注释
返回序时簿客户端数据服务对象,包括了单据的模板信息ClassType、ClassTypeEntry、T ableInfo、Filter等KFO.Dictionary对象和ClassTypeID、SQLSelect、SQLFrom、SQLSelectDetail等值。
示例一
获取当前单据的ID:
获取当前单据的Caption:
示例二
获取序时簿的SQL语句:
示例三
获取字段(Key通过参数sField指定)的模板的数据:
EnableListFillRowEvents 属性
是允许否触发插件的序时簿FillRow 事件。
语法
Object. EnableListFillRowEvents
返回值类型
Boolean
注释
是允许否触发插件的序时簿FillRow 事件。
默认为False,即不触发。
只有当此值为True且发生序时簿行填充时,才会触发插件的序时簿FillRow 事件。
示例
根据填充的字段的值,实现:a、将1、2、3…对应成星期一、星期二、星期三…;b、将6、7对应的行背景设为绿色,其余为白色:
K3Lib 属性
K3Lib对象
语法
Object.K3Lib
返回值类型
K3ClassEvents.K3Lib
注释
只读属性。
返回K3Lib对象,主要用来访问金蝶K/3的一些属性,及执行金蝶K/3的一些标准操作。
详细请参考“K3Lib对象参考”。
List 属性
序时簿对象
语法
Object.List
返回值类型
Object
注释
返回序时簿对象,包括DataSrv、Parent、rsID等对象,以及一些隐含的方法和函数,如刷新序时簿。
示例
在插件中刷新序时簿:
ListEntrySort 属性
返回或设置序时簿单据体字段排序。
语法
Object.ListEntrySort
返回值类型
String
注释
可以通过该属性返回当前序时簿显示前过滤界面中设置的单据体字段排序,或者设置当前单据体字段的排序(设置后需要调用序时簿刷新方法才可以看到设置结果)。
ListFilterString 属性
返回或设置序时簿的过滤条件。
语法
Object. ListFilterString
返回值类型
String
注释
可以通过该属性返回当前序时簿显示前过滤界面中设置的过滤条件,或者设置当前单据的过滤条件(设置后需要调用序时簿刷新方法才可以看到设置结果)。
ListHeadSort 属性
返回或设置序时簿单据头字段排序。
语法
Object.ListHeadSort
返回值类型
String
注释
可以通过该属性返回当前序时簿显示前过滤界面中设置的单据头字段排序,或者设置当前单据头字段的排序(设置后需要调用序时簿刷新方法才可以看到设置结果)。
MenuBar 属性
菜单及工具栏对象
语法
Object. MenuBar
K3ClassEvents.MenuBar
注释
只读属性。
返回菜单及工具栏对象,主要用来新增、修改菜单和工具栏。
详细请参考“MenuBar对象参考”。
MultiCheckMgr 属性
多级审核控制对象
语法
Object. MultiCheckMgr
返回值类型
Object
注释
返回多级审核控制对象,多级审核的设置信息、当前审核情况、审核记录等都能从此组件中读取到。
RsId 属性
序时簿关键字段数据集合
语法
Object.RsID
返回值类型
ADODB.Recordset
注释
只读属性,返回序时簿关键字段数据集合。
有三个重要的字段:FID、FClassTypeID、FEntryID,这三个字段能把选中的记录行的其他值取出来。
FID表示序时簿当前行的所属单据的内码,取值语法是:rsID("FID");
FClassTypeID表示序时簿当前行的所属单据类型:rsID("FClassTypeID");
FEntryID表示序时簿当前行的分录ID:rsID("FEntryID");
注意:如果要使用这个属性,插件工程还必须引用Microsoft ActiveX Data Objects Library。
ShowMode 属性
返回序时簿当前调用模式。
此属性只读。
语法
Object. ListFilterString
返回值类型
Enum Enu_ListShowMode类型
Enu_ListShowMode_View = 0 : 一般查询MDI窗口
Enu_ListShowMode_ViewModel = 1 : 一般查询模态窗口
Enu_ListShowMode_LookUp = 2 : 选单
Enu_ListShowMode_ConnectView = 3 : 联查
Enu_ListShowMode_ConnectViewExt = 4 : 自定义联查
注释
ShowMsg 属性
当多级审核流程出现错误时是否允许显示错误提示。
语法
Object. ShowMsg
返回值类型
Boolean
注释
默认为Ture,即当多级审核流程出现错误时显示错误信息。
如果设置为False,则只触发插件错误处理事件,并不显示错误提示。
DeleteBill 函数
删除一张单据。
语法
Object. DeleteBill(ByVal lClassTypeID As Long, ByVal nInterID As Long, Optional ByRef
bSuccess As Boolean = True) As String
返回值类型
String对操作结果的描述:删除操作成功或失败
注释
用户定义单据并保存后,会在数据库中创建对应的表。
如单据为t_BOS200000001表,单据体为t_BOS200000001Entry2表。
本函数删除这些表中指定的行。
函数参数中的lClassT ypeID 对应的字段为表中的FClassT ypeId列;nInterID对应的字段为:用户在定义单据时所指定的“主键字段”(默认为“FID”)。
当前序时簿的单据类型ID与内码可以通过m_ListInterface.RsId("FClassTypeID"), m_ListInterface.RsId("FID")取得。
示例
删除一张单据,其类型ID是200000001,内码是0018:
GetDataFldByKey 函数
通过字段关键字获取字段对象。
语法
Object.GetDataFldByKey (sFKey As String, [Row As Long])
返回值类型
KFO.Dictionary
注释
返回字段值对象,在字段值对象中再取出相应的值。
示例
获取序时簿中选中行对应得单据上的“单据编号(FBillNo)”字段的字段对象:
GetDataFld 函数
通过指定字段的模板获取字段对象。
语法
Object.GetDataFld (dct As Dictionary, [Row As Long])
返回值类型
KFO.Dictionary
注释
返回字段值对象。
示例
GetCurrentSelRowInfo 函数
获得序时簿当前选定行的关键数据。
语法
Object.GetCurrentSelRowInfo ()
返回值类型
KFO.Dictionary
注释
此函数返回的数据包包含FClassTypeID,FID,FEntryID。
FClassTypeID表示单据类型;FID表示当前行所属单据的内码;FEntryID表示单据分录ID。
如果当前选定了多行,只返回选定行中第一行的单据数据。
示例
获取序时簿上当前选中的行对应的单据的内码:
GetSelectedBillInfo 函数
获取选中行(可以多选)的关键数据。
语法
Object.GetSelectedBillInfo ()
返回值类型
KFO.Vector
注释
此函数返回一个KFO.Vector数据包,Vector的Size和选中的行数一致。
每行包含一个KFO.Dictionary数据包,此数据包包含FClassTypeID,FID,FEntryID。
FClassTypeID表示单据类型;FID表示当前行所属单据的内码;FEntryID表示单据分录ID。
示例
获取序时簿当前选中的多个行中的第一行对应的单据的分录ID:
LoadSelectedBill 函数
加载当前选择的单据,并按照指定的状态显示。
语法
Object.LoadSelectedBill (BillStatus As Enu_BillStatusExt)
返回值类型
Boolean。
注释
加载成功并显示单据返回True;否则返回False。
示例
以“修改状态”显示序时簿当前选中的行对应的单据:
RefreshList函数
刷新序时簿
语法
Object. RefreshList(Optional ByVal bRefreshT oolBar As Boolean = True, Optional ByVal bMarkSelRow As Boolean = True)
返回值
无
示例
刷新序时簿,刷新工具栏,刷新后用户选定的行不变:
SenderMessage 函数
发送消息。
语法
Object.SenderMessage (sTitle As String, sMessage As String, arrUsers, [lSenderType As Long])
返回值
Boolean。
注释
发送成功返回True;否则返回False。
示例
发送K/3主控台消息给系统管理员:
注:“16394”为系统管理员的内码。
UpdateNormalFld 函数
更新非查找类型字段的值。
语法
Object.UpdateNormalFld (dct As Dictionary, sValue As String, [Row As Long], [bSetModifyFlag As Boolean])
返回值
KFO.Dictionary
注释
此函数仅更新了该字段的值对象中的值,并不影响已有的显示。
示例
更改当前单据的单据编号(“FBillNo”)的值为33333
UpdateNormalFldByKey 函数
通过字段名称来更新非查找类型字段的值。
语法
Object.UpdateNormalFldByKey (sKey As String, sValue As String, [Row As Long], [bSetModifyFlag As Boolean])
返回值
KFO.Dictionary
注释
此个函数仅更新了该字段的值对象中的值,并不影响已有的显示。
示例
更改当前单据的单据编号(“FBillNo”)的值为33333
RefreshMenu 函数
刷新序时簿菜单和工具栏
语法
Object.RefreshMenu
AfterBatchMultiCheck事件
批量审核或反审核单据后,触发此事件。
语法
Private Sub Object_AfterBatchMultiCheck (ByVal lCheckDirection As Long, ByVal dctCheckResult As KFO.Dictionary)
注释
AfterBusinessCheck 事件
业务最末级审核后发生。
语法
Private Sub Object_AfterBusinessCheck (ByVal Success As Boolean)
注释
此事件只有在业务最末级审核成功后才触发,如设置为2级(包含2级)以上审核流程,第1级审核成功后不触发此事件。
AfterBusinessCheckEx 事件
业务最末级审核后发生。
语法
Private Sub Object_AfterBusinessCheckEx (ByVal lBillID As Long, ByVal Success As Boolean)
其他参数及其含义跟AfterBusinessCheck完全相同。
注释
此事件总是在AfterBusinessCheck事件之后触发。
AfterCopyBillCreateData 事件
复制选中的单据数据到新单据,在新单据尚未保存时发生。
语法
Private Sub Object_AfterCopyBillCreateData (ByVal srcInterID As Long, ByVal dctData As KFO.Dictionary)
注释
新单据的单据编号会自动更改,审核信息不复制到新的单据中;
此事件应用场景:在复制选中的单据且需要更改原单据的数据。
AfterDeleteBill 事件
删除选中的单据后发生。
语法
Private Sub Object_AfterDeleteBill (ByVal bSuccess As Boolean, ByVal lBillInterID As Long, ByVal sBillNo As String, ByVal sErrorMessage As String, bCancelErrorMessage As Boolean)
注释
sBillNo为删除的单据的单据编号,但有可能没有单据编号,此时为空字符串。
bCancelErrorMessage 默认为False,默认情况下不显示提示对话框。
AfterMergeCopyBill事件
合并复制选中的单据数据到新单据,在新单据尚未保存时发生。
语法
Private Sub Object_AfterMergeCopyBill(ByVal dctData As KFO.Dictionary)
注释
新单据的单据编号会自动更改,审核信息不复制到新的单据中;
此事件应用场景:在合并复制选中的单据且需要更改某些数据。
AfterMultiCheck 事件
多级审核后发生。
语法
Private Sub Object_AfterMultiCheck (ByVal lCheckMode As Long, ByVal lCheckMaxLevel As Long, ByVal lBusinessLevel As Long, ByVal lCheckLevel As Long, ByVal lCheckStatus As Long, ByVal Success As Boolean)
注释
此事件在每步审核后都能触发,和AfterBusinessCheck不同。
AfterMultiCheckEx 事件
多级审核后发生。
语法
Private Sub Object_AfterMultiCheckEx(ByVal lBillID As Long, ByVal lCheckMode As Long, ByVal lCheckMaxLevel As Long, ByVal lBusinessLevel As Long, ByVal lCheckLevel As Long, ByVal lCheckStatus As Long, ByVal Success As Boolean)
其他参数及其含义跟AfterMultiCheck完全相同。
注释
此事件总是在AfterMultiCheck事件之后触发。
AfterSelList 事件
在选单过程中,选定源单序时簿上的单据,返回目标单据时发生。
语法
Private Sub Object_AfterSelList (ByVal RsId As ADODB.Recordset, VectList As KFO.Vector)
注释
可以通过修改VectList 参数中的值,并将其一同返回。
注意:如果要使用RsId 参数,插件工程还必须引用Microsoft ActiveX Data Objects Library。
AfterUnBusinessCheck 事件
驳回业务审核后发生。
语法
Private Sub Object_AfterUnBusinessCheck (ByVal Success As Boolean)
AfterUnBusinessCheckEx 事件
驳回业务审核后发生。
语法
Private Sub Object_AfterUnBusinessCheckEx (ByVal lBillID As Long, ByVal Success As Boolean)
注释
此事件总是在AfterUnBusinessCheck事件之后触发。
AfterUnMultiCheck 事件
驳回多级审核后发生。
语法
Private Sub Object_AfterUnMultiCheck (ByVal lCheckMode As Long, ByVal lCheckMaxLevel As Long, ByVal lBusinessLevel As Long, ByVal lCheckLevel As Long, ByVal lCheckStatus As Long, ByVal Success As Boolean)
注释
lCheckMode 参数的值
AfterUnMultiCheckEx 事件
驳回多级审核后发生。
语法
Private Sub Object_AfterUnMultiCheckEx (ByVal lBillID As Long, ByVal lCheckMode As Long, ByVal lCheckMaxLevel As Long, ByVal lBusinessLevel As Long, ByVal lCheckLevel As Long, ByVal lCheckStatus As Long, ByVal Success As Boolean)
其他参数及其含义跟AfterUnMultiCheck完全相同。
注释
此事件总是在AfterUnMultiCheck事件之后触发。
BeforeMultiCheck 事件
多级审核前发生。
语法
Private Sub Object_BeforeMultiCheck (ByVal lCheckMode As Long, ByVal lCheckMaxLevel As Long, ByVal lBusinessLevel As Long, lCheckLevel As Long, ByVal lCheckStatus As Long, ByVal lLastCheckFrom As Long, ByVal lLastCheckTo As Long, Cancel As Boolean)
注释
更改Cancel 参数的值为True 可以取消后续的审核操作。
lCheckMode 参数的值
BeforeMultiCheckEx 事件
多级审核前发生。
语法
Private Sub Object_BeforeMultiCheckEx (ByVal lBillID As Long, ByVal lCheckMode As Long, ByVal lCheckMaxLevel As Long, ByVal lBusinessLevel As Long, ByRef lCheckLevel As Long, ByVal lCheckStatus As Long, ByVal lLastCheckFrom As Long, ByVal lLastCheckT o As Long, ByRef Cancel As Boolean)
其他参数及其含义跟BeforeMultiCheck完全相同。
注释
此事件总是在BeforeMultiCheck事件之后触发。
即使在BeforeMultiCheck事件中设置了Cancel = True,此事件仍会触发。
BeforePrintBill 事件
序时簿打印预览之前抛出此事件。
语法
Private Sub Object_BeforePrintBill(ByVal lClassTypeID As Long, ByVal vctInterID As KFO.Vector, ByVal bIsPreview As Boolean, ByRef sPath As String, ByRef sFileName As String,
ByRef bCancel As Boolean)
注释
更改Cancel 参数的值为True 可以取消打印预览操作。
BeforeSenderMessage 事件
消息发送前发生。
语法
Private Sub Object_BeforeSenderMessage (ByVal ActionCode As String, dctMessage As KFO.Dictionary, Cancel As Boolean)
注释
更改dctMessage 参数的值,可以修改发送的消息数据。
更改Cancel 参数的值为True 可以取消消息发送。
BeforRefreshToolBar 事件
刷新菜单、工具栏之前发生。
语法
Private Sub Object_BeforRefreshT oolBar (bShowCaption As Boolean)
注释
更改bShowCaption 参数的值可以控制是否显示工具栏中的标题。
True 为显示;False 为不显示。
BusinessCheck 事件
业务最末级审核时发生。
语法
Private Sub Object_BusinessCheck (Cancel As Boolean)
注释
此事件只有在业务最末级审核时才触发,如设置为2级(包含2级)以上审核流程,第1级审核时不触发此事件。
更改Cancel 参数的值为True 可以取消后续的审核操作。
BusinessCheckEx 事件
业务最末级审核时发生。
语法
Private Sub Object_BusinessCheckEx (ByVal lBillID As Long, Cancel As Boolean)
其他参数及其含义跟BusinessCheck完全相同。
注释
此事件总是在BusinessCheck事件之后触发。
即使在BusinessCheck事件中设置了Cancel = True,此事件仍会触发。
FinishMultiCheck 事件
单据多级审核完毕后发生。
语法
Private Sub Object_FinishMultiCheck (ByVal lCheckMode As Long, ByVal lCheckMaxLevel As Long, ByVal lBusinessLevel As Long, ByVal lCheckStatus As Long, bSenderMessage As Boolean)
bSenderMessage 参数值默认为True。
更改参数的值为False 可以取消后续发送审核完成消息。
lCheckMode 参数的值
FinishMultiCheckEx 事件
单据多级审核完毕后发生。
语法
Private Sub Object_FinishMultiCheckEx (ByVal lBillID As Long, ByVal lCheckMode As Long, ByVal lCheckMaxLevel As Long, ByVal lBusinessLevel As Long, ByVal lCheckStatus As Long, ByRef bSendMessage As Boolean)
其他参数及其含义跟FinishMultiCheck完全相同。
注释
此事件总是在FinishMultiCheck事件之后触发。
即使在FinishMultiCheck事件中设置了Cancel = True,此事件仍会触发。
ListFillRow 事件 序时簿的行填充数据时发生。
语法
Private Sub Object_ListFillRow (ByVal lRow As Long, ByVal RowData As Object, ByVal HeadDict As KFO.Dictionary, CellData As String, BackColor As Long, ContinueRaise As Boolean)
注释
每个行的每个可见的单元格(字段)的数据填充都会发生此事件。
此事件是否发生,取决于 EnableListFillRowEvents 更改 CellData 参数的值,可以改变单元格的实际填充数据。
属性的设置。
详细请参考 EnableListFillRowEvents 属性的相关说明。
更改 BackColor 参数的值,可以改变行的背景色。
可以使用 RGB 函数得到色值。
ContinueRaise 参数值默认为 True 。
更改此值为 False ,则下一行这个单元格填充的时候不会再发生 ListFillRow 事件。
注意:如果要使用RowData 参数,插件工程还必须引用 Microsoft ActiveX Data Objects Library 。
示例
根据填充的字段的值,实现:a 、将1、2、3…对应成星期一、星期二、星期三…;b 、将6、7对应的行背景设为绿色,其余为白色:
ListRowSelected 事件
序时簿的行选择后发生。
语法
Private Sub Object_ListRowSelected (ByVal lRow As Long)
MenuBarClick 事件
点击菜单、工具栏项时发生。
语法
Private Sub Object_MenuBarClick (ByVal BOST ool As K3ClassEvents.BOST ool, Cancel As Boolean)
注释
Cancel 参数值默认为False。
更改参数的值为True 可以取消后续事件处理操作。
MenuBarInitialize 事件
菜单、工具栏初始化时发生。
语法
Private Sub Object_MenuBarInitialize(ByVal oMenuBar As K3ClassEvents.MenuBar)
注释
可以通过操作oMenuBar 参数来修改、新增菜单、工具栏项。
MultiCheck 事件
多级审核时发生。
语法
Private Sub Object_MultiCheck (ByVal lCheckMode As Long, ByVal lCheckMaxLevel As Long, ByVal lBusinessLevel As Long, ByVal lCheckLevel As Long, ByVal lCheckStatus As Long,
bSenderCheckMessage As Boolean, bSenderAcceptMessage As Boolean, sMessageTitle As String, sMessage As String, Cancel As Boolean)
注释
更改bSenderCheckMessage 参数值为T rue,则会发送审核消息;更改为False,则不会发送审核消息。
更改bSenderAcceptMessage 参数值为True,则会接收上级的审核消息;更改为False,则不会接收上级的审核消息。
更改sMessageTitle 参数值可以改变审核消息的标题。
更改sMessage 参数值可以改变审核消息的内容。
更改Cancel 参数的值为True 可以取消后续操作。
lCheckMode 参数的值
MultiCheckEx 事件
多级审核时发生。
语法
Private Sub Object_MultiCheckEx (ByVal lBillID As Long, ByVal lCheckMode As Long, ByVal lCheckMaxLevel As Long, ByVal lBusinessLevel As Long, ByVal lCheckLevel As Long, ByVal lCheckStatus As Long, ByRef bSendCheckMessage As Boolean, ByRef bSendAcceptMessage As Boolean, ByRef sMessageTitle As String, ByRef sMessage As String, ByRef Cancel As Boolean)
其他参数及其含义跟MultiCheck完全相同。
注释
此事件总是在MultiCheck事件之后触发。
即使在MultiCheck事件中设置了Cancel = True,此事
件仍会触发。
PrintSuccessful事件
打印或连续打印成功时触发此事件。
语法
Private Sub Object_PrintSuccessful (ByVal dctParameters As KFO.Dictionary)
注释
连续打印时,全部打印完成后才触发此事件,且仅触发一次。
StartMultiCheck 事件
启动多级审核时发生。
语法
Private Sub Object_StartMultiCheck (ByVal lCheckMode As Long, ByVal lCheckMaxLevel As Long, bSenderMessage As Boolean, Cancel As Boolean)
注释
更改bSenderMessage 参数值为T rue,则会发送启动审核消息;更改为False,则不会发送启动审核消息。
更改Cancel 参数的值为True 可以取消后续操作。
lCheckMode 参数的值
StartMultiCheckEx 事件
启动多级审核时发生。
语法
Private Sub Object_StartMultiCheckEx (ByVal lBillID As Long, ByVal lCheckMode As Long, ByVal lCheckMaxLevel As Long, ByRef bSendMessage As Boolean, ByRef Cancel As Boolean)
其他参数及其含义跟StartMultiCheck完全相同。
注释
此事件总是在StartMultiCheck事件之后触发。
即使在StartMultiCheck事件中设置了Cancel = True,此事件仍会触发。
UnBusinessCheck 事件
驳回业务审核时发生。
语法
Private Sub Object_UnBusinessCheck (Cancel As Boolean)
注释
更改Cancel 参数的值为True 可以取消后续的审核操作。
UnBusinessCheckEx 事件
驳回业务审核时发生。
语法
Private Sub Object_UnBusinessCheckEx (ByVal lBillID As Long, Cancel As Boolean)
注释
此事件总是在UnBusinessCheck事件之后触发。
即使在UnBusinessCheck事件中设置了Cancel = True,此事件仍会触发。
更改Cancel 参数的值为True 可以取消后续的审核操作。
UnMultiCheck 事件
驳回多级审核时发生。
语法
Private Sub Object_UnMultiCheck (ByVal lCheckMode As Long, ByVal lCheckMaxLevel As Long, ByVal lBusinessLevel As Long, ByVal lCheckStatus As Long, ByVal lLastCheckFrom As Long, ByVal lLastCheckT o As Long, bSenderMessage As Boolean, Cancel As Boolean)
注释
更改bSenderMessage 参数值为T rue,则会发送驳回审核消息;更改为False,则不会发送驳回审核消息。
更改Cancel 参数的值为True 可以取消后续操作。
lCheckMode 参数的值
UnMultiCheckEx 事件
驳回多级审核时发生。
语法
Private Sub Object_UnMultiCheckEx (ByVal lBillID As Long, ByVal lCheckMode As Long, ByVal lCheckMaxLevel As Long, ByVal lBusinessLevel As Long, ByVal lCheckStatus As Long, ByVal lLastCheckFrom As Long, ByVal lLastCheckTo As Long, bSenderMessage As Boolean, Cancel As Boolean)
其他参数及其含义跟UnMultiCheck完全相同。
注释
此事件总是在UnMultiCheck事件之后触发。
即使在UnMultiCheck事件中设置了Cancel = True,此事件仍会触发。
ReMultiCheck 事件
多级审核出错后,重新审核时发生。
语法
Private Sub Object_ReMultiCheck(ByVal dctError As KFO.Dictionary, FCheckRecordExt As Object, bReCheck As Boolean)。