PLM.变更单二开.自定义标记完成功能校验

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

PLM.变更单二开.自定义标记完成功能校验

【应用场景】

变更单审核过程中,对于“标记完成”功能自定义校验逻辑。


【案例演示】

非变更单负责人无法执行标记完成功能


【实现说明】

由于“标记完成”功能是通过EntryBarItemClick事件触发的,无法通过操作事件阻止。因此只能通过重写标准插件,拦截按钮事件实现。


【实现步骤】

如果你刚接触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>编写表单插件,添加引用:


<2>新增自定义类,继承PLM标准功能插件ECNBill 重写EntryBarItemClick事件,拦截对应的按钮点击事件加入自定义校验逻辑,如果校验不通过则提示后返回,否则调用Base方法继续执行标准逻辑。


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

using Kingdee.K3.PLM.STD.Business.PlugIn.EngineeringChange;

using System;

using System.ComponentModel;


namespace ISV.PLM.ECNDemo

{

    [Description("ECN标记完成校验示例")]

    public class ECNMarkFinishedValidator: ECNBill

    {

        public override void EntryBarItemClick(BarItemClickEventArgs e)

        {

            if (e.BarItemKey.ToUpper() == "TBMARKFINISH")

            {

                if (this.PLMContext.BOSContext.UserId != Convert.ToInt64(this.View.Model.GetValue("FCHARGEUSERID_ID")))

                {

                    this.View.ShowErrMessage("非执行人!");

                    e.Cancel = true;

                    return; // 如果存在校验问题,则直接退出,不再执行后续逻辑

                }

            }

            base.EntryBarItemClick(e); // 此处必须调用base,正常执行标准逻辑

        }

    }

}


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

<4>打开BOSIDE,找到单据【变更单】。 扩展并将标准插件替换成二开的插件


<5>保存后,PLM管理者账户登录站点。在PLM业务类型初始化中,更新变更单业务类型。更新完成后即可查看效果。


PLM.变更单二开.自定义标记完成功能校验

【应用场景】变更单审核过程中,对于“标记完成”功能自定义校验逻辑。【案例演示】非变更单负责人无法执行标记完成功能。【实现说明】由于...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息