物料供需状态典型二开方法

【应用场景】
物料供需状态标准系统提供汇总、时段及明细三种数据展示方式。但特定场景下仍无法完全满足客户数据的展示需求,此时就需要对该表单做一些数据加工以展示合适的数据格式。
【注意事项】
本方案主要是加工数据展示格式,不会实现具体逻辑,只是演示实现思路。本方案也不干预物料供需状态标准取数逻辑,实际上物料供需状态的供需数据获取与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");
DynamicObjectColl
物料供需状态典型二开方法
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。



