版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、插件開發(fā)應(yīng)用案例介紹 收貨單提供以下功能:增加下拉列表,顯示單據(jù)頭的所有字段;在分錄菜單上增加庫存查詢(FQuerylnventory)菜單項;3點擊庫存查詢時,查詢分錄上當(dāng)前焦點所在物料的庫存(STK_InvSumQuery); STK_Inventory4.查詢庫存時按組織隔離,只查詢當(dāng)前組織的庫存;5當(dāng)前分錄物料F8時,顯示所有組織的物料;暫存時清空單據(jù)類型的值;物料基礎(chǔ)資料增加字段有效期至(F_MCY_ExpiryDate); 時只顯示有效期今天的物料;保存判斷物料的庫存,如果100則提示“庫存100,是否入庫”;保存后鎖定“收料部門”、“收料員”;保存后自動記錄收料日志(MCY_s
2、tk_Receip tLog);操作步驟:增加下拉列表,顯示單據(jù)頭的所有字段;新建(打開)收貨單插件工程();重載Onlnitialize方法,定義ListEnumItem用于存儲下拉列表枚舉值;通過方法獲取所有字段;通過方法獲取界面上的下拉列表控件;SetComboItems 綁定值;f)代碼如下:C#public override void OnInitialize(InitializeEventArgs e) (e);ListEnumItem list = new ListEnumItem();foreach (Field field inEnumItem item = new Enum
3、Item (); (item):FCombo).Se tCombo Ite ms(lis t);在分錄菜單上增加庫存查詢(tbQuerylnventory)菜單項;運行IDE,選擇單據(jù)體-菜單集合,新增菜單:b)保存;點擊庫存查詢時,查詢分錄上當(dāng)前焦點所在物料的庫存;打開插件工程,重載方法En tryBarI temClick判斷 Bar It emKey=庫存查詢(t bQueryInven to ry)取當(dāng)前分錄行設(shè)置ListShowParameter參數(shù),打開表單這里介紹2種獲取當(dāng)前分錄字段數(shù)據(jù)的方法:TryGe tEn tryCurren tRow :獲取單據(jù)體當(dāng)前行,返回是否取到值以
4、及行數(shù)據(jù)和行號;另外一種方法:先獲取單據(jù)體當(dāng)前行號,再取指定行數(shù)據(jù);2種方法沒什么區(qū)別。示例代碼如下:C#override void EntryBarItemClick(BarItemClickEventArgs e)(e);if =ShowQueryInven tory();private void ShowQuerylnventory() DynamicObject row;int rowindex;調(diào)試狀態(tài)下,可以屏蔽代碼看看過濾條件的效果。注意:ListFilterParameter的Filter屬性設(shè)置的字段是用IDE中的字段標(biāo)識。查詢庫存時按組織隔離,只查詢當(dāng)前組織的庫存:增加過濾
5、條件,組織=當(dāng)前組織= ( FORGID =0 ,);5當(dāng)前分錄物料F8時,顯示所有組織的物料;重載 AuthPermissionBeforeF7Select 方法,設(shè)置參數(shù) IsIsolationOrg = false;同樣,如果需要F8時控制只顯示當(dāng)前組織的物料,該參數(shù)設(shè)置為true。注意:在BOS系統(tǒng)中,默認(rèn)是按組織隔離的,即非共享基礎(chǔ)資料,在F8時都是只顯示當(dāng)前組織的 物料。時只顯示審核日期2014-03-22的供應(yīng)商;重載 BeforeF7Select 事件;設(shè)置列表過濾參數(shù)ListFilterParameter的屬性Filter;C#public override void Bef
6、oreF7Select(BeforeF7SelectEventArgs e)(e);if = FSupplierldl)string filter = FCreateDate 2014-03-20if=filter;elseAND;保存判斷物料的庫存,如果100則提示“庫存100,是否入庫”;新建收貨單服務(wù)插件工程;定義保存服務(wù)類 SaveServicePlugln,繼承自 AbstractOperationServicePlugln;重載 OnAddValidators 方法;代碼示例如下:C#public override void OnAddValidators(AddValidator
7、sEventArgs e)(e);SaveValidator saveValidator = new SaveValidator();=FBillHead;d)定義保存校驗類 SaveValidator,繼承自 AbstractValidator;e)重載方法:Validate:i.獲取單據(jù)體分錄數(shù)據(jù),取到物料Id;ii查詢物料庫存;檢查庫存是否100;構(gòu)造校驗結(jié)果信息;代碼示例:C#public override void Validate(ExtendedDataEntity dataEntities, ValidateContext validateContext, ctx)if (da
8、taEntities = null |= 0)return;Dictionarylong, decimal dictErrMaterialld = new Dictionarylong, decimal。; FMATERIALID) group by FMATERIALID ;SqlParam param = new SqlParam (FMATERIALID, , ().ToArray();using (IDataReader dr = , sql, param)while ()decimal qty = (drFQTY);if (qty 100)(drFMATERIALID), qty);
9、foreach (ExtendedDataEntity entityObj in dataEntities)DynamicObjectCollection collection =(DynamicObjectCollection)entityObjFEntity;foreach (DynamicObject rowObj in collection)if (long)rowObjFBase_Id)ValidationErrorlnfo errinfo = newValidationErrorInfo(FMATERIALID, Id), , (rowObjId), SaveValidator,庫
10、存數(shù) 量大于100,校驗失敗,;(en tity Obj, errinfo);f)重載方法:Validate:保存后鎖定“收料部門”、“收料員”;鎖定字段的方法:;該鎖定與事務(wù)無關(guān),只要在客戶端保存后事件(Aft erBarI temClick )處理即可;“收料部門”、“收料員”的key可以在IDE設(shè)計器中拷貝;代碼如下:C#public override void AfterBarItemClick(AfterBarItemClickEventArgs e)(e);if = tbSave)FBase1, tr ue);FBase2, t rue);字段名稱類型說明KDV ID日志ID字段名
11、稱類型說明KDV ID日志IDint自增長KDV UserID操作用戶KDV Da te操作時間KDV Con tent 日志內(nèi)容IntKDV UserID操作用戶KDV Da te操作時間KDV Con tent 日志內(nèi)容Int關(guān)聯(lián)用戶表IDNvarchar(2000)保存有2種方法:方法1:在IDE中定義收料日志基礎(chǔ)資料;打開收貨單服務(wù)插件保存服務(wù)類SaveServicePlugIn;根據(jù)收料日志基礎(chǔ)資料的元數(shù)據(jù)定義,創(chuàng)建動態(tài)實體對象;設(shè)置對象屬性值;調(diào)用BusinessDataService服務(wù)的保存方法保存動態(tài)實體對象;代碼如下:C#public override void After
12、ExecuteOperationTransaction(AfterExecuteOperationTransaction e)(e);MetaDataService metaService = new MetaDataService();FormMetadata formMetaData = (FormMetadata),1823871d-b9cf-4d8b-93af-39c0c37011a5);DynamicObjectType dt =DynamicObject obj = new DynamicObject(dt);KDV_UserID_Id.Se tValueFas t( obj,KD
13、V_Con ten t.Se tValueFas t(obj,保存);ISaveService saveService = ();,new DynamicObject obj );方法2:a)自定義收料日志表;b)獲取日志的自增長(序列)值;c)執(zhí)行 insert;代碼如下:C#publicoverride void AfterExecuteOperationTransaction(C#publicoverride void AfterExecuteOperationTransaction(AfterExecuteOperationTransactione)(e);SequenceReader sequence = new SequenceReader;int ids = (in t )(KDV_s tk_Receip tLog, 1);int id = ids0;string sql = insert into KDV_stk_ReceiptLog(FID, KDV_UserID, KDV_Conten
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年籃球運動場地安全設(shè)施安裝與檢修合同3篇
- 2025版土地整治工程土方運輸居間代理協(xié)議3篇
- 2025版教育培訓(xùn)投資入股合同范本大全3篇
- 2025年度個人與個人車輛購置借款合同2篇
- 2025版教職工宿舍分配與使用管理合同3篇
- 二零二五版留置車輛維修工程借款協(xié)議4篇
- 2024金融科技支付系統(tǒng)集成與運營合同
- 二零二五年度體育賽事官方運動服贊助合同示例3篇
- 渣土運輸及循環(huán)經(jīng)濟(jì)承包合同(二零二五年度)3篇
- 2025年達(dá)人帶貨直播平臺合作協(xié)議書2篇
- 2024企業(yè)答謝晚宴會務(wù)合同3篇
- 電氣工程及其自動化專業(yè)《畢業(yè)設(shè)計(論文)及答辯》教學(xué)大綱
- 《客艙安全管理與應(yīng)急處置》課件-第14講 應(yīng)急撤離
- 中華人民共和國文物保護(hù)法
- 節(jié)前物業(yè)安全培訓(xùn)
- 阿里巴巴國際站:2024年珠寶眼鏡手表及配飾行業(yè)報告
- 高甘油三酯血癥相關(guān)的器官損傷
- 手術(shù)室護(hù)士考試題及答案
- 牙膏項目創(chuàng)業(yè)計劃書
- 單位食堂供餐方案
- DB42-T 2204-2024 湖沼濕地溫室氣體通量監(jiān)測技術(shù)規(guī)范
評論
0/150
提交評論