多组织预测冲销向导界面自定义数据过滤条件原创
9人赞赏了该文章
811次浏览
编辑于2021年01月06日 15:09:48
2020年12月24号的补丁更新之后,在多组织预测冲销向导界面第一步中增加一个字段,使第二步中加载出来的预测单、销售订单和组织间需求单按照这个字段进行过滤。
如果冲销的单据很多,数据量太大导致第二步加载不出来或者加载得很慢,就能通过这种方法按不同的条件分批加载数据。
例如,增加一个基础资料类型的客户字段,字段标识为"FABCCustId":
在多组织预测冲销那个动态表单的表单插件里面注册一个新插件,停用标准产品的那个,新的插件继承自标准产品的那个插件。
原理就是在往第二步界面的左右两个单据体填充数据之前,用自己加的自定义字段过滤待填充数据。
我们提供的接口:
二开插件代码,可以只过滤预测单或者只过滤冲销单据,也可以一起过滤:
using Kingdee.BOS.Orm.DataEntity; using Kingdee.BOS.Util; using Kingdee.K3.Core.MFG.EntityHelper; using System; using System.Collections.Generic; using System.ComponentModel; namespace Kingdee.K3.MFG.PLN.Business.PlugIn.DynamicForm.WizardForm { [Description("多组织预测冲销向导二开数据过滤表单插件")] public class MyMultiOrgWriteOffWizardPlugIn : MultiOrgWriteOffWizardPlugIn { public override BOS.Orm.DataEntity.DynamicObjectCollection CustomFilter(BOS.Orm.DataEntity.DynamicObjectCollection writeOffDatas) { //获取界面上自定义过滤字段的值 DynamicObject Cust = (DynamicObject)this.View.Model.GetValue("FABCCustId"); if (!Cust.IsNullOrEmpty()) { List<DynamicObject> needRemoveData = new List<DynamicObject>(); //writeOffDatas是第二步中左右两边所有的销售订单、组织间需求单、预测单的集合 foreach (DynamicObject data in writeOffDatas) { //预测单 //if ("A".Equals(data.GetDynamicObjectItemValue<string>(CONST_REQ_WriteOffBillData.CONST_FBillHead.ORM_BillCategory))) //{ //} //冲销单据,"B",指的是销售订单和组织间需求单 //else //{ //} if (data.GetDynamicObjectItemValue<long>("CustID_Id") != (Convert.ToInt64(Cust["Id"]))) { needRemoveData.Add(data); } } if (!needRemoveData.IsEmpty()) { foreach (DynamicObject delData in needRemoveData) { writeOffDatas.Remove(delData); } } } return writeOffDatas; } } }
赞 9
9人点赞
还没有人点赞,快来当第一个点赞的人吧!
打赏
0人打赏
还没有人打赏,快来当第一个打赏的人吧!