單據(jù)列表插件示例代碼.docx_第1頁
單據(jù)列表插件示例代碼.docx_第2頁
單據(jù)列表插件示例代碼.docx_第3頁
單據(jù)列表插件示例代碼.docx_第4頁
單據(jù)列表插件示例代碼.docx_第5頁
已閱讀5頁,還剩23頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、單據(jù)列表插件示例代碼修改記錄Ver. No日期編制修訂校對(duì)批準(zhǔn)修改的章節(jié)號(hào)V1.0吳亮張晉博賴碧云初始版本問題和意見如果你對(duì)文檔有任何意見、問題或想法,或者你的問題未在此文檔中找到答案,請(qǐng)通過電子郵件聯(lián)系我們jinbo_目錄單據(jù)列表插件示例代碼1單據(jù)列表插件概要說明4公共屬性4ListModel4語法4常用屬性5常用方法5案例 匯率列表,對(duì)匯率按精度格式化顯示6ListView8語法8常用屬性9常用方法9案例 銷售訂單列表對(duì)訂單進(jìn)行BOM配置9事件11BatchCopyData11案例 暫缺11AfterBatchCopyData11案例 暫缺12BeforeB

2、uttonClick12AfterButtonClick12AfterGetData12案例 網(wǎng)上銀行,銀行類型列表,刷新取數(shù)12AfterMenuClick13BeforeMenuClick14CellDbClick14CellFormat14CreateFilterEditorControl14EntryHyperlinkButtonClick14FormatCellValue14案例 股權(quán)關(guān)系列表,持股比例精度按參數(shù)設(shè)置控制15OnFormatRowConditions16案例 暫缺17ListCreateColumns17案例 暫缺17ListInitialize17案例 調(diào)整分錄模板

3、列表初始化時(shí)獲取用戶參數(shù)18ListRowDoubleClick19案例 采購價(jià)目表列表界面雙擊19OnGetConvertRule20案例 簡單生產(chǎn)入庫下推簡單生產(chǎn)領(lǐng)料訂單20OnShowConvertOpForm22案例 采購收料單列表界面下推篩選掉資產(chǎn)卡片23OnShowTrackResult24案例 生產(chǎn)領(lǐng)料單上查替換物料清單為生產(chǎn)訂單24PrepareFilterParameter27案例 信用檢查規(guī)則查找列表數(shù)據(jù)篩選27PrepareFuncPermissionDataRule28單據(jù)列表插件概要說明平臺(tái)插件繼承體系圖如下如上圖所示,列表插件基類AbstractListPlugIn

4、繼承自動(dòng)態(tài)表單基類插件AbstractDynamicFormPlugIn,并實(shí)現(xiàn)了IlistViewPlugIn和IlistModelPlugIn兩個(gè)插件接口,分別是視圖層和模型層的插件接口。公共屬性ListModel模型層訪問接口,Model屬性做強(qiáng)制轉(zhuǎn)換語法屬性定義:C#public virtual IListModel ListModel get if (this.Model != null & this.Model is IListModel) return (IListModel)this.Model; else return null; 備注:無常用屬性名稱描述BillBusine

5、ssInfo關(guān)聯(lián)單據(jù)的業(yè)務(wù)邏輯元數(shù)據(jù)FieldKeyMap列表上顯示的字段,其字段名FieldName和字段標(biāo)識(shí)Key的對(duì)應(yīng)關(guān)系FilterParameter列表過濾條件參數(shù)對(duì)象GlobalParameter單據(jù)參數(shù)配置中配置的單據(jù)全局參數(shù)ParameterData用戶參數(shù)數(shù)據(jù),一般是選項(xiàng)菜單界面的配置數(shù)據(jù)Header列表表頭對(duì)象FieldKeyMap字段和列表所選字段key的映射關(guān)系QueryInfo列表查詢?cè)獢?shù)據(jù),包括組織隔離字段、可供查詢的實(shí)體、字段列表等等Limit每頁行數(shù)StartRow開始行索引常用方法名稱描述GetData(int startRow, int limit, boo

6、l needRefreshTree)獲取列表數(shù)據(jù)GetData(int start, int rows, bool needRefreshTree, string orderInfo)獲取列表數(shù)據(jù),帶排序GetRow(IDataRow r)獲取選中行對(duì)象GetGroupInfo(string groupRows)獲取分組信息GetHeadFieldSummaryData(List summaryHeadFields)獲取單據(jù)頭字段的匯總數(shù)據(jù)GetSummaryData(List summaryFields)獲取匯總數(shù)據(jù)(單據(jù)體)GetPagingRowCount()列表總行數(shù),為了性能,僅在最

7、后一頁取數(shù)GetPKData()獲取當(dāng)前列表查詢的所有主鍵數(shù)據(jù)GetRowCount()獲取列表總行數(shù)和單據(jù)記錄數(shù)Refresh()刷新列表RefreshByFilter()根據(jù)過濾條件,重新取數(shù),刷新列表案例 匯率列表,對(duì)匯率按精度格式化顯示代碼來源匯率管理列表插件Kingdee.K3.BD.Common.Business.PlugIn.RateList,Kingdee.K3.BD.Common.Business.PlugIn需求背景匯率列表界面的直接匯率和間接匯率列的顯示值,需要根據(jù)所在匯率類型中定義的精度進(jìn)行格式化顯示實(shí)現(xiàn)方案捕獲FormatCellValue事件,對(duì)直接匯率和間接匯率進(jìn)

8、行格式化。先需要加載當(dāng)前行的匯率數(shù)據(jù),以拿到精度信息,然后進(jìn)行格式化。示例代碼C#using Kingdee.BOS;using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;using Kingdee.BOS.Core.List;using Kingdee.BOS.Core.List.PlugIn;using Kingdee.BOS.Core.List.PlugIn.Args;using Kingdee.BOS.Core.Metadata;using Kingdee.BOS.Core.SqlBuilder;using Kingdee.BOS.Orm.Dat

9、aEntity;using Kingdee.BOS.ServiceHelper;using Kingdee.BOS.Util;using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Linq;namespace Kingdee.K3.BD.Common.Business.PlugIn / / 匯率管理列表插件 / public class RateList : AbstractListPlugIn / / 直接匯率和間接匯率精度集 rateD

10、ecimal主鍵PKID0:直接匯率,1:間接匯率=精度 / private IDictionary rateDecimal = new Dictionary(); public override void FormatCellValue(FormatCellValueArgs args) base.FormatCellValue(args); string filedName = args.Header.FieldName;/字段名 /直接匯率或間接匯率列 if (filedName.Equals(FExchangeRate, StringComparison.OrdinalIgnoreCa

11、se) | filedName.Equals(FReverseExRate, StringComparison.OrdinalIgnoreCase) long pkId = Convert.ToInt64(this.ListModel.GetRow(args.DataRow).PrimaryKeyValue); /暫存匯率字段中,不存在當(dāng)前分錄的記錄if (!rateDecimal.ContainsKey(pkId) /加載直接匯率和間接會(huì)精度 QueryBuilderParemeter para = new QueryBuilderParemeter() FormId = BD_Rate,

12、SelectItems = SelectorItemInfo.CreateItems(FRateID,FRATETYPEID.FDIGITS,FRATETYPEID.FREVERSEDIGITS), FilterClauseWihtKey = FRateID=FRateID ; List lstSqlPara = new List(); lstSqlPara.Add(new SqlParam(FRateID, DbType.Int64, pkId); DynamicObjectCollection obj = QueryServiceHelper.GetDynamicObjectCollect

13、ion(this.Context, para, lstSqlPara); if (obj != null & obj.Count 0) DynamicObject dy = obj.First(); rateDecimal.Add(pkId, new int2); rateDecimalpkId0 = Convert.ToInt32(dyFRATETYPEID_FDIGITS); rateDecimalpkId1 = Convert.ToInt32(dyFRATETYPEID_FREVERSEDIGITS); /格式化值 if (filedName.Equals(FExchangeRate,

14、StringComparison.OrdinalIgnoreCase) args.FormateValue = string.Format(0:F + rateDecimalpkId0 + , args.Value); else if (filedName.Equals(FReverseExRate, StringComparison.OrdinalIgnoreCase) args.FormateValue = string.Format(0:F + rateDecimalpkId1 + , args.Value); ListView視圖層訪問接口,View屬性做強(qiáng)制轉(zhuǎn)換語法屬性定義:C#pu

15、blic virtual IListView ListView get if (null != this.View & this.View is IListView) return (IListView)this.View; else return null; 備注:無常用屬性名稱描述BillBusinessInfo對(duì)應(yīng)單據(jù)的邏輯元數(shù)據(jù)BillLayoutInfo對(duì)應(yīng)單據(jù)的布局元數(shù)據(jù)Model列表對(duì)應(yīng)的模型,強(qiáng)轉(zhuǎn)為IListModelOpenParameter頁面打開時(shí)傳入的參數(shù)SelectedRowsInfo當(dāng)前列表上被選中的行記錄,通過復(fù)選框勾選的CurrentSelectedRowInf

16、o當(dāng)前列表上當(dāng)前選擇行記錄,直接點(diǎn)擊選中的CurrentPageRowsInfo當(dāng)前列表所有單據(jù)的行信息CanDealWithRows可以處理的行數(shù)據(jù),可能被插件排除了某些單據(jù)ID常用方法名稱描述SetRowFontColor(int row, string color)設(shè)置列表的行文本顏色FormatCellValue(ListHeader header, IDataRow dr, object value)格式化單元格的值,應(yīng)用于列表格式化、引出數(shù)據(jù)、打印等案例 銷售訂單列表對(duì)訂單進(jìn)行BOM配置代碼來源銷售訂單列表插件Kingdee.K3.SCM.Sal.Business.PlugIn.S

17、aleOrderList,Kingdee.K3.SCM.Sal.Business.PlugIn需求背景銷售訂單列表菜單項(xiàng)【配置】,點(diǎn)擊時(shí)進(jìn)行訂單的BOM配置,配置只能對(duì)一張訂單的唯一一行分錄進(jìn)行。實(shí)現(xiàn)方案捕獲菜單點(diǎn)擊事件,如果是點(diǎn)擊的【配置】,則判斷是否符合BOM配置的條件,符合,則進(jìn)行配置,否則,直接退出菜單操作。示例代碼C#using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;using Kingdee.BOS.Core.List;using Kingdee.BOS.Core.List.PlugIn;using Kingdee.BOS.Util;us

18、ing System;using System.ComponentModel;using System.Linq;namespace Kingdee.K3.SCM.Sal.Business.PlugIn / / 銷售訂單敘事薄列表插件 / public class SaleOrderList : AbstractListPlugIn public override void BarItemClick(BarItemClickEventArgs e) ListSelectedRowCollection selectRows = this.ListView.SelectedRowsInfo; st

19、ring objectID = this.ListView.BillBusinessInfo.GetForm().Id; string entiryKey = this.ListView.Model.BillBusinessInfo.GetField(FQty).EntityKey; switch (e.BarItemKey.ToUpperInvariant() case TBBOMCONFIG: /分是否顯示單據(jù)體處理 if (selectRows.Count() != 1 | this.ListView.SelectedRowsInfo0.EntryEntityKey != FSaleOr

20、derEntry | this.ListView.SelectedRowsInfo0.EntryPrimaryKeyValue.IsNullOrEmptyOrWhiteSpace() e.Cancel = true; this.View.ShowMessage(請(qǐng)選擇唯一一行單據(jù)分錄進(jìn)行配置操作!); break; /私有函數(shù),進(jìn)行BOM配置,具體邏輯略去 BomConfigViewEdit(); break; /其他case分支處理邏輯略去 事件BatchCopyData觸發(fā)時(shí)機(jī)調(diào)用批量復(fù)制操作,獲取目標(biāo)數(shù)據(jù)包時(shí)觸發(fā)應(yīng)用場景批量復(fù)制單據(jù)時(shí),調(diào)整復(fù)制的單據(jù)主鍵或自定義復(fù)制的目標(biāo)數(shù)據(jù)包。如果僅調(diào)

21、整主鍵,那么平臺(tái)會(huì)根據(jù)新的主鍵值去加載目標(biāo)數(shù)據(jù)包;如果定義了目標(biāo)數(shù)據(jù)包,則平臺(tái)會(huì)直接使用。關(guān)鍵字批量復(fù)制備注當(dāng)BatchCopyData事件中直接給出了目標(biāo)數(shù)據(jù)包,后面不會(huì)再觸發(fā)AfterBatchCopyData案例 暫缺AfterBatchCopyData觸發(fā)時(shí)機(jī)批量復(fù)制操作,獲取到平臺(tái)加載的的目標(biāo)數(shù)據(jù)包之后觸發(fā)。應(yīng)用場景插件對(duì)平臺(tái)加載的目標(biāo)數(shù)據(jù)包再做修改、調(diào)整關(guān)鍵字批量復(fù)制備注模型層事件如果BatchCopyData事件中直接給出了目標(biāo)數(shù)據(jù)包,不會(huì)再觸發(fā)本事件案例 暫缺BeforeButtonClick已失效,功能被ButtonClick替代參考參考動(dòng)態(tài)表單插件示例代碼.docx文檔中A

22、ButtonClick事件AfterButtonClick參考動(dòng)態(tài)表單插件示例代碼.docx文檔中AfterButtonClick事件AfterGetData觸發(fā)時(shí)機(jī)列表取數(shù)完成后,在數(shù)據(jù)發(fā)送到前端之前觸發(fā)應(yīng)用場景 關(guān)鍵字取數(shù)完成備注視圖層事件案例 網(wǎng)上銀行,銀行類型列表,刷新取數(shù)代碼來源財(cái)務(wù)領(lǐng)域,網(wǎng)上銀行,銀行類型列表插件Kingdee.K3.FIN.WB.Business.PlugIn.BankTypeList,Kingdee.K3.FIN.WB.Business.PlugIn需求背景網(wǎng)上銀行,銀行類型列表取數(shù)后,如果發(fā)現(xiàn)沒有數(shù)據(jù),則需要后臺(tái)從銀企平臺(tái)數(shù)據(jù)庫同步銀行類型數(shù)據(jù)到Cloud數(shù)據(jù)

23、庫。實(shí)現(xiàn)方案捕獲AfterGetData事件,判斷當(dāng)前也的數(shù)據(jù)行數(shù),如果為0,說明列表沒有數(shù)據(jù),調(diào)用服務(wù)端事件接口,從銀企平臺(tái)同步數(shù)據(jù)過來。示例代碼C#using Kingdee.BOS.Core.List.PlugIn;using Kingdee.BOS.Util;using Kingdee.K3.FIN.WB.ServiceHelper;namespace Kingdee.K3.FIN.WB.Business.PlugIn public class BankTypeList : AbstractListPlugIn / / 組織ID / public string OrgID get; s

24、et; public override void AfterGetData() base.AfterGetData(); if (this.ListView.CurrentPageRowsInfo.Count 1) /說明沒有數(shù)據(jù),需要重新刷新下 if (this.OrgID.IsNullOrEmptyOrWhiteSpace() return; /財(cái)務(wù),網(wǎng)上銀行服務(wù)接口,同步銀企平臺(tái)銀行類型數(shù)據(jù)Kingdee.K3.FIN.WB.ServiceHelper.EbankAutoFillServiceHelper.AutoFillBankList(this.Context, OrgID); Af

25、terMenuClick已失效BeforeMenuClick已失效CellDbClick已失效CellFormat已失效CreateFilterEditorControl已失效EntryHyperlinkButtonClick已失效,前端不會(huì)觸發(fā),請(qǐng)使用EntryButtonCellClick事件FormatCellValue觸發(fā)時(shí)機(jī)列表顯示,在獲取數(shù)據(jù)之后,數(shù)據(jù)發(fā)送到前端之前觸發(fā),用來格式化列表上的單元格數(shù)據(jù)應(yīng)用場景插件在加載列表數(shù)據(jù)時(shí)格式化字段值,滿足列表顯示多樣化的需求關(guān)鍵字格式化備注視圖層插件事件設(shè)計(jì)器中,表單整體屬性中有【列表?xiàng)l件格式化】屬性,通過配置這個(gè)屬性,可以對(duì)列表做一些格式化

26、顯示配置。如果該屬性不能完全滿足需求,那么可以通過該事件做更豐富的列表格式化顯示設(shè)置。案例 股權(quán)關(guān)系列表,持股比例精度按參數(shù)設(shè)置控制代碼來源財(cái)務(wù)合并報(bào)表:股權(quán)關(guān)系-列表插件Kingdee.K3.FIN.CR.Business.PlugIn.InvestList,Kingdee.K3.FIN.CR.Business.PlugIn需求背景【合并報(bào)表參數(shù)設(shè)置】中有對(duì)持股比例精度進(jìn)行控制。股權(quán)關(guān)系列表中,在顯示持股比例值的時(shí)候,需要獲取該參數(shù),并且對(duì)持股比例值的小數(shù)位數(shù)參照該精度進(jìn)行控制實(shí)現(xiàn)方案插件在初始化表單事件OnInitialize中獲取系統(tǒng)參數(shù);捕獲FormatCellValue事件,在對(duì)持股

27、比例值進(jìn)行格式化的時(shí)候,使用該參數(shù)格式化數(shù)值。示例代碼C# using System;using System.Collections.Generic;using System.ComponentModel;using System.Linq;using System.Text;using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;using Kingdee.BOS.Core.List.PlugIn;using Kingdee.BOS.Core.List.PlugIn.Args;using Kingdee.K3.FIN.CR.Common.Core;us

28、ing Kingdee.K3.FIN.CR.ServiceHelper;namespace Kingdee.K3.FIN.CR.Business.PlugIn Description(股權(quán)關(guān)系-列表插件) public class InvestList : AbstractListPlugIn / / 持股比例精度 / private int _ratePrecision = 0; private string _formartString = string.Empty; / / 持股比例精度 格式化字符串 / private string FormartString get if (!str

29、ing.IsNullOrWhiteSpace(_formartString) return _formartString; char sp = new char_ratePrecision; for (int i = 0; i _ratePrecision; i+) spi = 0; _formartString = string.Format(#.0, new string(sp); return _formartString; public override void OnInitialize(InitializeEventArgs e) base.OnInitialize(e); /調(diào)用

30、系統(tǒng)服務(wù)幫助類,獲取系統(tǒng)參數(shù)【合并報(bào)表參數(shù)設(shè)置】中的持股比例精度控制的值 _ratePrecision = CRSystemParamerServiceHelper.GetSystemParamter4CR(this.Context, 0, CRConst.Key_InvestRatePrecision, 2); public override void FormatCellValue(FormatCellValueArgs args) base.FormatCellValue(args); switch(args.Header.FieldName.ToUpperInvariant() cas

31、e FRATE: case FHISTORYRATE: if(args.Value = null) break; args.FormateValue = Convert.ToDecimal(args.Value).ToString(FormartString); break; OnFormatRowConditions觸發(fā)時(shí)機(jī)列表顯示,在獲取數(shù)據(jù)之后,數(shù)據(jù)發(fā)送到前端之前觸發(fā);在FormatCellValue事件之后,設(shè)計(jì)時(shí)配置的列表?xiàng)l件格式化生效之前觸發(fā)。對(duì)列表行數(shù)據(jù)進(jìn)行格式化應(yīng)用場景列表的行數(shù)據(jù),不同的行個(gè)性顯示,譬如奇偶行分色顯示等等關(guān)鍵字格式化備注視圖層插件案例 暫缺ListCreate

32、Columns觸發(fā)時(shí)機(jī)列表創(chuàng)建列數(shù)據(jù)之后,數(shù)據(jù)發(fā)送到前端之前觸發(fā)應(yīng)用場景列表創(chuàng)建列信息之后,插件可以修改列信息關(guān)鍵字無備注視圖層插件事件案例 暫缺ListInitialize觸發(fā)時(shí)機(jī)列表初始化時(shí)觸發(fā)應(yīng)用場景初始化時(shí)獲取參數(shù)關(guān)鍵字初始化備注無案例 調(diào)整分錄模板列表初始化時(shí)獲取用戶參數(shù)代碼來源財(cái)務(wù)合并報(bào)表調(diào)整分錄模板列表插件:Kingdee.K3.FIN.CR.Business.PlugIn.RptAdjTempList,Kingdee.K3.FIN.CR.Business.PlugIn需求背景調(diào)整分錄表單界面,點(diǎn)擊菜單【引入分錄模板】,打開調(diào)整分錄模板列表時(shí),會(huì)添加一個(gè)自定義參數(shù)“OpenByA

33、djust”,標(biāo)識(shí)來自調(diào)整分錄表單。而在調(diào)整分錄模板列表界面,需要獲取這個(gè)參數(shù),在操作之前判斷這個(gè)參數(shù),如果參數(shù)為true且操作是返回?cái)?shù)據(jù),則走返回調(diào)整分錄模板的邏輯實(shí)現(xiàn)方案調(diào)整分錄表單插件,ShowForm的時(shí)候,添加自定義參數(shù)“OpenByAdjust”。調(diào)整分錄模板列表界面,捕獲ListInitialize事件,獲取參數(shù)。示例代碼C#using Kingdee.BOS.Core.List.PlugIn;using System;using System.ComponentModel;namespace Kingdee.K3.FIN.CR.Business.PlugIn / / 調(diào)整分錄模

34、板列表插件 / Description(調(diào)整分錄模板列表插件) public class RptAdjTempList : AbstractListPlugIn private bool blnOpenByAdjust; public override void ListInitialize(ListInitializeEventArgs e) base.ListInitialize(e); blnOpenByAdjust = Convert.ToBoolean(e.Paramter.GetCustomParameter(OpenByAdjust); ListRowDoubleClick觸發(fā)時(shí)

35、機(jī)雙擊列表行時(shí)觸發(fā)。如果插件未撤銷后續(xù)操作,會(huì)繼續(xù)調(diào)用內(nèi)置的行雙擊處理函數(shù)。應(yīng)用場景雙擊列表時(shí),打開單據(jù)詳情、穿透明細(xì)列表、返回?cái)?shù)據(jù)關(guān)鍵字列表雙擊備注插件可以通過設(shè)置參數(shù)ListRowDoubleClickArgs的Cancel屬性,撤銷后續(xù)操作。如果沒有撤銷,則會(huì)調(diào)用內(nèi)置的行雙擊處理函數(shù):如果是查找列表,則返回?cái)?shù)據(jù);如果是普通列表,則調(diào)用列表配置的行雙擊事件。案例 采購價(jià)目表列表界面雙擊代碼來源供應(yīng)鏈采購價(jià)目表列表插件Kingdee.K3.SCM.Purchase.Business.PlugIn.PriceListList,Kingdee.K3.SCM.Business.PlugIn需求背景

36、采購價(jià)目表列表界面,如果是普通查看列表界面,雙擊時(shí)進(jìn)入價(jià)目表明細(xì);如果是采購訂單(或其他采購類單據(jù))在查詢價(jià)格的時(shí)候進(jìn)入,則雙擊不要做任何操作。實(shí)現(xiàn)方案采購訂單在點(diǎn)擊采購明細(xì)表體的菜單項(xiàng)【查詢價(jià)格】時(shí),會(huì)調(diào)用【查詢價(jià)格】操作,在這個(gè)操作中,通過ShowForm的方式顯示采購價(jià)目表列表,并添加了一個(gè)自定義參數(shù)“IsPriceListQuery”標(biāo)識(shí)是在進(jìn)行價(jià)格查詢。在采購價(jià)目表的列表插件中,捕獲重寫ListRowDoubleClick事件,獲取并判斷自定義參數(shù)“IsPriceListQuery”,如果有值則撤銷后續(xù)操作;如果沒有值,則繼續(xù)調(diào)用BOS平臺(tái)的列表雙擊處理函數(shù)。示例代碼C# using

37、 Kingdee.BOS.Core.List.PlugIn;using Kingdee.BOS.Core.List.PlugIn.Args;using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace Kingdee.K3.SCM.Purchase.Business.PlugIn public class PriceListList : AbstractListPlugIn public override void ListRowDoubleClick(ListRowDou

38、bleClickArgs e) object isPriceListQuery = this.View.OpenParameter.GetCustomParameter(IsPriceListQuery); if (isPriceListQuery != null) e.Cancel = true; OnGetConvertRule觸發(fā)時(shí)機(jī)選單/下推過程,獲取單據(jù)轉(zhuǎn)換規(guī)則時(shí)觸發(fā)應(yīng)用場景棄用操作框里指定的轉(zhuǎn)換規(guī)則,通過插件來獲取新的單據(jù)轉(zhuǎn)換規(guī)則關(guān)鍵字選單、下推、單據(jù)轉(zhuǎn)換備注視圖層插件選單/下推過程中,確定單據(jù)轉(zhuǎn)換規(guī)則案例 簡單生產(chǎn)入庫下推簡單生產(chǎn)領(lǐng)料訂單代碼來源供應(yīng)鏈簡單生產(chǎn)入庫列表插件King

39、dee.K3.SCM.Stock.Business.PlugIn.SP.SpInStockList,Kingdee.K3.SCM.Stock.Business.PlugIn需求背景簡單生產(chǎn)入庫在下推簡單生產(chǎn)領(lǐng)料單時(shí),需要使用BOM正向展開下推簡單生產(chǎn)領(lǐng)料單的轉(zhuǎn)換規(guī)則進(jìn)行下推。實(shí)現(xiàn)方案插件捕獲OnGetConvertRule事件,判斷下推目標(biāo)單是簡單生產(chǎn)領(lǐng)料,則獲取BOM正向展開下推簡單生產(chǎn)領(lǐng)料單的轉(zhuǎn)換規(guī)則,調(diào)整轉(zhuǎn)換規(guī)則的相關(guān)屬性,賦值到事件參數(shù)中。示例代碼C#using Kingdee.BOS;using Kingdee.BOS.Core.DynamicForm;using Kingdee.B

40、OS.Core.List.PlugIn;using Kingdee.BOS.Core.List.PlugIn.Args;using Kingdee.BOS.Core.Metadata.ConvertElement;using Kingdee.BOS.ServiceHelper;using System.Collections.Generic;using System.ComponentModel;using System.Linq;namespace Kingdee.K3.SCM.Stock.Business.PlugIn.SP Description(簡單生產(chǎn)入庫單-列表插件) public

41、 class SpInStockList : AbstractListPlugIn public override void OnGetConvertRule(GetConvertRuleEventArgs e) base.OnGetConvertRule(e); if (e.ConvertOperation = FormOperationEnum.Push & (e.TargetFormId = SP_PickMtrl) ConvertRuleElement rule = ConvertServiceHelper.GetConvertRules(this.Context,ENG_BomExp

42、andBill,e.TargetFormId).FirstOrDefault(); if (rule != null) ConvertFilterPolicyElement filterPolicy = rule.Policies.Where(p = p is ConvertFilterPolicyElement) .Select(p = p as ConvertFilterPolicyElement).FirstOrDefault(); filterPolicy.AlertMessage = new LocaleValue(1.用戶需有入庫物料BOM上發(fā)料組織下簡單生產(chǎn)領(lǐng)料單的新增權(quán)限。rn2.簡單生產(chǎn)入庫單領(lǐng)料標(biāo)識(shí)應(yīng)該為“否”。, this.Context.LogLocale.LCID); List ruleFieldsMap = rule.Policies.Where(w = w is Def

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論