电脑桌面
添加蚂蚁七词文库到电脑桌面
安装后可以在桌面快捷访问

PLM.影响评估二开案例.自定义显示ERP单据字段指南

来源:金蝶云社区作者:金蝶2024-09-232

PLM.影响评估二开案例.自定义显示ERP单据字段指南

【应用场景】

变更影响评估中,新增ERP单据的单据字段,并在返回数据时显示在变更对象列表中。

【案例演示】

变更影响评估中,生产订单显示生产组织,并在返回时显示在变更对象列表中。

【设计思路】

在影响评估时,根据评估信息动态获取所需的单据信息并赋值在影响评估单据体上。并将此部分信息整合后,通过表单传值传回ECN单据中。

影响评估返回信息时,根据评估单据传递的信息,再动态赋值至变更对象单据体中,以此达到信息的一致性,也可以避免重复获值。

【实现步骤】

如果你刚接触PLM二开,你可能需要参考:

如何编写二开插件配置等请参考:二次开发扩展程序开发之插件模式https://vip.kingdee.com/article/83591896433330944?productLineId=1

其他星空PLM开发指南也可以参考 【汇总】星空PLM二开指南(持续更新)https://vip.kingdee.com/article/329914697153905408?productLineId=1&isKnowledge=2

更多详细的金蝶云星空BOS二次开发指南:https://vip.kingdee.com/article/94751030918525696?productLineId=1&isKnowledge=2

 

<1>变更单添加自定义字段

在BOSIDE中,找到“变更单”单据并扩展,在变更对象单据体中加入自定义的字段,并锁定。

<2>PLM影响评估添加自定义字段

设计变更模块中,找到动态表单“非PLM影响评估分析”并扩展,加入自定义字段并锁定

* 注意评估有子项父项的区别(结构变更时会评估子项)

* 注意表头名称中会通过&分层

<3>编写表单插件,添加引用

<4>新增影响评估插件

继承标准插件AbstractDynamicFormPlugIn。重写BeforeBindData事件,在标准插件初始化数据时,根据评估的单据类型赋值需要的信息;并将需要的信息包装后返回ECN单据。

 

示例代码:

using Kingdee.BOS;

using Kingdee.BOS.Core.DynamicForm.PlugIn;

using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;

using Kingdee.BOS.Orm.DataEntity;

using Kingdee.BOS.ServiceHelper;

using Kingdee.BOS.Util;

using Kingdee.K3.PLM.STD.Common.BusinessEntity.EngineeringChange.Relevancy;

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Linq;

 

namespace ISV.PLM.ECNDemo

{

    [HotUpdate]

    [Description("影响评估二开示例")]

    public class ERPRefevancyFormExtend : AbstractDynamicFormPlugIn

    {

        /// <summary>

        /// 评估类型,1:制造 2:供应链

        /// </summary>

        private int RefevancyType = 0;

 

        public override void OnLoad(EventArgs e)

        {

            base.OnLoad(e);

            //标准插件中的评估模型参数,用于判断评估类型

            var models = this.View.OpenParameter.GetCustomParameter("plm_param_relevancyModel") as List<ERPRelevancyModel>;

            if (models != null && models.Count > 0)

            {

                RefevancyType = models[0].RelevancyType;

            }

        }

 

        public override void BeforeBindData(EventArgs e)

        {

            //评估单据赋值需在BeforeBindData事件中实现,且插件顺序必须在标准插件之后

            if (this.View.ParentFormView != null && this.View.ParentFormView.ParentFormView != null)

            {

                var ecnView = this.View.ParentFormView.ParentFormView; //通过获取ECN表单的视图,向其传递查询信息,可以避免重复获值;

                var objectEntityF = this.Model.DataObject["EntityF"] as DynamicObjectCollection; //此为父项单据体,如果是结构变更,请考虑子项影响的场景;

                Dictionary<string, string> prd_mappings = new Dictionary<string, string>();

                foreach (var fObject in objectEntityF)

                {

                    if (fObject["BillTypeId_Id"].ToString().ToUpper() == "PRD_MO") //评估的单据标识

                    {

                        var billNo = fObject["BILLNO"].ToString();

                        var preOrg = GetPreOrg(billNo);

                        if (!string.IsNullOrWhiteSpace(preOrg))

                        {

                            this.Model.SetValue("FPrdOrg", preOrg, objectEntityF.IndexOf(fObject));

                            prd_mappings[billNo] = preOrg;

                        }

                    }

                }

                if (prd_mappings.Count > 0)

                {

                    if (RefevancyType == 1)

                    {

                        ecnView.Session["ERPRefevancyMFG"] = prd_mappings;

                    }

                    else

                    {

                        ecnView.Session["ERPRefevancyDSC"] = prd_mappings;

                    }

                }

            }

        }

 

        private string GetPreOrg(string billCode)

        {

            //此方法仅用于示例,请根据实际业务场景设计值获取逻辑。注意循环的性能影响。

            //本示例只简单演示获

PLM.影响评估二开案例.自定义显示ERP单据字段指南

【应用场景】变更影响评估中,新增ERP单据的单据字段,并在返回数据时显示在变更对象列表中。【案例演示】变更影响评估中,生产订单显示生...
点击下载文档文档为doc格式

声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。

已经是第一篇
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息
QQ群
  • 答案:my7c点击这里加入QQ群
支持邮箱
微信
  • 微信