二开产品配置的自定义字段填写到保存之后的BOM原创
金蝶云社区-快乐的八宝鱼
快乐的八宝鱼
5人赞赏了该文章 862次浏览 未经作者许可,禁止转载编辑于2023年11月14日 10:26:16
封面

一、针对产品配置一些自定义的逻辑,有一些小技巧的二开方法可以使用

     (1)表单插件自定义字段填写到保存之后的BOM中,例如表头自定义分组字段填写至新bom

             <1>通过继承表单插件【BOMConfigEdit】,然后重写方法【AfterBarItemClick】如

using Kingdee.BOS.Orm.DataEntity;
using Kingdee.K3.MFG.ENG.Business.PlugIn.Base;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using Kingdee.K3.Core.MFG.EntityHelper;
using Kingdee.BOS.ServiceHelper;
using Kingdee.BOS.Core.Bill.PlugIn;
using Kingdee.BOS.Core.DynamicForm.PlugIn.ControlModel;

[Description("继承标准产品配置单据插件-界面控制")]
    public class ExtBomCfgExtendEdit : BOMConfigEdit
    {
        public override void AfterBarItemClick(BOS.Core.DynamicForm.PlugIn.Args.AfterBarItemClickEventArgs e)
        {
            base.AfterBarItemClick(e);
            switch (e.BarItemKey)
            {
                case "tbSave":
                case "tbSplitSave":
                    List<DynamicObject> afterSaveDataLst = base.standBomDatas;
                    long bomGroupId = this.View.Model.DataObject.GetDynamicValue<long>("GROUP_Id");
                    if (bomGroupId == 0) return;
                    foreach (var afterSaveData in afterSaveDataLst)
                    {
                        afterSaveData.SetDynamicObjectItemValue("Group_Id", bomGroupId);
                    }
                    BusinessDataServiceHelper.Save(this.View.Context, afterSaveDataLst.ToArray());
                    break;
            }
        }
    }

  注意:如果是自定义的拼接逻辑,需要重载BarItemClick方法,在执行Base方法之前,编写自己的拼接逻辑。

二开此处之后,选项参数-保存后自动提交,提交后自动审核不能勾选,如下图所示;

上传图片

注册插件时,需要取消标准插件的启用,如图所示:

image.png


赞 5