PLM.BOM变更.自定义字段.显示子物料的最新变更单编码

栏目:云星空知识作者:金蝶来源:金蝶云社区发布:2024-09-23浏览:1

PLM.BOM变更.自定义字段.显示子物料的最新变更单编码

【应用场景】

BOM变更中添加自定义字段,并显示自定义内容

【案例演示】

BOM变更中,选择子物料后,能够显示该物料最近的一次变更单编码

【实现步骤】

如果你刚接触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中,找到“BOM变更单”单据并扩展,在单据体中加入自定义的字段,并锁定。

* 字段标识请尽量避免与PDM关系扩展中的字段标识区分,例如使用FECN_XXX,以避免可能存在的动态字段加载冲突


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

<3>新增自定义类

继承标准插件AbstractPLMDynamicFormPlugIn重写DataChanged事件,通过脚本获取物料的最新变更单编码。


示例代码:

using Kingdee.BOS;

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

using Kingdee.K3.PLM.Business.PlugIn;

using Kingdee.K3.PLM.Common.Core.Utility;

using System;

using System.Collections.Generic;

using System.ComponentModel;


namespace ISV.PLM.ECNDemo

{

    [Kingdee.BOS.Util.HotUpdate]

    [Description("BOM变更单自定义字段示例")]

    public class BOMEChangePlugin : AbstractPLMDynamicFormPlugIn

    {

        private const string QueryScript =

            @"SELECT TOP 1 BA.FID, BA.FCODE

FROM T_PLM_STD_EC_ITEM IT

    INNER JOIN T_PLM_PDM_BASE BA ON IT.FID = BA.FID

    AND BA.FCATEGORYID >= 1070200000000000000 AND BA.FCATEGORYID< 1070300000000000000 -- 过滤变更单

    AND BA.FLIFECIRCLESTAGE = 'AI' -- 完成状态

WHERE FBASEOBJECT = @Id -- 变更对象内码

order by FID DESC

";


        public override void DataChanged(DataChangedEventArgs e)

        {

            if (e.Field.Key.ToUpper() == "FSLAVEMAT")

            {

                var matId = Convert.ToInt64(e.NewValue);

                var ecnCode = QueryLastestEcn(matId);

                this.View.Model.SetValue("FMatEcnCode", ecnCode, e.Row);

            }

            base.DataChanged(e);

        }


        private string QueryLastestEcn(long id)

        {

            var ecnCode = string.Empty;

            var lst = new List<SqlParam> { new SqlParam("@Id", KDDbType.Int64, id) };

            using (var reader = PLMDBUtils.Instance.ExecuteReader(PLMContext, QueryScript, lst))

            {

                while (reader.Read())

                {

                    ecnCode = reader["FCODE"].ToString();

                }

            }

            return ecnCode;

        }

    }

}



<4>拷贝组件

拷贝插件组件到应用站点的WebSite\Bin目录下,重启IIS

<5>注册插件

打开BOSIDE,找到单据【BOM变更单】。 注册自定义插件

<6>保存后,清理一下站点元数据缓存


PLM.BOM变更.自定义字段.显示子物料的最新变更单编码

【应用场景】BOM变更中添加自定义字段,并显示自定义内容。【案例演示】BOM变更中,选择子物料后,能够显示该物料最近的一次变更单编码。【...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息