資源描述:
《關(guān)于一些插件開發(fā)的參考代碼》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、K/3BOS開發(fā)百問百答應(yīng)用集成部客戶化管理部2005年12月目錄一,插件開發(fā)篇【問題1】在插件中以新增,修改和查看方式打開另一單據(jù)【解答】使用代碼調(diào)用序時簿'********************************************'功能:顯示BOS單據(jù),顯示的方式為新增,修改和瀏覽'參數(shù):lClassTypeID—顯示BOS單據(jù)的ID'********************************************PrivateSubShowBill(ByVallClassTypeIDAsLong)DimoDataSrv
2、AsObjectDimoBillAsObjectOnErrorGoToerr_ctrSetoDataSrv=m_BillInterface.K3Lib.CreateK3Object("K3ClassTpl.DataSrv")oDataSrv.ClassTypeID=lClassTypeIDSetoBill=CreateObject("K3SingleClassBill.ClassInfoManager")WithoBill.DataSrv=oDataSrv.ISNetControl=True.ISCheckRight=True.Show'****
3、******************'Show參數(shù)類型'第一個參數(shù)OptionalByVallIDAsLong=0;描述修改或查看的單據(jù)ID'第二個參數(shù)OptionalByValbShowGroupAsBoolean=False;如是基礎(chǔ)資料時,是否顯示分組'第三個參數(shù)OptionalByValBillStatusAsLong=Enu_BillStatus_New;顯示方式0—查看;1—新增;2—修改'第四個參數(shù)OptionalByValdctDataAsKFO.Dictionary'單據(jù)初始值'**********************End
4、WithSetoDataSrv=NothingSetoBill=NothingExitSuberr_ctr:SetoDataSrv=NothingSetoBill=NothingEndSub【問題2】我想在投料變更單的菜單上加入一個菜單項,需要插入一個插件,但投料變更單上已經(jīng)有一個插件了,我想了解一下怎樣才可以再插入一個插件呢【解答】點(diǎn)插件管理中的按鈕,可以通過瀏覽來選擇自定義插件,并選擇多個插件對象,BOS允許多個插件同時存在.【問題3】如何通過插件代碼動態(tài)設(shè)置基礎(chǔ)資料或業(yè)務(wù)單據(jù)序時薄過濾條件【解答】業(yè)務(wù)場景:在開發(fā)BOS單據(jù)時,經(jīng)常需要根據(jù)前
5、面錄入的字段值來過濾選擇的基礎(chǔ)資料.例如錄入客戶后,在選擇客戶對應(yīng)客戶地址基礎(chǔ)資料時,在基礎(chǔ)資料F7查詢界面只顯示當(dāng)前單據(jù)上客戶對應(yīng)地址.根據(jù)當(dāng)前物料,在選擇物料對應(yīng)批次.我們下面就以批次為例說明實(shí)現(xiàn)方法:需求:在選擇批次前要求必須錄入物料,批次查詢界面只顯示物料對應(yīng)的批次開發(fā)步驟:假設(shè):物料對應(yīng)FKey="FItemID",批次對應(yīng)FKey="FBatchNo"單據(jù)類型200000001只需更新對應(yīng)元數(shù)據(jù)即可實(shí)現(xiàn):updateICClassTableinfosetFFilter='(FItemID=GetFldValue(FItemID,1))
6、'whereFKey="FBatchNo"andFClassTypeID=200000001如果不要求先錄入物料updateICClassTableinfosetFFilter='(FItemID=GetFldValue(FItemID,0))'whereFKey="FBatchNo"andFClassTypeID=200000001再舉個例子根據(jù)工藝路線過濾工序名稱假設(shè):工藝路線FKey="FNewRoutingID",工序名稱FKey="FOperID"單據(jù)類型200000001updateICClassTableinfosetFFilter
7、='FInterIDIn(SelectFOperIDfromt_routingoperwhereFinterID=GetFldValue(FNewRoutingID,1))'whereFKey='FOperID'andFClassTypeID=200000001其中GetFldValue為BOS內(nèi)部函數(shù),取單據(jù)上指定字段值,第一個參數(shù)為字段對應(yīng)FKey,第二個參數(shù)為是否要求該字段先錄入,1要求0不要求此方法雖能實(shí)現(xiàn),但不是最好方法.希望能在插件接口中提供在函數(shù).【問題4】在插件中調(diào)用序時簿并返回選中的數(shù)據(jù)【回答】請參考下面代碼'*********
8、***********************************'功能:顯示BOS序時簿并返回選中的值'參數(shù):lClassType