物料供需状态典型二开方法
【应用场景】
物料供需状态标准系统提供汇总、时段及明细三种数据展示方式。但特定场景下仍无法完全满足客户数据的展示需求,此时就需要对该表单做一些数据加工以展示合适的数据格式。
【注意事项】
本方案主要是加工数据展示格式,不会实现具体逻辑,只是演示实现思路。本方案也不干预物料供需状态标准取数逻辑,实际上物料供需状态的供需数据获取与MRP取数逻辑保持同步,不建议更改。
【案例演示】
特定场景需要将物料供需状态的时段数据表格,将日期列改造成需求、库存、预计入等,并且日期按行展示,这时就适合本方案进行二开实现。
【实现步骤】
<1>编写表单插件,继承标准的物料供需状态汇总表单插件(引用组件Kingdee.K3.MFG.PLN.Business.PlugIn.dll),重写方法BindEntitys(),示例如下:
using Kingdee.BOS.Orm.DataEntity;
using Kingdee.K3.MFG.PLN.Business.PlugIn.DynamicForm.DynamicReport;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
namespace NY230313.CusSch.App.Business.PlugIn
{
[Description("客户二开供需状态表汇总表单插件")]
public class Cust_MtrlDSStateEdit : SupplyDemandStateSummary
{
protected override void BindEntitys()
{
//事先继承标准逻辑,绑定标准数据
base.BindEntitys();
//然后做二开逻辑处理,这里特别说明this.allDetailData数据包的含义:
//this.allDetailData是当前物料供需查询得到的所有明细数据的字典,结构是:Dictionary<string, List<DynamicObject>>;
//其中该字段的Key是一串字符标识(GUID),与汇总页签的一行,或时段页签的三行(需求、供应、结存)对应;
//即是说this.allDetailData每一项就对应一个物料的明细供应和库存数据;
//假设客户二在物料供需状态上增加一个表体,将明细数据加工后展示出来,示例如下:
foreach (var detailItem in this.allDetailData)
{
foreach (DynamicObject data in detailItem.Value)
{
//这里的data就是每一条明细数据,二开可从中获取相信的信息进行归类处理
//注意不要更改this.allDetailData数据包里面的值,只从中取数,实在要对数据包赋值,可以克隆出来再赋值
}
}
//留意到this.allDetailData每一项是的Key是一串字符标识(GUID),与汇总页签的一行,或时段页签的三行(需求、供应、结存)对应这句说明,以下示例阐明了如何取明细数据关联上汇总表体或明细表体的数据。
Entity sEntity = this.View.BusinessInfo.GetEntity("FSSummary");
DynamicObjectCollection sEntrys = this.View.Model.GetEntityDataObject(sEntity); //获取汇总表体数据
List<DynamicObject> currDetails = new List<DynamicObject>();
foreach (DynamicObject entry in sEntrys)
{
string rowId = entry.GetDynamicValue<string>("SRowId");
if (!this.allDetailData.TryGetValue(rowId, out currDetails)) continue; //找到汇总表体行对应的明细数据
//FSQTY是汇总表体上增加的一个数量字段
decimal sumRelaQty = entry.GetDynamicValue<decimal>("FSQTY");
foreach (DynamicObject currDetail in currDetails)
{
//FQTY是明细表体上增加的一个数量字段,这里示例的逻辑是将明细的FQTY累加到汇总表体的FSQTY
decimal tmpQty = currDetail.GetDynamicValue<decimal>("FQTY");
sumRelaQty += tmpQty;
}
entry.SetDynamicObjectItemValue("FSQTY", sumRelaQty);
}
//更新了数据包,需要执行一下面这行更新界面
this.View.UpdateView("FSSummary");
}
}
}
<2>拷贝插件组件到应用站点的..\WebSite\Bin目录下,重启IIS。
<3>BOSIDE扩展(生产制造》计划管理》动态表单》普通动态表单)物料供需状态汇总,注册并启用二开表单插件,同时取消标准的表单插件,保存元数据,开发完毕。

【功能验证】
<1>具体功能验证取决于二开的实现逻辑。对于本方案有疑问的地方,欢迎跟帖跟进。
物料供需状态典型二开方法
本文2024-09-23 03:14:57发表“云星空知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-k3cloud-157646.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