二开案例.单据插件.字段解锁

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

二开案例.单据插件.字段解锁

【应用场景】

通过插件方式,给被禁用的字段解锁。

【案例演示】

重新审核状态的物料,通过实体服务规则将物料分组字段锁定,通过插件,解锁物料分组字段。

【实现步骤】

<1>编写单据插件,代码如下。

using Kingdee.BOS.Core.Bill.PlugIn;

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

using Kingdee.BOS.Util;

using System;

using System.ComponentModel;


namespace Jac.XkDemo.BOS.Business.PlugIn

{

    /// <summary>

    /// 【单据插件】字段解锁

    /// </summary>

    [Description("【单据插件】字段解锁"), HotUpdate]

    public class UnLockFieldBillPlugIn : AbstractBillPlugIn

    {

        public override void BarItemClick(BarItemClickEventArgs e)

        {

            base.BarItemClick(e);

            if (e.BarItemKey.Equals("tbUnLock",StringComparison.OrdinalIgnoreCase))

            {

                // 解锁物料分组字段

                // 解锁实体服务规则产生的锁定控制

                var entityServiceRuleUd = "14642d1f-46c6-4afa-aa52-f7e19a21c776";// 实体服务规则的内码要去元数据XML中获取

                this.View.StyleManager.SetEnabled("FMaterialGroup", entityServiceRuleUd, true);

                // 解锁单据状态产生的锁定控制

                this.View.StyleManager.SetEnabled("FMaterialGroup", "BillStatusByHead", true);

                // 解锁其它未知的锁定控制

                this.View.StyleManager.SetEnabled("FMaterialGroup", "", true);

                this.View.ShowMessage("字段已解锁!");

            }

        }

    }

}


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


<3>BOSIDE扩展物料,菜单集合添加菜单项,单据头物料添加实体服务规则,注册表单插件,保存元数据,开发完毕。

添加实体服务规则:

获取实体服务规则内码:

Python插件注册方式如下图。



【功能验证】

<1>登录业务站点,打开物料列表,打开状态为重新审核的物料的编辑界面,此时受实体服务规则控制,物料分组字段被禁用。

点击解锁菜单后,物料分组字段解锁。


<2>打开物料列表,打开状态为已审核的物料的编辑界面,此时受状态字段的控制,物料分组字段被禁用。

---------------------------------------------------------------------------------------------------------

【参考学习】

<1>字段的锁定性采用的组合策略模式,通过表决器的方式最终决定字段的锁定性。

举例来说,可以使用N种方式去锁定一个字段,例如通过状态控制,实体服务规则控制,插件控制等,只要任意一种锁定方式生效了,该字段就是锁定状态,只有所有锁定方式都解锁了,该字段才会真的解锁。

<2>通过调试插件,逐层展开View.StyleManager,可以观察到当前字段被哪些锁定策略控制。

被实体服务规则锁定时,策略标识为实体服务规则的内码:

被单据状态锁定时,策略标识固定为BillStatusByHead:

---------------------------------------------------------------------------------------------------------













【金蝶云星空BOS二次开发案例演示】https://vip.kingdee.com/article/94751030918525696

【Python】【单据插件】字段解锁.rar

【单据插件】字段解锁.rar

二开案例.单据插件.字段解锁

【应用场景】通过插件方式,给被禁用的字段解锁。【案例演示】重新审核状态的物料,通过实体服务规则将物料分组字段锁定,通过插件,解锁物...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息