二开案例.单据插件.控件可用性(启用/禁用)设置

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

二开案例.单据插件.控件可用性(启用/禁用)设置

【应用场景】设置字段,菜单,按钮的状态为启用/禁用。

【案例演示】采购订单主菜单新增【启用】,【禁用】菜单,分别控制单据编号、禁用菜单和按钮的可用性,如下图所示。

启用状态:

禁用状态:




【实现步骤】

<1>扩展采购订单,主菜单新增【启用】(tbEnable),【禁用】(tbDisable),新增按钮【好的】(FBTNOK)。


<2>新增表单插件,代码如下。

using Kingdee.BOS.Core.Bill.PlugIn;

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

using Kingdee.BOS.Util;

using System.ComponentModel;


namespace Jac.XkDemo.BOS.Business.PlugIn

{

    /// <summary>

    /// 【单据插件】控件启用禁用演示

    /// </summary>

    [Description("【单据插件】控件启用禁用演示"), HotUpdate]

    public class EnableDisableBillPlugIn : AbstractBillPlugIn

    {

        /// <summary>

        /// 主菜单点击事件

        /// </summary>

        /// <param name="e"></param>

        public override void BarItemClick(BarItemClickEventArgs e)

        {

            base.BarItemClick(e);

            if (e.BarItemKey == "tbEnable")

            {

                // 设置菜单可用性

                this.View.GetMainBarItem("tbDisable").Enabled = true;

                // 设置字段可用性

                this.View.GetControl("FBillNo").Enabled = true;

                //this.View.StyleManager.SetEnabled("FBillNo", "", true);

                // 设置单据体列可用性

                this.View.GetControl("FMaterialId").Enabled = true;

                // 设置按钮可用性

                this.View.GetControl("FBTNOK").Enabled = true;

                this.View.ShowMessage("已启用!");

            }

            if (e.BarItemKey == "tbDisable")

            {

                this.View.GetMainBarItem("tbDisable").Enabled = false;

                this.View.GetControl("FBillNo").Enabled = false;

                //this.View.StyleManager.SetEnabled("FBillNo", "", false);

                this.View.GetControl("FMaterialId").Enabled = false;

                this.View.GetControl("FBTNOK").Enabled = false;

                this.View.ShowMessage("已禁用!");

            }

        }

    }

}



Python插件代码如下:

def BarItemClick(e):

    if (e.BarItemKey == "tbEnable"):

        # 设置菜单可用性

        this.View.GetMainBarItem("tbDisable").Enabled = True

        # 设置字段可用性

        this.View.GetControl("FBillNo").Enabled = True;

        # 设置单据体列可用性

        this.View.GetControl("FMaterialId").Enabled = True;

        # 设置按钮可用性

        this.View.GetControl("FBTNOK").Enabled = True;

        this.View.ShowMessage("python:已启用!");

        return;

    if (e.BarItemKey == "tbDisable"):

       this.View.GetControl("FMaterialId").Enabled = False;

        this.View.GetControl("FBillNo").Enabled = False;

        this.View.GetMainBarItem("tbDisable").Enabled = False;

        this.View.GetControl("FBTNOK").Enabled = False;

        this.View.ShowMessage("python:已禁用!");

        return;


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


<4>注册表单插件,保存元数据,开发完毕。


如果使用Python插件可参考下图:


现在可以登录业务站点,打开采购订单,检验一下控制效果啦。

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

【注意事项】

请不要在OnLoad事件中去锁定解锁字段,请至少推迟到AfterBindData事件中执行。

因为OnLoad事件之后,平台层面还有很多业务逻辑要处理,很可能会覆盖掉您在二开代码中设置的字段的锁定性。

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













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



二开案例.单据插件.控件可用性(启用/禁用)设置

【应用场景】设置字段,菜单,按钮的状态为启用/禁用。【案例演示】采购订单主菜单新增【启用】,【禁用】菜单,分别控制单据编号、禁用菜...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息