金蝶K3-WISE單據(jù)開發(fā)知識點_第1頁
金蝶K3-WISE單據(jù)開發(fā)知識點_第2頁
金蝶K3-WISE單據(jù)開發(fā)知識點_第3頁
金蝶K3-WISE單據(jù)開發(fā)知識點_第4頁
金蝶K3-WISE單據(jù)開發(fā)知識點_第5頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、概述單據(jù)二次開發(fā)是針對現(xiàn)目前單據(jù)的一些功能無法滿足一些客戶的特殊要求,同時分公司又有能力進行二次開發(fā)而提出的,這樣既可以在現(xiàn)有的系統(tǒng)不做變動的情況下面滿足用戶的需求,同時也增強了系統(tǒng)的穩(wěn)定性。注意:本篇所介紹所用到的動態(tài)連接庫名為:K3BillTransfer.dll通過該說明文檔,你可以了解到.如何通過K3BillTransfer組件在錄單過程中對單據(jù)上各項目加以控制。.如何通過K3BillTransfer組件實現(xiàn)自定義功能菜單。.如何通過K3BillTransfer組件控制數(shù)據(jù)的保存。.應(yīng)用示例。該文檔閱讀的適用對象需要在K/3工業(yè)供需鏈系統(tǒng)單據(jù)上進行二次開發(fā)的開發(fā)者。屬性1Propert

2、yCnnstringAsString當前數(shù)據(jù)庫的MMTS.PropsString連接串。2PropertySystemNameAsString當前系統(tǒng)名稱。3PropertyLastInfoAsString最后一次系統(tǒng)返回的各種信息4PropertyBillFormAsObject整個單據(jù)窗體對象。可通過該對象訪問單據(jù)上的任何一個對象,包括控件,菜單。共有的方法有:InsertRow(),在Grid的當前行追加一行,它沒有參數(shù)。5PropertyBillFuncasObject代表單據(jù)對象。目前沒什么用途。6PropertyHeadAsObject單據(jù)表頭控件,是一個KDText控件數(shù)組7Pr

3、opertyGridAsObject單據(jù)分錄控件,為FpSpread控件8PropertySumGridAsObject單據(jù)分錄合計控件,為FpSpread控件9PropertyHeadCtlAsVariant對應(yīng)表頭控件數(shù)組,記錄每個表頭項目各屬性的數(shù)組如果要改變HeadCtl中的某個屬性值,需先對HeadCtl做一個備份,然后修改此備份的相應(yīng)屬性值,再將此備份賦值給HeadCtl。10PropertyEntryCtlAsVariant對應(yīng)分錄各列,記錄每個分錄列各屬性的數(shù)組如果要改變EntryCtl中的某個屬性值,需先對EntryCtl做一個備份,然后修改此備份的相應(yīng)屬性值,再將此備份賦值

4、給EntryCtl。11PropertySaveVectAsKFO.Vector二次開發(fā)外部數(shù)據(jù)存取接口。在錄單過程中,用戶可將某些數(shù)據(jù)保存在此Vector中,在單據(jù)保存時,再通過二次開發(fā)中間層組件,將此Vector中的數(shù)據(jù)保存到指定位置。SaveVect.Item(l)為一個KFO.Dictionary對象該對象包含以下四個系統(tǒng)數(shù)據(jù)SaveVect.Item(1).Value(FInterID):單據(jù)內(nèi)碼SaveVect.Item(1).Value(FTransType):單據(jù)事務(wù)類型SaveVect.Item(1).Value(ISRedBill):是否紅字單據(jù)SaveVect.Item(

5、1).Value(BillChecked):是否審核。FunctionAddUserMenuItem(ByValCaptionAsString,ByValRootMenuCaptionAsString=)說明:添加一個用戶自定義菜單項,系統(tǒng)一共預(yù)設(shè)了五個菜單項供二次開發(fā)使用參數(shù):Caption:菜單名稱RootMenuCaption:根菜單名稱。缺省為自定義菜單2FunctionGetGridText(ByValRowAsLong,ByValColAsLong)AsString說明:獲取分錄某單元格的值參數(shù):Row:分錄行Col:分錄列3FunctionGetHeadNumber(ByValC

6、tlIndexAsLong)AsString說明:獲取表頭某項的代碼參數(shù):CtlIndex:表頭控件索引4FunctionGetHeadText(ByValCtlIndexAsLong)AsString說明:獲取表頭某項的文本參數(shù):CtlIndex:表頭控件索引5FunctionGetSumGridText(ByValRowAsLong,ByValColAsLong)AsString說明:獲取合計行某列的值參數(shù):Row:行。一般為1Col:分錄列FunctionSetGridText(ByValRowAsLong,ByValColAsLong,ByValValue,ByValInterIDAs

7、Long=0,ByValsNameAsString=)AsBoolean說明:設(shè)置分錄某單元格的值,當分錄為查找類型時,會把相應(yīng)的信息一起攜帶到相應(yīng)的位置,如當為物料代碼時,它會攜帶物料的一些基本信息物料名稱等。參數(shù):Row:分錄行Col:分錄列Value:設(shè)置的值。如果該單元格是查找類型的,Value應(yīng)設(shè)置為代碼。InterlD:暫未使用sName:暫未使用FunctionSetHead(ByValIndexAsLong,ByValValue,ByValInterIDAsLong=0,ByValsNameAsString=)AsBoolean說明:設(shè)置表頭某項的值參數(shù):Index:表頭控件索

8、引Value:設(shè)置的值。如果該表頭項是查找類型的,Value應(yīng)設(shè)置為代碼。InterID:暫未使用sName:暫未使用8FunctionSetSumGridText(ByValRowAsLong,ByValColAsLong,ByValValue)AsBoolean說明:設(shè)置分錄合計某列的值參數(shù):Row:分錄行。一般為1Col:分錄列Value:設(shè)置的值。1PublicEventBillInitialize()單據(jù)初始化完成時激發(fā)該事件2PublicEventBillTerminate()單據(jù)卸載完成時激發(fā)該事件3PublicEventUserMenuClick(ByValIndexAsLon

9、g,ByValCaptionAsString)當點擊用戶自定義的菜單時激發(fā)這個事件。參數(shù):Index:表示第幾個菜單、由添加菜單的先后順序決定,Caption:菜單項的標題,如何添加自定義菜單請參見方法AddUserMenuItem4PublicEventLeveCell(ByValColAsLong,ByValRowAsLong,_ByValNewColAsLong,ByValNewRowAsLong,CancelAsBoolean)當離開分錄的一個單元格的時候激發(fā)這個事件參數(shù):Col分錄的要離開列Row分錄的要離開行NewCol新的列NewRow新的行Cancel是否取消PublicEve

10、ntHeadChange(ByValCtlIndexAsLong,ByValValueAsVariant,ByValbNewBillAsBoolean,CancelAsBoolean)當表頭的一個項目改變時激發(fā)這個事件參數(shù):ctlIndex表頭字段索引Value當前值bNewBill是否是新增單據(jù)Cancel是否取消6PublicEventGridChange(ByValColAsLong,ByValRowAsLong,ByValValueAsVariant,ByValbNewBillAsBoolean,CancelAsBoolean)當表體的一個項目改變時激發(fā)這個事件參數(shù):Col分錄的當前列

11、Row分錄的當前行Value當前值bNewBill是否是新增單據(jù)Cancel是否取消7PublicEventBeforGridLookUp(ByValRowAsLong,ByValColAsLong,ByValnLookUpClsIDAsLong,CancelAsBoolean)在分錄執(zhí)行查找功能之前激發(fā)這個事件參數(shù):Col分錄的當前列Row分錄的當前行nLookUpClsID當前查詢的資料類型,Cancel是否取消PublicEventEndGridLookUp(ByValRowAsLong,ByValColAsLong,ByValnLookUpClsIDAsLong)在分錄完成查找功能之后

12、激發(fā)這個事件參數(shù):Col分錄的當前列Row分錄的當前行nLookUpClsID當前查詢的資料類型9PublicEventBeforHeadLookUp(ByValCtlIndexAsLong,ByValnLookUpClsIDAsLong,CancelAsBoolean)在表頭的一個項目執(zhí)行查找功能之前激發(fā)這個事件參數(shù):ctllndex表頭字段索引nLookUpClsID當前查詢的資料類型Cancel是否取消10PublicEventEndHeadLookUp(ByValCtlIndexAsLong,ByValnLookUpClsIDAsLong)在表頭的一個項目完成查找功能之后激發(fā)這個事件,

13、參數(shù):ctllndex表頭字段索引nLookUpClsID當前查詢的資料類型11PublicEventBeforeSave(ByValbNewAsBoolean,ByRefReturnCodeAsLong)在單據(jù)執(zhí)行保存功能的時候激發(fā)這個事件參數(shù):bNew表示是否是新增單據(jù)ReturnCode返回參數(shù)-1:失敗,結(jié)束單據(jù)保存;0:成功,繼續(xù)單據(jù)保存1:成功返回,結(jié)束單據(jù)保存12PublicEventEndSave(ByValBillNoAsString)在單據(jù)執(zhí)行完成保存功能的時候激發(fā)這個事件參數(shù):BillNo表示單據(jù)的編號13PublicEventLoadBillEnd(ByValShowT

14、ypeAsLong)在單據(jù)裝載完成的時候激發(fā)這個事件參數(shù):ShowType單據(jù)顯示狀態(tài)0新增1.修改2.查看3.審核14PublicEventNewBillEnd()在單據(jù)新增完成的時候激發(fā)這個事件15PublicEventSetMenuBarCtlPropEnd(ByValShowTypeAsLong,ByValBillCheckedAsBoolean)在單據(jù)設(shè)置菜單、工具條各屬性完成的時候激發(fā)這個事件參數(shù):ShowType單據(jù)顯示狀態(tài)0新增1.修改2.查看3.審核BillChecked單據(jù)是否已被審核16PublicEventBeforeFillBillData(ByValBillTran

15、sTypeAsLong,ByValBillInterIDAsLong)在裝載某張單據(jù)之前激發(fā)這個事件參數(shù):BillTransType單據(jù)事務(wù)類型BillInterlD單據(jù)內(nèi)碼17PublicEventEndBillFormActive()在顯示單據(jù)之后激發(fā)這個事件18PublicEventGridFormat(ByValDestAsLong,ByValColAsLong,ByValRowAsLong)在設(shè)置單據(jù)體格式后激發(fā)這個事件參數(shù):DestCol要設(shè)置格式的目標列Row要設(shè)置格式的目標行19PublicEventRefreshControl()在設(shè)置單據(jù)的單元格和單據(jù)頭的鎖定狀態(tài)后激發(fā)這個

16、事件PublicEventBeforeEntrySplit(ByValpCurRowAsLong,ByValpSplitCountAsLong,ByValpSplitMethodAsLong,ByRefpCancelAsBoolean)在單據(jù)的拆分操作之前激發(fā)此事件參數(shù):pCurRow要拆分的當前分錄行pSplitCount拆分的數(shù)目pSplitMethod拆分分錄位置0插入式,1追加式pCancel是否取消拆分true:取消拆分false:拆分PublicEventAfterEntrySplit(ByValpCurRowAsLong,ByValpSplitCountAsLong,ByValp

17、SplitMethodAsLong)在單據(jù)的拆分操作之后激發(fā)此事件參數(shù):pCurRow被拆分的分錄行pSplitCount被拆分成的數(shù)目pSplitMethod拆分分錄位置0:插入式,1:追加式22PublicEventOnBeforeDelRow(ByVallRowAsLong,ByRefbCancelAsBoolean)在單據(jù)刪除指定行之前激發(fā)此事件參數(shù):lRow指定要刪除的行bCancel是否取消刪除true:取消刪除false:冊嘛23.PublicEventOnAfterDelRow(ByVallRowAsLong,ByRefbCancelAsBoolean)在單據(jù)刪除指定行后激發(fā)此

18、事件參數(shù):lRow被刪除的行bCancel備用參數(shù),目前沒用到如果需要在單據(jù)保存的事務(wù)處理過程中插入一些用戶處理過程,可以編寫一個用戶中間層,必須包含以下兩個函數(shù):1PublicFunctionBeginSave(ByValSdsnAsString,ByRefSaveVectAsKFO.Vector,ByRefReturnMsgAsString)AsBoolean在單據(jù)保存的事務(wù)處理中,在單據(jù)數(shù)據(jù)保存到數(shù)據(jù)庫之前,調(diào)用該函數(shù)。返回值:FALSE保存事務(wù)終止,返回錯誤。TRUE單據(jù)繼續(xù)保存事務(wù)處理。參數(shù):Sdsn:MMTS.PropsStringSaveVect:二次開發(fā)外部數(shù)據(jù)存取接口。Ret

19、urnMsg:失敗時返回的錯誤信息。2PublicFunctionEndSave(ByValSdsnAsString,ByRefSaveVectAsKFO.Vector,ByRefReturnMsgAsString)AsBoolean在單據(jù)保存的事務(wù)處理中,在單據(jù)數(shù)據(jù)保存到數(shù)據(jù)庫之后,調(diào)用該函數(shù)。返回值:FALSE保存事務(wù)終止,返回錯誤。TRUE單據(jù)繼續(xù)保存事務(wù)處理。參數(shù):Sdsn:MMTS.PropsStringSaveVect:二次開發(fā)外部數(shù)據(jù)存取接口。ReturnMsg:失敗時返回的錯誤信息。第一步、新建組件工程(假設(shè)工程名為ReDevPro,包含一個類名為clsReDev的類模塊),引

20、用k3BillTransfer組件和其他你要使用的組件例如ADO-MicrosoftActiveXDataObjects2.1Library等。第二步、在clsReDev類代碼中聲明PrivateWithEventsm_BillTransferAsk3BillTransfer.Bill。第三步、必須添加以下代碼否則系統(tǒng)不能夠傳遞事件到你的組件中PublicSubShow(ByvalAsObject)Setm_BillTransfer=oEndSub第四步、在m_BillTransfer的各事件中編寫相應(yīng)處理代碼。例如PrivateSubm_BillTransfer_BillInitialize

21、()Setcn=NewADODB.Connectioncn.CursorLocation=adUseClientcn.Openm_BillTransfer.CnnstringEndSub第五步、編寫完成以后編譯你的工程第六步、在ICTransactionType表的FCheckPro添加你的組件名稱,例如updateICTransactionTypesetFcheckPro=ReDevClientObj:ReDevPro.clsReDevwhereFID=1ReDevClientObj是關(guān)鍵字,表示后面定義的是二次開發(fā)客戶端組件如果需要在單據(jù)保存的事務(wù)處理過程中插入一些用戶處理過程,則進行以下

22、操作.新建中間層組件工程(假設(shè)工程名為ReDevMPro,包含一個類名為clsReDevM的類模塊).在clsReDevM類代碼中定義兩個函數(shù)PublicFunctionBeginSave(ByValSdsnAsString,ByRefSaveVectAsKFO.Vector,ByRefReturnMsgAsString)AsBooleanEndFunctionPublicFunctionEndSave(ByValSdsnAsString,ByRefSaveVectAsKFO.Vector,ByRefReturnMsgAsString)AsBooleanEndFunction.編譯工程,在中間

23、層服務(wù)器組件管理中添加此組件。配置客戶端相應(yīng)VBR文件。在ICTransactionType表的FCheckPro添加你的組件名稱,例如updateICTransactionTypesetFcheckPro=ReDevMiddleOBJ:ReDevMPro.clsReDevMwhereFID=1ReDevMiddleOBJ是關(guān)鍵字,表示后面定義的是二次開發(fā)中間層端組件注:如果同時有客戶端和中間層組件,則ICTransactiontypeType表中的FCheckPro應(yīng)同時包含兩個關(guān)鍵字,例如updateICTransactionTypesetFcheckPro=ReDevClientObj:

24、ReDevPro.clsReDev|ReDevMiddleOBJ:ReDevMPro.clsReDevMwhereFID=1。具體的應(yīng)用示例見Demo,在Demo中說明了如何增加用戶自定義菜單、菜單的響應(yīng)、批量增加數(shù)據(jù)等。關(guān)于HeadCtl、EntryCtl數(shù)組屬性和Head控件數(shù)組、Grid的簡要說明HeadCtlIDAsInteger數(shù)組的Index與KDCtl的Index相對應(yīng),(FCtlIndex)CaptionAsStringKDCtl的CaptionFontNameAsString字體FontSizeAsInteger字體大小FCtlIndexAsInteger控件序號TabInd

25、exAsIntegerTAB索弓|LeftAsSingle左TopAsSingleWidthAsSingleHeightAsSingleEnableAsBoolean控件是否Locked與KDCtl的Locked屬性相對應(yīng)EnableValueAsInteger控件在各種狀態(tài)下的可用性:新增、修改、察看、審核、下達。用一個五位的二進制數(shù)表示,可見則對應(yīng)位為1,否則為0。常用值:0、31。bPrintAsBoolean是否打印VisibleAsBoolean是否可見VisibleValueAsInteger控件在各種狀態(tài)下的可見性:新增、修改、察看、審核、下達。用一個五位的二進制數(shù)表示,可見則對

26、應(yīng)位為1,否則為0。常用值:0、31。NeedSaveAsBoolean該控件的值是否保存RelateOutTblAsBoolean該控件的值是否來自其他表MustInputAsBoolean該控件是否必須輸入LookUpClsAsInteger如果控件的類型是查找類型的(LookUpCls=ctlLookUp),則該屬性標示查找的類型-控件的數(shù)據(jù)來源屬性InterIDAsLongFInterIDAsStringnterID對應(yīng)的字段名NumberAsStringFNumberAsStringNumber對應(yīng)的字段名NameAsStringFNameAsStringName對應(yīng)的字段名-控件的

27、數(shù)據(jù)保存屬性FieldNameAsString該值保存時對應(yīng)的字段名ValeAsString保存的值(要用ValType來格式化)FilterAsString查找的過濾條件LOCKAAsBoolean選單鎖定EntryCtlIDAsInteger數(shù)組的Index與KDCtl的Index相對應(yīng),(FCtlIndex)CtlTypeAsE_CtlType控件的類型(KCtlType)EnableAsBoolean控件是否Locked與KDCtl的Locked屬性相對應(yīng)EnableValueAsInteger控件在各種狀態(tài)下的可用性:新增、修改、察看、審核、下達。用一個五位的二進制數(shù)表示,可見則對應(yīng)

28、位為1,否則為0。常用值:0、31。bPrintAsBoolean是否打印VisibleAsBoolean是否可見VisibleValueAsInteger控件在各種狀態(tài)下的可見性:新增、修改、察看、審核、下達。用一個五位的二進制數(shù)表示,可見則對應(yīng)位為1,否則為0。常用值:0、31。NeedSaveAsBoolean該控件的值是否保存RelateOutTblAsBoolean該控件的值是否來自其他表MustInputAsBoolean該控件是否必須輸入LookUpClsAsInteger如果控件的類型是查找類型的(LookUpCls=ctlLookUp),則該屬性標示查找的類型NeedCoun

29、tAsBoolean是否需要合計StatCountAsBoolean是否匯總類字段FCtlIndexAsInteger控件序號FCtlOrderAsInteger控件順序號RelationIDAsString該列相關(guān)聯(lián)的父級列-控件的數(shù)據(jù)來源屬性FInterIDAsStringInterID對應(yīng)的字段名FNumberAsStringNumber對應(yīng)的字段名FNameAsStringName對應(yīng)的字段名FilterStringAsStringDInterID()AsString如果該控件是查找類型的,則在該數(shù)組內(nèi)記錄InterID的值,其他的值直接從界面中取得-控件的數(shù)據(jù)保存屬性SaveRuleAsStringFieldNameAsString該值保存時對應(yīng)的字段名ValTypeAsE_ValType保存值的數(shù)據(jù)類型SaveValueAsE_SaveValue保存何種類型的值(FName、InterID、Number)DName()AsStringDNumber()AsStringFilter()AsStringHeadItemID當前數(shù)據(jù)的內(nèi)碼ItemName當前數(shù)據(jù)的名稱ItemNumber當前數(shù)據(jù)的IDText控件顯示的TextGridSetText(c

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論