金蝶K3工業單據二次開發指導彙總


工業單據二次開發指導彙總
(一)          二次開發組件如何註冊到系統中?
常用二次開發組件需要註冊到系統二次開發組件列表中,物理表爲t_thirdPartyComponent,其標結構和相關說明如下:
結構
說明
FTypeID
一般取值爲0或2
其中0代表客戶端,2代表中間層
FTypeDetailID
一般代表單據的FTranType,還有一些特殊情況如200002,200003等
FIndex
觸發次序
FComponentName
客戶端二次開發組件名稱,如K3Cust.CBillPlugin
FComponentSrv
中間層二次開發組件名稱,如K3MCust.CBillPlugin
FDescription
對於插件的作用描述信息
 
(二)          插件開發過程
單據插件主要分爲客戶端和中間層兩大類,說明如下:
1.       客戶端二次開發
客戶端的二次開發多用於針對單據的界面控制和一些業務操作的控制,主要圍繞單據操作對象m_Billtransfer,它的數據包結構需要在二次開發中逐步熟悉,最直接的方法可以在二次開發運行時調試狀態直接觀察得到,下面就如何實現作一些操作說明:
操作步驟
說明
注意事項
註冊
首先在t_thirdPartyComponent中註冊二次開發插件
1.FTypeID=0;
2.FTypeDetailID爲單據類別;
3.FComponentName爲單據客戶端插件名稱;
創建插件
創建一個VB的DLL組件
1.引用當前版本的k3BillTransfer.dll;
2.定義單據二次開發操作對象,如Private WithEvents m_Billtransfer As k3BillTransfer.Bill;
3.定義公開接口Show(object),將參數賦值給步驟2定義的單據對象
處理單據事件
在單據二次開發對象定義的事件中增加處理邏輯
常見的m_Billtransfer的使用事件有:
AfterLoad\BeforeSave\EndSave\HeadChange等
需要提醒的是EndSave和單據保存的事務已經脫離,一般只用於客戶端界面的控制,不在處理更新數據庫等操作
部署
編譯,部署,註冊
 
 
2.       中間層二次開發
l         中間層二次開發主要基於單據業務操作的合法性以及相關業務單據額外處理,主要分爲單據保存,單據審覈/反審覈,單據反寫常用三大類反寫:
l         保存——業務單據的新增,修改等操作
說明
注意事項
首先在t_thirdPartyComponent中註冊二次開發插件
1.FTypeID=2;
2.FTypeDetailID爲單據類別;
3.FComponentSrv爲單據中間層插件名稱;
創建一個VB的DLL組件
插件類必須實現BeginSave和EndSave兩個Public接口,這兩個接口和單據保存同屬於一個事務,不同之處在於BeginSave的校驗多基於數據包的校驗,此時數據庫層還沒有該業務單據的記錄,而EndSave則不同,此時數據庫事務中已經存在該單據的記錄。
兩個接口參數相同,函數返回值(Boolean)表示保存是否成功,說明如下:
參數1:ByVal sDsn As String  K/3連接串
參數2:ByRef SaveVect As KFO.Vector 保存數據包
參數3:ByRef ReturnMsg As String 如果保存不通過,返回消息
需要特別說明的是在EndSave中常用的SaveVect中值包含單據當前內碼=SaveVect(1)("FInterID")
處理單據事件
?
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章