去除系统内置的实体服务规则-物料去除默认仓库对发料仓库的影响原创
金蝶云社区-亦木丶
亦木丶
2人赞赏了该文章 293次浏览 未经作者许可,禁止转载编辑于2021年11月16日 09:08:46

应用场景:去除标准系统内置的实体服务规则,减少业务关联。eg:物料去除默认仓库对发料仓库的影响

1,二开表单插件

using System.Text;

using System.ComponentModel;

using Kingdee.BOS.Core.Bill.PlugIn;

using Kingdee.BOS.Core.DependencyRules;

using Kingdee.BOS.Util;

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

using Kingdee.BOS.Core.Metadata.EntityElement;

using Kingdee.BOS.Orm.DataEntity;

using Kingdee.K3.Core.MFG.EntityHelper;


namespace JTSK.Kingdee.K3.MFG.PRD.Business.PlugIn

{

    public class MoQtyChangeEdit : AbstractBillPlugIn

    {

        public override void OnInitialize(global::Kingdee.BOS.Core.DynamicForm.PlugIn.Args.InitializeEventArgs e)

        {

            base.OnInitialize(e);

            System.Collections.ObjectModel.Collection<BOSRule> rules = new System.Collections.ObjectModel.Collection<BOSRule>();

            foreach (var rule in this.View.RuleContainer.Rules)

            {

                if (rule.DependencyFields.Count == 1)

                {

                    string fieldKey = rule.DependencyFields.FirstOrDefault().Field.Key;

                    //去除默认仓库对发料仓库的影响

                    //区分是bos配置的还是系统内置,两种形式(实体上配置的服务规则,插件创建的服务规则)

                    if (fieldKey.EqualsIgnoreCase("FStockId")&&rule.ToString().ConTains("插件创建的服务规则"))

                    {

                        rules.Add(rule);

                        break;

                    }

                }

            }


            if (!rules.IsEmpty()&&rules.Count<=2)

            {

                this.View.RuleContainer.Rules.Remove(rules);

            }

        }

    }

}

2,注册到对应单据的表单插件中


图标赞 2
2人点赞
还没有人点赞,快来当第一个点赞的人吧!
图标打赏
0人打赏
还没有人打赏,快来当第一个打赏的人吧!

您的鼓励与嘉奖将成为创作者们前进的动力,如果觉得本文还不错,可以给予作者创作打赏哦!

请选择打赏金币数 *

10金币20金币30金币40金币50金币60金币
可用金币: 0