二开:新增简单生产入库单到简单生产领料单的单据转换

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

二开:新增简单生产入库单到简单生产领料单的单据转换

  • 背景:

因为客户那边是贸易企业不做BOM; 需要用【简单生产入库单】下推【简单生产领料单】领料单就是领用入库单的物料本身,所以需要自己配置单据转换; 把系统预设的【BOM展开】下推【简单生产领料】的单据转换停用了;然后自己另外新增了【简单生产入库单】下推【简单生产领料单】的单据转换; 但是在系统下推时是选不到这个单据转换的,被系统强制控制了

  • 操作步骤:

2、涉及简单生产领料的选单,简单生产入库的单据内下推,简单生产入库的列表下推,具体步骤:

  1. 停用BOM正向展开模型(禁止发布)-》简单生产领料单的单据转换.

  2. 停用简单生产入库单-简单生产领料单标准单据转换

  3. 新建简单生产入库单到简单生产领料单的单据转换,并配置字段映射(案例只配置了下推需要,如果有其他的可以在配置)


    2.4、二开简单生产领料的表单插件(单据选单)

  • 继承插件AbstractBillPlugIn,并将插件注册在简单生产领料单表单插件最后 

  • 重写OnGetConvertRule

  • 具体实现:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using Kingdee.BOS.Core.Bill.PlugIn;
using Kingdee.BOS.Core.DynamicForm;
using Kingdee.BOS.Core.List.PlugIn.Args;
using Kingdee.BOS.Core.Metadata.ConvertElement;
using Kingdee.BOS.ServiceHelper;
using Kingdee.K3.Core.SCM;

namespace ITIBB.App.ServicePlugIn.Business.PlugIn
{
    [Description("简单生产领料单单表单插件")]
    public class ExtSpPickMtrlEdit:AbstractBillPlugIn
    {
        public override void OnGetConvertRule(GetConvertRuleEventArgs e)
        {
            base.OnGetConvertRule(e);
            if (e.ConvertOperation == FormOperationEnum.Draw && (e.TargetFormId == SCMFormIdConst.SpPickMtrlBill))
            {
                ConvertRuleElement rule = ConvertServiceHelper.GetConvertRules(this.Context, SCMFormIdConst.SpInStockBill, e.TargetFormId).FirstOrDefault();
                if (rule != null)
                {
                    e.Rule = rule;
                }
            }
        }
    }
}

2.4、二开简单生产入库的表单插件(单据下推)

  • 继承插件AbstractBillPlugIn,并将插件注册在简单生产入库单表单插件最后

  • 重写OnGetConvertRule和OnShowConvertOpForm

  • 具体实现:

using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using Kingdee.BOS.Core.Bill.PlugIn;
using Kingdee.BOS.Core.DynamicForm;
using Kingdee.BOS.Core.List.PlugIn.Args;
using Kingdee.BOS.Core.Metadata.ConvertElement;
using Kingdee.BOS.ServiceHelper;
using Kingdee.BOS.Util;
using Kingdee.K3.Core.SCM;

namespace ITIBB.App.ServicePlugIn.Business.PlugIn
{
    [Description("简单生产入库单表单插件")]
    public class ExtSpInStockEdit : AbstractBillPlugIn
    {
        public override void OnGetConvertRule(GetConvertRuleEventArgs e)
        {
            base.OnGetConvertRule(e);
            if (e.ConvertOperation == FormOperationEnum.Push && (e.TargetFormId == SCMFormIdConst.SpPickMtrlBill))
            {
                ConvertRuleElement rule = ConvertServiceHelper.GetConvertRules(this.Context, SCMFormIdConst.SpInStockBill, e.TargetFormId).FirstOrDefault();
                if (rule != null)
                {
                    e.Rule = rule;
                }
            }
        }

        public override void OnShowConvertOpForm(ShowConvertOpFormEventArgs e)
        {
            base.OnShowConvertOpForm(e);
            if (e.ConvertOperation == FormOperationEnum.Push
                && e.Bills is List<ConvertBillElement>)
            {
                if (!e.ReplaceRelations.IsEmpty())
                {
                    ReplaceRelation replaceRelation = e.ReplaceRelations.Where(x => x.SourceFormId.EqualsIgnoreCase("ENG_BomExpandBill")).FirstOrDefault();
                    if (!replaceRelation.IsNullOrEmpty())
                    {
                        e.ReplaceRelations.Remove(replaceRelation);
                    }
                }
            }
        }
    }
}

2.5、二开简单生产入库单的列表插件(列表下推)

  • 继承插件AbstractListPlugIn,并将插件注册在简单生产入库单列表插件最后;

  • 重写OnGetConvertRule和OnShowConvertOpForm

  • 具体实现:

using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using Kingdee.BOS.Core.DynamicForm;
using Kingdee.BOS.Core.List.PlugIn;
using Kingdee.BOS.Core.List.PlugIn.Args;
using Kingdee.BOS.Core.Metadata.ConvertElement;
using Kingdee.BOS.ServiceHelper;
using Kingdee.BOS.Util;
using Kingdee.K3.Core.SCM;

namespace ITIBB.App.ServicePlugIn.Business.PlugIn
{
    [Description("简单生产入库单列表插件")]
    public class ExtSpInStockList : AbstractListPlugIn
    {
        public override void OnGetConvertRule(GetConvertRuleEventArgs e)
        {
            base.OnGetConvertRule(e);
            if (e.ConvertOperation == FormOperationEnum.Push && (e.TargetFormId == SCMFormIdConst.SpPickMtrlBill))
            {
                ConvertRuleElement rule = ConvertServiceHelper.GetConvertRules(this.Context, SCMFormIdConst.SpInStockBill, e.TargetFormId).FirstOrDefault();
                if (rule != null)
                {
                    e.Rule = rule;
                }
            }
        }

        public override void OnShowConvertOpForm(ShowConvertOpFormEventArgs e)
        {
            base.OnShowConvertOpForm(e);
            if (e.ConvertOperation == FormOperationEnum.Push
                && e.Bills is List<ConvertBillElement>)
            {
                if (!e.ReplaceRelations.IsEmpty())
                {
                    ReplaceRelation replaceRelation = e.ReplaceRelations.Where(x => x.SourceFormId.EqualsIgnoreCase("ENG_BomExpandBill")).FirstOrDefault();
                    if (!replaceRelation.IsNullOrEmpty())
                    {
                        e.ReplaceRelations.Remove(replaceRelation);
                    }
                }
            }
        }
    }
}
  • 效果演示


二开:新增简单生产入库单到简单生产领料单的单据转换

背景:因为客户那边是贸易企业不做BOM;需要用【简单生产入库单】下推【简单生产领料单】领料单就是领用入库单的物料本身,所以需要自己配...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息