1. 程式人生 > >k3 wise 序時簿二次開發2

k3 wise 序時簿二次開發2

eid 響應 idt eventid ins mar .get ont rdp

            這是系統自帶的一些按鈕的事件ID和名稱

300014

單據拆分後事件

300013

單據拆分前事件

300012

單據合並後事件

300011

單據合並前事件

300010

單據關聯反寫後事件

300009

單據關聯反寫前事件

300008

關閉/反關閉單據後事件

300007

關閉/反關閉單據前事件

300006

作廢/反作廢單據後事件

300005

作廢/反作廢單據前事件

300004

刪除單據後事件

300003

刪除單據前事件

300002

序時簿復制後事件

300001

序時簿復制前事件

100001

生成憑證結束反寫事件

100000

生成憑證結束反寫事件

200003

審核退出前事件

200002

審核反寫事件

200001

審核前事件

    

--場景: 客戶要求在系統自帶的按鈕[關閉]或者[反關閉]來更新表中對應的字段值.

--步驟:
1.0 在C#建立類庫 命名空間為BOS_BillEvent_PlugIns 類型為 Class3 然後實現 bool HookInvoke(long EventID, KFO.Dictionary dctParams) 方法,
1.1 參數說明:EventID 請求的事件ID(如上圖所示) dctParams的值域 為 sDsn|連接字符串、BillInterID|單據的內碼、TableHeadName|表名、CloseSwitch|0/1(關閉/反關閉)

string sDsn = dctParams.GetValue("sDsn").ToString();//數據連接
string BillInterID = dctParams.GetValue("BillInterID").ToString();//單據唯一值
string TableHeadName = dctParams.GetValue("TableHeadName").ToString();//單據的表名
string CloseSwitch = dctParams.GetValue("CloseSwitch").ToString();

switch (TableHeadName)
{
case "SEOrder"://銷售訂單

if (CloseSwitch == "0")//關閉
{
//邏輯處理...
}
else//反關閉
{
//邏輯處理...
}
break;
case "ICSale"://發票
break;
}


2.0 在數據庫中找到表[t_ThirdPartyComponent],插入對應的信息 INSERT INTO t_ThirdPartyComponent (FTypeID,FTypeDetailID,FIndex,FComponentSrv,FDescription)VALUES (2,300008,-9999,‘BOS_BillEvent_PlugIns.Class3‘,‘關閉後觸發測試‘)
2.1 FTypeID 0為客戶端插件;2為中間層插件 FTypeDetailID 當FtypeId為2的時候 表示中間層響應事件類型 FComponentSrv 表示 命名空間.類型

k3 wise 序時簿二次開發2