计划方案-运算范围如何能同时勾选“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);
}
else if (formType.Equals("1") || formType.Equals("2"))
{ //当前选择预测单或销售订单
foreach (DynamicObject item in dsEntrys)
{
string tmpFormType = item.GetDynamicValue<string>("FormType");
if (tmpFormType.Equals("5"))
{
bool oldSelect = item.GetDynamicValue<bool>("IsSelect");
oldEntrys.Add(new Tuple<DynamicObject, bool>(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计划订单和销售订单/预测单同时勾选:
最后,须再次明确,实现本贴方案一定是在明确实际业务确定有需求为前提,因为本方案会扩展运算范围。
计划方案-运算范围如何能同时勾选“MPS计划订单”和“销售订单/预测单”?
本文2024-09-23 03:15:55发表“云星空知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-k3cloud-157750.html
- 鼎捷EAI整合規範文件V3.1.07 (集團).pdf
- 鼎捷OpenAPI應用場景說明_基礎資料.pdf
- 鼎捷OpenAPI應用場景說明_財務管理.pdf
- 鼎捷T100 API設計器使用手冊T100 APIDesigner(V1.0).docx
- 鼎新e-GoB2雲端ERP B2 線上課程E6-2應付票據整批郵寄 領取.pdf
- 鼎新e-GoB2雲端ERP B2 線上課程A4使用者建立權限設定.pdf
- 鼎新e-GoB2雲端ERP B2 線上課程C3會計開帳與會計傳票.pdf
- 鼎新e-GoB2雲端ERP B2 線上課程E6-1應付票據.pdf
- 鼎新e-GoB2雲端ERP B2 線上課程A5-1進銷存參數設定(初階篇).pdf
- 鼎新e-GoB2雲端ERP B2 線上課程D2帳款開帳與票據開帳.pdf