计划方案-运算范围如何能同时勾选“MPS计划订单”和“销售订单/预测单”?

计划方案运算范围参数业务规则比较复杂,各独立需求单据并非可无差别勾选,系统内置有复杂的联动逻辑。具体可参照相关的微课件等。如:计划七天课程—计划方案(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<string>("FormType");
List<Tuple<DynamicObject, bool>> oldEntrys = new List<Tuple<DynamicObject, bool>>();
if (formType.Equals("5"))
{ //当前选MPS计划订单
foreach (DynamicObject item in dsEntrys)
{
string tmpFormType = item.GetDynamicValue<string>("FormType");
if (tmpFormType.Equals("1") || tmpFormType.Equals("2"))
{
bool oldSelect = item.GetDynamicValue<bool>("IsSelect");
oldEntrys.Add(new Tuple<DynamicObject, bool>(item, oldSelect));
}
}
base.DataChanged(e);
计划方案-运算范围如何能同时勾选“MPS计划订单”和“销售订单/预测单”?
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。



