金蝶K3 V12.2 BOS插件开发手册
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
K/3 BOS插件開發手冊
K/3 BOS插件開發手冊
(版本:V12.2)
金蝶軟體(中國)有限公司
K/3產品部
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函數 (14)
SenderMessage 函數 (15)
UpdateNormalFld 函數 (16)
UpdateNormalFldByKey 函數 (16)
RefreshMenu 函數 (17)
AfterBatchMultiCheck事件 (17)
AfterBusinessCheck 事件 (18)
AfterBusinessCheckEx 事件 (18)
AfterCopyBillCreateData 事件 (19)
AfterDeleteBill 事件 (19)
AfterMergeCopyBill事件 (20)
AfterMultiCheck 事件 (20)
AfterMultiCheckEx 事件 (20)
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 事件 (27)
ListRowSelected 事件 (29)
MenuBarClick 事件 (30)
MenuBarInitialize 事件 (30)
MultiCheck 事件 (30)
MultiCheckEx 事件 (31)
PrintSuccessful事件 (32)
StartMultiCheck 事件 (32)
StartMultiCheckEx 事件 (33)
UnBusinessCheck 事件 (33)
UnBusinessCheckEx 事件 (33)
UnMultiCheck 事件 (34)
UnMultiCheckEx 事件 (35)
ReMultiCheck 事件 (35)
ReMultiCheckEx 事件 (35)
ReUnMultiCheck 事件 (36)
ReUnMultiCheckEx 事件 (36)
BaseClassEvent對象參考 (38)
BrowseCtl 屬性 (38)
DataSrv 屬性 (38)
EnableListFillRowEvents 屬性 (38)
InsertNewRowAndFillOption屬性 (40)
K3Lib 屬性 (40)
ListActiveBar 屬性 (41)
ListEntrySort 屬性 (41)
ListFilterString 屬性 (41)
ListHeadSort 屬性 (42)
MenuBar 屬性 (42)
RsClassGroup 屬性 (43)
RsId 屬性 (43)
GetActiveCtl 函數 (43)
GetSelectedClassID 函數 (44)
GetSelectedClassType 函數 (45)
GetSelectedItemID 函數 (45)
IsSearchState 函數 (47)
PitchItemByID 函數 (47)
SelectClassGroupByID 函數 (48)
SenderMessage 函數 (49)
SetStatus函數 (50)
RefreshClassGroups 方法 (50)
RefreshListByClassGroupID 方法 (51)
RefreshSelectedClassGroup 方法 (51)
RefreshSelectedClassGroupList 方法 (52)
AfterGetData 事件 (52)
BeforePrintBill 事件 (53)
BeforeSenderMessage 事件 (53)
ClassGroupSelected 事件 (54)
DeleteBillSucessful事件 (54)
ListFillRow 事件 (55)
ListRowSelected 事件 (57)
MenuBarClick 事件 (57)
MenuBarInitialize 事件 (57)
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 函數 (81)
IsFileNeedFilter 函數 (82)
LockBill 函數 (83)
RefreshBill 函數 (83)
SenderMessage 函數 (83)
SetDecimal 函數 (84)
SetFieldSumValue函數 (85)
SetFieldValue 函數 (85)
SetSumDecimal 函數 (86)
SetText 函數 (87)
SetTypeFloatMax 函數 (88)
SetTypeFloatMin 函數 (88)
ShowHideField 函數 (89)
ShowHideGrid 函數 (89)
Sum 函數 (90)
UpdateLookFld 函數 (90)
UpdateNormalFld 函數 (91)
DoAction 方法 (91)
IsDoActionByKey 方法 (92)
RemoveRow 方法 (93)
SaveBill 方法 (93)
SetActiveTab方法 (94)
SetBillFormCaption 方法 (94)
SetCaption 方法 (95)
SetGridMaxRows方法 (95)
SetStatus 方法 (96)
SetActiveCell 方法 (96)
SetBillWindowState方法 (97)
SetRowsPerRequest方法 (97)
SetStateStampPicture方法 (98)
SetStatusBarInfo方法 (98)
SetVariable函數 (99)
SizeBillControl方法 (100)
AddNewRow 事件 (100)
AfterBusinessCheck 事件 (100)
AfterBusinessCheckEx 事件 (101)
AfterCopyBill 事件 (101)
AfterDeleteRow 事件 (101)
AfterDoAction 事件 (102)
AfterFillRow 事件 (103)
AfterFirstNewBill 事件 (103)
AfterInputBillSetSumData 事件 (103)
AfterLoadBill 事件 (104)
AfterLoadBillSetSumData 事件 (104)
AfterLoadDynamicCtl事件 (104)
AfterMergeCopyBill 事件 (105)
AfterMultiCheck 事件 (105)
AfterMultiCheckEx 事件 (106)
AfterNewBill 事件 (106)
AfterNewEmptyData 事件 (106)
AfterSave 事件 (107)
AfterSelBill 事件 (107)
AfterSelBillBeforeFillData 事件 (107)
AfterStockQuery事件 (108)
AfterUnBusinessCheck 事件 (108)
AfterUnBusinessCheckEx 事件 (108)
AfterUnMultiCheck 事件 (108)
AfterUnMultiCheckEx 事件 (109)
BeforeDeleteRow事件 (110)
BeforeDoAction 事件 (110)
BeforeLoadBill 事件 (111)
BeforeMultiCheck 事件 (111)
BeforePrintBill 事件 (113)
BeforeSave 事件 (113)
BeforeSelBills 事件 (113)
BeforeSelBillShowFilter 事件 (114)
BeforeSenderMessage 事件 (115)
BeforeSetMutilSelData事件 (115)
BeforeSetMutilSelData2事件 (116)
BeforeVerify 事件 (116)
BeforeWindowExit事件 (117)
BeforLoadBillFillData 事件 (117)
BeginEdit 事件 (117)
BusinessCheck 事件 (117)
BusinessCheckEx 事件 (118)
Change 事件 (118)
CommandClick事件 (119)
EntryFieldChanged事件 (119)
FinishMultiCheck 事件 (119)
FinishMultiCheckEx 事件 (120)
GetFocus 事件 (120)
HeadCtlClick 事件 (121)
LostFocus 事件 (121)
MenuBarClick 事件 (122)
MenuBarInitialize 事件 (122)
MultiCheck 事件 (122)
MultiCheckEx 事件 (123)
ReMultiCheck 事件 (124)
ReMultiCheckEx 事件 (124)
ReUnMultiCheck 事件 (125)
ReUnMultiCheckEx 事件 (125)
SaveBillFailed 事件 (125)
SaveBillSuccess事件 (126)
SSTabClick事件 (126)
StartMultiCheck 事件 (126)
StartMultiCheckEx 事件 (127)
UnBusinessCheck 事件 (128)
UnBusinessCheckEx 事件 (128)
UnMultiCheck 事件 (128)
UnMultiCheckEx 事件 (129)
Verify 事件 (130)
K3Lib對象參考 (131)
Account 屬性 (131)
Net 屬性 (132)
User 屬性 (132)
CreateK3Object 函數 (136)
GetData 函數 (137)
GetK3Language 函數 (138)
LoadKDString 函數 (139)
UpdateData 方法 (141)
GetStockQty 函數 (141)
LookUpClass函數 (142)
LoadBill 方法 (144)
LoadList方法 (144)
LoadOldList方法 (145)
Account對象參考 (147)
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)
Visible 屬性 (159)
Wrappable 屬性 (160)
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)
EntryHeight 屬性 (180)
EntryIndex 屬性 (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)
Value 屬性 (190)
Visible 屬性 (191)
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 屬性 (201)
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)
BeforeSave 事件 (209)
AfterSave 事件 (209)
AddBarItem函數 (210)
AddBarItemLink函數 (211)
GetBarItemProperty函數 (211)
SetBarItemProperty函數 (212)
AddBarItemLink函數 (212)
RemoveBarItem函數 (213)
RemoveBarItemLink函數 (213)
Alter函數 (214)
Confirm函數 (214)
GetFieldValue函數 (215)
GetRequest函數 (216)
LockBillEntry函數 (216)
LockCell函數 (217)
LockWebTabItem函數 (218)
SaveBill函數 (218)
SetFieldValue函數 (219)
ShowBill函數 (220)
ShowF7Select函數 (221)
BillName 屬性 (221)
ClassType 屬性 (222)
ClassTypeEntry 屬性 (222)
ClassTypeKey 屬性 (223)
PrimaryKey 屬性 (223)
EntryPrimaryKey 屬性 (223)
TableInfo 屬性 (224)
TableName 屬性 (224)
CurBillID屬性 (224)
BillHeads對象參考 (226)
Count 屬性 (226)
Item 屬性 (226)
BillHead對象參考 (227)
BOSFields 屬性 (227)
BillEntrys對象參考 (228)
Count 屬性 (228)
Item 屬性 (228)
BillEntry對象參考 (229)
BOSFields 屬性 (229)
EntryHeight 屬性 (229)
EntryIndex 屬性 (229)
EntryLeft 屬性 (229)
EntryTop 屬性 (229)
EntryWidth 屬性 (230)
KeyField 屬性 (230)
Layer 屬性 (230)
TableName 屬性 (231)
Visible 屬性 (231)
BOSFields對象參考 (232)
Count 屬性 (232)
Item 屬性 (232)
BOSField對象參考 (233)
Caption 屬性 (233)
FieldHeight 屬性 (233)
FieldLeft 屬性 (233)
FieldLock 屬性 (233)
FieldName 屬性 (234)
FieldTop 屬性 (234)
FieldWidth 屬性 (234)
Filter 屬性 (234)
FKey 屬性 (234)
FontBold 屬性 (235)
FontItalic 屬性 (235)
FontName 屬性 (235)
FontSize 屬性 (235)
FrameBorder 屬性 (236)
FrameBorderColor 屬性 (236)
LabelColor 屬性 (236)
LabelWidth 屬性 (236)
Layer 屬性 (236)
MustInput 屬性 (237)
NeedSave 屬性 (237)
Note 屬性 (237)
Number 屬性 (237)
Page 屬性 (237)
Row 屬性 (238)
TableName 屬性 (238)
Text 屬性 (238)
TextColor 屬性 (238)
Value 屬性 (238)
Visible 屬性 (239)
用戶場景 (240)
需求 (240)
總體需求 (240)
需求分解 (241)
詳細需求 (242)
單據流程 (244)
多級審核 (245)
憑證功能 (245)
設計和實現 (246)
單據資料結構設計 (246)
單據頭 (246)
單據體 (248)
欄位的過濾條件 (251)
BOS IDE中設置過濾條件 (251)
通過SQL更新欄位的過濾條件 (253)
Action設置 (254)
自動生成Action (254)
手動添加Action (257)
單據流程 (259)
【銷售訂單】下推生成【產品入庫通知單】 (259)
練習一下 (263)
多級審核 (265)
多級審核設置 (265)
憑證功能 (267)
設置憑證數據來源 (267)
操作管理 (268)
插件開發 (271)
部署 (272)
發佈到主控台 (272)
製作部署文件 (274)
概述
為了實現客戶個性化的需求和保持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)
BOSTool(以及它的集合物件 BOSTools)
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 ListEvents物件的一個實例。
返回值類型
Object
注釋
返回序時簿用戶端資料服務物件,包括了單據的範本資訊ClassType、ClassTypeEntry、T ableInfo、Filter等KFO.Dictionary對象和ClassTypeID、SQLSelect、SQLFrom、SQLSelectDetail等值。
示例一
獲取當前單據的ID:
DataSrv.ClassTypeID
獲取當前單據的Caption:
DataSrv.ClassType("FName")
示例二
獲取序時簿的SQL語句:
DataSrv.SQLSelectDetail & " Where " & DataSrv.Filter("FilterString")
示例三
獲取欄位(Key通過參數 sField指定)的範本的資料:
Private Function GetFieldInfo(ByVal sField As String) As KFO.Dictionary
Dim dctTableInfo As KFO.Dictionary
Dim sKey As String
Set dctTableInfo = m_ListInterface.DataSrv.TableInfo
If dctTableInfo("Map").Lookup(sField) Then
sKey = dctTableInfo("Map")( sField)
Set GetFieldInfo = dctTableInfo(sKey)
Else
Set GetFieldInfo = Nothing
End If
End Function
EnableListFillRowEvents 屬性
是允許否觸發插件的序時簿FillRow 事件。
語法
Object. EnableListFillRowEvents
部分描述
Object ListEvents物件的一個實例。
返回值類型
Boolean
注釋
是允許否觸發插件的序時簿FillRow 事件。
默認為False,即不觸發。
只有當此值為True且發生序時簿行填充時,才會觸發插件的序時簿FillRow 事件。
示例
根據填充的欄位的值,實現:a、將1、2、3…對應成星期一、星期二、星期三…;b、將6、7對應的行背景設為綠色,其餘為白色:
Public Sub Show(ByVal oListInterface As Object)
'ListEvents 介面實現
'注意: 此方法必須存在, 請勿修改
Set m_ListInterface = oListInterface
'設置 EnableListFillRowEvents 屬性,允許激發 ListFillRow 事件
m_ListInterface.EnableListFillRowEvents = True
End Sub
Private Sub m_ListInterface_ListFillRow(ByVal lRow As Long, ByVal RowData As Object, ByVal HeadDict As KFO.IDictionary, CellData As String, BackColor As Long, ContinueRaise As Boolean)
If HeadDict("FKey") = "FText" Then
Select Case CellData
Case “1”:
CellData = "星期一"
BackColor = vbWhite
Case “2”:
CellData = "星期二"
BackColor = vbWhite
Case “3”:
CellData = "星期三"
BackColor = vbWhite
Case “4”:
CellData = "星期四"
BackColor = vbWhite
Case “5”:
CellData = "星期五"
BackColor = vbWhite
Case “6”:
CellData = "星期六"
BackColor = vbGreen
Case “7”:
CellData = "星期日"
BackColor = vbGreen
Case Else
BackColor = vbWhite
End Select
End If
ContinueRaise = True
End Sub
K3Lib 屬性
K3Lib對象
語法
Object.K3Lib
部分描述
Object ListEvents物件的一個實例。
返回值類型
K3ClassEvents.K3Lib
注釋
唯讀屬性。
返回K3Lib對象,主要用來訪問金蝶K/3的一些屬性,及執行金蝶K/3的一些標準操作。
詳細請參考“K3Lib對象參考"。
List 屬性
序時簿對象
語法
Object.List
部分描述
Object ListEvents物件的一個實例。
返回值類型
Object
注釋
返回序時簿物件,包括DataSrv、Parent、rsID等物件,以及一些隱含的方法和函數,如刷新序時簿。
示例
在插件中刷新序時簿:
Call m_ListInterface.List.RefreshList(False)
ListEntrySort 屬性
返回或設置序時簿單據體欄位排序。
語法
Object.ListEntrySort
部分描述
Object ListEvents物件的一個實例。
返回值類型
String
注釋
可以通過該屬性返回當前序時簿顯示前過濾介面中設置的單據體欄位排序,或者設置當前單據體欄位的排序(設置後需要調用序時簿刷新方法才可以看到設置結果)。
ListFilterString 屬性
返回或設置序時簿的過濾條件。
語法
Object. ListFilterString
部分描述
Object ListEvents物件的一個實例。
返回值類型
String
注釋
可以通過該屬性返回當前序時簿顯示前過濾介面中設置的過濾條件,或者設置當前單據的過濾條件(設置後需要調用序時簿刷新方法才可以看到設置結果)。
ListHeadSort 屬性
返回或設置序時簿單據頭欄位排序。
語法
Object.ListHeadSort
部分描述
Object ListEvents物件的一個實例。
返回值類型
String
注釋
可以通過該屬性返回當前序時簿顯示前過濾介面中設置的單據頭欄位排序,或者設置當前單據頭欄位的排序(設置後需要調用序時簿刷新方法才可以看到設置結果)。
MenuBar 屬性
功能表及工具欄物件
語法
Object. MenuBar
部分描述
Object ListEvents物件的一個實例。
返回值類型
K3ClassEvents.MenuBar
注釋
唯讀屬性。
返回功能表及工具欄物件,主要用來新增、修改功能表和工具欄。
詳細請參考“MenuBar 對象參考"。
MultiCheckMgr 屬性
多級審核控制物件
語法
Object. MultiCheckMgr
部分描述
Object ListEvents物件的一個實例。
返回值類型
Object
注釋
返回多級審核控制物件,多級審核的設置資訊、當前審核情況、審核記錄等都能從此元件中讀取到。
RsId 屬性
序時簿關鍵字段資料集合
語法
Object.RsID
部分描述
Object ListEvents物件的一個實例。
返回值類型
ADODB.Recordset
注釋
唯讀屬性,返回序時簿關鍵字段資料集合。
有三個重要的欄位:FID、FClassTypeID、FEntryID,這三個欄位能把選中的記錄行的其他值取出來。
FID表示序時簿當前行的所屬單據的內碼,取值語法是:rsID("FID");
FClassTypeID表示序時簿當前行的所屬單據類型:rsID("FClassTypeID");
FEntryID表示序時簿當前行的分錄ID:rsID("FEntryID");
注意:如果要使用這個屬性,插件工程還必須引用Microsoft ActiveX Data Objects Library。
ShowMode 屬性
返回序時簿當前調用模式。
此屬性唯讀。
語法
Object. ListFilterString
部分描述
Object ListEvents物件的一個實例。
返回值類型
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
部分描述
Object ListEvents物件的一個實例。
返回值類型
Boolean
注釋
默認為Ture,即當多級審核流程出現錯誤時顯示錯誤資訊。
如果設置為False,則只觸發插件錯誤處理事件,並不顯示錯誤提示。
DeleteBill 函數
刪除一張單據。
語法
Object. DeleteBill(ByVal lClassTypeID As Long, ByVal nInterID As Long, Optional ByRef
bSuccess As Boolean = True) As String
參數描述
Object ListEvents物件的一個實例。
lClassTypeID 要刪除單據的類型ID
nInterID 要刪除的單據的內碼
bSuccess 用於返回,指示操作是否成功
返回值類型
String對操作結果的描述:刪除操作成功或失敗
注釋
用戶定義單據並保存後,會在資料庫中創建對應的表。
如單據為t_BOS200000001表,單據體為t_BOS200000001Entry2表。
本函數刪除這些表中指定的行。
函數參數中的lClassTypeID 對應的欄位為表中的FClassTypeId列;nInterID對應的欄位為:用戶在定義單據時所指定的“主鍵欄位"(默認為“FID")。
當前序時簿的單據類型ID與內碼可以通過m_ListInterface.RsId("FClassTypeID"), m_ListInterface.RsId("FID")取得。
示例
刪除一張單據,其類型ID是200000001,內碼是0018:
Dim bSuccess As Boolean
Dim sResult As String
sResult = m_ListInterface.DeleteBill (200000001, 0018, bSuccess)
If bSuccess Then
Debug.Print “刪除成功”
Else
Debug.Print “刪除失敗”
End If
Debug.Print sResult
GetDataFldByKey 函數
通過欄位關鍵字獲取欄位對象。
語法
Object.GetDataFldByKey (sFKey As String, [Row As Long])
參數描述
Object ListEvents物件的一個實例。
sFKey String類型。
欄位範本的關鍵字(FKey)。
Row Long類型。
可選參數。
當欄位位於多分錄上時,通過此參數指定需要獲得的欄位的值所在的行號。
不指定此參數時得到當前啟動行的值。
當欄位位於其他類型分錄,或位於單據頭時,此參數被忽略。
返回值類型
KFO.Dictionary
注釋
返回欄位值物件,在欄位值物件中再取出相應的值。
示例
獲取序時簿中選中行對應得單據上的“單據編號(FBillNo)"欄位的欄位對象:
Dim dctField As KFO.Dictionary
Dim dctData As KFO.Dictionary
Dim dctBillID As KFO.Dictionary
Set dctBillID = m_ListInterface.List.GetSelectedBillID
Set dctData = m_ListInterface.DataSrv.LoadBill((1))
Set m_ListInterface.Data = dctData
Set dctField = m_ListInterface.GetDataFldbyKey("FBillNo")
If Not dctField Is Nothing Then
Debug.Print "單據編號: " & dctField("FFLD")
End If
Set dctField = Nothing
Set dctData = Nothing
Set dctBillID = Nothing
GetDataFld 函數
通過指定欄位的範本獲取欄位物件。
語法
Object.GetDataFld (dct As Dictionary, [Row As Long])
部分描述
Object ListEvents物件的一個實例。
Dct KFO.Dictionary 對象。
指定欄位的模版的對象。
Row
Long類型。
可選參數。
當欄位位於多分錄上時,通過此參數指定需要獲得的欄位的值所在的行號。
不指定此參數時得到當前啟動行的值。
當欄位位於其他類型分錄,或位於單據頭時,此參數被忽略。
返回值類型
KFO.Dictionary
注釋
返回欄位值對象。
示例
獲取序時簿中選中行對應得單據上的“單據編號(FBillNo)"欄位的欄位對象:Dim dct As KFO.Dictionary
Dim dctData As KFO.Dictionary
Dim dctBillID As KFO.Dictionary
Dim dctDataInfo As KFO.Dictionary
Set dctBillID = m_ListInterface.List.GetSelectedBillID
Set dctData = m_ListInterface.DataSrv.LoadBill((1))
Set m_ListInterface.Data = dctData
' GetFieldInfo()函數的實現參見ListEvents.DataSrv屬性的示例
Set dctDataInfo = GetFieldInfo("FBillNo")
Set dct = m_ListInterface.GetDataFld(dctDataInfo)
If Not dct Is Nothing Then
Debug.Print "單據編號: " & dct("FFLD")
End If
Set dct = Nothing
Set dctData = Nothing
Set dctBillID = Nothing
Set dctDataInfo = Nothing
GetCurrentSelRowInfo 函數
獲得序時簿當前選定行的關鍵資料。
語法
Object.GetCurrentSelRowInfo ()
部分描述
Object ListEvents物件的一個實例。
返回值類型
KFO.Dictionary
注釋
此函數返回的資料包包含FClassTypeID,FID,FEntryID。
FClassTypeID表示單據類型;FID表示當前行所屬單據的內碼;FEntryID表示單據分錄ID。
如果當前選定了多行,只返回選定行中第一行的單據資料。
示例
獲取序時簿上當前選中的行對應的單據的內碼:
Dim dctSelectedRow As KFO.Dictionary
Set dctSelectedRow = m_ListInterface.GetCurrentSelRowInfo
Debug.Print "單據內碼: " & dctSelectedRow("FID"), _
"單據類型: " & dctSelectedRow("FClassTypeID"), _
"單據分錄ID: " & dctSelectedRow("FEntryID")
Set dctSelectedRow = Nothing
GetSelectedBillInfo 函數
獲取選中行(可以多選)的關鍵資料。
語法
Object.GetSelectedBillInfo ()
部分描述
Object ListEvents物件的一個實例。
返回值類型
KFO.Vector
注釋
此函數返回一個KFO.Vector資料包,Vector的Size和選中的行數一致。
每行包含一個KFO.Dictionary資料包,此資料包包含FClassTypeID,FID,FEntryID。
FClassTypeID表示單據類型;FID表示當前行所屬單據的內碼;FEntryID表示單據分錄ID。
示例
獲取序時簿當前選中的多個行中的第一行對應的單據的分錄ID:
Dim i As Long
Dim vctRows As KFO.Vector
Dim dctRow As KFO.Dictionary
Set vctRows = m_ListInterface.GetSelectedBillInfo
If Not vctRows Is Nothing Then
For i = 1 To vctRows.Size
Set dctRow = vctRows(i)
Debug.Print "單據內碼: " & dctRow("FID"); _
" 單據類型: " & dctRow("FClassTypeID"); _
" 單據分錄ID: " & dctRow("FEntryID")
Next
End If
Set dctRow = Nothing
Set vctRows = Nothing
LoadSelectedBill 函數
載入當前選擇的單據,並按照指定的狀態顯示。
語法
Object.LoadSelectedBill (BillStatus As Enu_BillStatusExt)
部分描述
Object ListEvents物件的一個實例。
BillStatus Enu_BillStatusExt類型。
顯示單據時單據的狀態。
Enu_BillStatusExt 常數
常數值描述
Enu_BillStatusExt_View 0 查看狀態。
Enu_BillStatusExt_New 1 新增狀態。
Enu_BillStatusExt_Modify 2 修改狀態。
返回值類型
Boolean。
注釋
載入成功並顯示單據返回 True;否則返回 False。
示例
以“修改狀態"顯示序時簿當前選中的行對應的單據:
m_ListInterface.LoadSelectedBill Enu_BillStatusExt_Modify
RefreshList函數
刷新序時簿
語法
Object. RefreshList(Optional ByVal bRefreshToolBar As Boolean = True, Optional ByVal
bMarkSelRow As Boolean = True)
部分描述
Object ListEvents物件的一個實例。
bRefreshToolBar 指示是否刷新工具欄。
如為True,則刷新;為False,則不刷新
bMarkSelRow
指示在刷新後是否選定用戶在刷新前選定的行。
如為False,則刷新後選定的是第一行;如為True,則用戶選定的行在刷新後仍然選定,但如果在刷新前,用戶選擇了多行,那麼刷新後,只選中多行中的第一行。
返回值
無
示例
刷新序時簿,刷新工具欄,刷新後用戶選定的行不變:
m_ListInterface.RefreshList True, True
SenderMessage 函數
發送消息。
語法
Object.SenderMessage (sTitle As String, sMessage As String, arrUsers, [lSenderType As Long])
部分描述
Object ListEvents物件的一個實例。
sTitle String類型,消息的標題。
sMessage String類型,消息的內容。
arrUsers
Variant類型,消息接收用戶的代碼。
可以為String、Long、Integer、Single、Double類型,或這些類型的陣列(下標必須從0開始)。
lSenderType Long類型,可選參數,消息發送的方式,目前保留。
返回值
Boolean。
注釋
發送成功返回 True;否則返回 False。
示例
發送K/3主控台消息給系統管理員:
Dim bln As Boolean
bln = m_ListInterface.SenderMessage("審核單據", "請審核[111111]單據", 16394)
注:“16394"為系統管理員的內碼。
UpdateNormalFld 函數
更新非查找類型欄位的值。
語法
Object.UpdateNormalFld (dct As Dictionary, sValue As String, [Row As Long], [bSetModifyFlag As Boolean])
部分描述
Object ListEvents物件的一個實例。
dct KFO.Dictionary對象。
指定欄位的模版的對象。
sValue String類型。
需要更新的值。
Row
Long類型。
可選參數。
當欄位位於多分錄上時,通過此參數指定需要更新的欄位的值所在的行號。
不指定此參數時更新當前啟動行的值。
當欄位位於其他類型分錄,或位於單據頭時,此參數被忽略。
bSetModifyFlag Boolean類型。
可選參數。
目前保留。
返回值
KFO.Dictionary
注釋
此函數僅更新了該欄位的值物件中的值,並不影響已有的顯示。
示例
更改當前單據的單據編號(“FBillNo")的值為33333
'GetFieldInfo()的實現參見ListEvents.DataSrv屬性的示例程式
m_ListInterface.UpdateNormalFld GetFieldInfo("FBillNo"), "33333" UpdateNormalFldByKey 函數
通過欄位名稱來更新非查找類型欄位的值。
語法
Object.UpdateNormalFldByKey (sKey As String, sValue As String, [Row As Long], [bSetModifyFlag As Boolean])
部分描述
Object ListEvents物件的一個實例。
sKey String類型。
欄位範本的關鍵名稱(FKey)。
sValue String類型。
需要更新的值。
Row
Long類型。
可選參數。
當欄位位於多分錄上時,通過此參數指定需要更新的欄位的值所在的行號。
不指定此參數時更新當前啟動行的值。
當欄位位於其他類型分錄,或位於單據頭時,此參數被忽略。
bSetModifyFlag
Boolean類型。
可選參數。
是否設置更新標誌。
不指定此參數,或設置為 False,則不改變該欄位的更新標誌;如果設置為True,則該欄位的更新標誌將被設置。
返回值
KFO.Dictionary
注釋
此個函數僅更新了該欄位的值物件中的值,並不影響已有的顯示。
示例
更改當前單據的單據編號(“FBillNo")的值為33333
m_ListInterface.UpdateNormalFldByKey "FBillNo", "33333" RefreshMenu 函數
刷新序時簿功能表和工具欄
語法
Object.RefreshMenu
部分描述
Object ListEvents物件的一個實例。
示例
m_ListInterface.RefreshMenu
AfterBatchMultiCheck事件
批量審核或反審核單據後,觸發此事件。
語法
Private Sub Object_AfterBatchMultiCheck (ByVal lCheckDirection As Long, ByVal dctCheckResult As KFO.Dictionary)
部分描述
Object ListEvents物件的一個實例。
lCheckDirection Long類型。
標識審核方向。
1 = 審核, 2 = 反審核
dctCheckResult KFO.Dictionary類型。
審核或反審核結果及相關資訊。
注釋
AfterBusinessCheck 事件
業務最末級審核後發生。
語法
Private Sub Object_AfterBusinessCheck (ByVal Success As Boolean)
部分描述
Object ListEvents物件的一個實例。
Success Boolean類型。
業務審核是否成功。
True 為業務審核成功。
注釋
此事件只有在業務最末級審核成功後才觸發,如設置為2級(包含2級)以上審核流程,第1級審核成功後不觸發此事件。
AfterBusinessCheckEx 事件
業務最末級審核後發生。
語法
Private Sub Object_AfterBusinessCheckEx (ByVal lBillID As Long, ByVal Success As Boolean)
部分描述
Object ListEvents物件的一個實例。
lBillID Long類型。
單據範本ID。
其他參數及其含義跟AfterBusinessCheck完全相同。
注釋
此事件總是在AfterBusinessCheck事件之後觸發。
AfterCopyBillCreateData 事件
複製選中的單據資料到新單據,在新單據尚未保存時發生。
語法
Private Sub Object_AfterCopyBillCreateData (ByVal srcInterID As Long, ByVal dctData As KFO.Dictionary)
部分描述
Object ListEvents物件的一個實例。
srcInterID Long類型,選擇的單據的內碼。
dctData 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)
部分描述
Object ListEvents物件的一個實例。
bSuccess Boolean類型。
刪除是否成功。
True 為刪除成功。
lBillInterID Long類型。
刪除的單據的內碼。
sBillNo String類型。
刪除的單據的編號。
sErrorMessage String類型。
錯誤資訊。
如果刪除成功,則為成功的提示資訊。
bCancelErrorMessage Boolean類型。
是否顯示錯誤資訊提示對話方塊(包括成功資訊)。
注釋
sBillNo為刪除的單據的單據編號,但有可能沒有單據編號,此時為空字串。
bCancelErrorMessage 默認為 False,默認情況下不顯示提示對話方塊。
AfterMergeCopyBill事件
合併複製選中的單據資料到新單據,在新單據尚未保存時發生。
語法
Private Sub Object_AfterMergeCopyBill(ByVal dctData As KFO.Dictionary)
部分描述
Object ListEvents物件的一個實例。
dctData 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)
部分描述
Object ListEvents物件的一個實例。
lCheckMode Long類型。
審核模式,0—順序審核;1—會簽。
lCheckMaxLevel Long類型。
多級審核最大審核級次。
lBusinessLevel Long類型。
業務審核級次。
lCheckLevel Long類型。
本次審核的級次。
lCheckStatus
Long類型。
審核狀態標誌。
等於已經完成的審核級次2次方之和。
對於順序審核,則和中最大的審核級次為當前已審核級次。
Success Boolean類型。
多級審核是否成功。
True 為多級審核成功。
注釋
此事件在每步審核後都能觸發,和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)
部分描述
Object ListEvents物件的一個實例。
lBillID Long類型。
單據範本ID。
其他參數及其含義跟AfterMultiCheck完全相同。
注釋
此事件總是在AfterMultiCheck事件之後觸發。
AfterSelList 事件
在選單過程中,選定源單序時簿上的單據,返回目標單據時發生。
語法
Private Sub Object_AfterSelList (ByVal RsId As ADODB.Recordset, VectList As KFO.Vector)
部分描述
Object ListEvents物件的一個實例。
RsId ADODB.Recordset對象。
源單序時簿所有單據的關鍵字段記錄集合。
VectList KFO.Vector 對象。
選定的源單單據集合。
注釋
可以通過修改 VectList 參數中的值,並將其一同返回。
注意:如果要使用RsId 參數,插件工程還必須引用Microsoft ActiveX Data Objects Library。
AfterUnBusinessCheck 事件
駁回業務審核後發生。
語法
Private Sub Object_AfterUnBusinessCheck (ByVal Success As Boolean)
部分描述
Object ListEvents物件的一個實例。
Success Boolean類型。
駁回業務審核是否成功。
True 為駁回業務審核成功。