计划方案 |
您所在的位置:网站首页 › 如何写dll › 计划方案 |
计划方案运算范围参数业务规则比较复杂,各独立需求单据并非可无差别勾选,系统内置有复杂的联动逻辑。具体可参照相关的微课件等。如:计划七天课程—计划方案(1)组织参数,运算范围,需求参数,供给参数 (kingdee.com) 但实际上存在一些特殊的业务场景,确实是需要在计划方案运算范围参数同时勾选MPS计划订单和销售订单和预测单,请在明确实际业务确定有需求的前提下,参照本贴介绍的以下步骤来实现: 一、编写二开表单插件,继承自标准的计划方案表单插件Kingdee.K3.MFG.PLN.Business.PlugIn.Base.PlanSchemaEdit(须引用组件Kingdee.K3.MFG.PLN.Business.PlugIn.dll才能继承到该插件),示例代码如下: using System; using System.Collections.Generic; using System.Linq; using System.Text; using Kingdee.BOS.Util; using Kingdee.BOS.Core.Metadata.EntityElement; using Kingdee.BOS.Orm.DataEntity; using Kingdee.K3.Core.MFG.EntityHelper; namespace Test_Cust_220718.K3.MFG.PLN.Business.PlugIn.Base { public class Test_PlanSchemaEdit : Kingdee.K3.MFG.PLN.Business.PlugIn.Base.PlanSchemaEdit { public override void DataChanged(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.DataChangedEventArgs e) { if (e.Field.Key.EqualsIgnoreCase("FDSIsSelect")) { EntryEntity dsEntity = this.View.BusinessInfo.GetEntryEntity("FDSEntity"); DynamicObjectCollection dsEntrys = this.View.Model.GetEntityDataObject(dsEntity); DynamicObject dsEntry = dsEntrys[e.Row]; string formType = dsEntry.GetDynamicValue("FormType"); List oldEntrys = new List(); if (formType.Equals("5")) { //当前选MPS计划订单 foreach (DynamicObject item in dsEntrys) { string tmpFormType = item.GetDynamicValue("FormType"); if (tmpFormType.Equals("1") || tmpFormType.Equals("2")) { bool oldSelect = item.GetDynamicValue("IsSelect"); oldEntrys.Add(new Tuple(item, oldSelect)); } } base.DataChanged(e); } else if (formType.Equals("1") || formType.Equals("2")) { //当前选择预测单或销售订单 foreach (DynamicObject item in dsEntrys) { string tmpFormType = item.GetDynamicValue("FormType"); if (tmpFormType.Equals("5")) { bool oldSelect = item.GetDynamicValue("IsSelect"); oldEntrys.Add(new Tuple(item, oldSelect)); } } base.DataChanged(e); } else { base.DataChanged(e); } if (!oldEntrys.IsEmpty()) { foreach (var oldEntry in oldEntrys) { oldEntry.Item1["IsSelect"] = oldEntry.Item2; } this.View.UpdateView("FDSEntity"); } } else { base.DataChanged(e); } } } } 二、BOS元数据上找到:生产制造》计划管理》基础资料》计划方案,扩展并注册二开的表单插件,同时取消标准的表单插件,如下图: 三、清除缓存,在前端编辑计划方案,可实现运算范围参数MPS计划订单和销售订单/预测单同时勾选: 最后,须再次明确,实现本贴方案一定是在明确实际业务确定有需求为前提,因为本方案会扩展运算范围。 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |