二开案例.单据插件.控件可用性(启用/禁用)设置
【应用场景】设置字段,菜单,按钮的状态为启用/禁用。
【案例演示】采购订单主菜单新增【启用】,【禁用】菜单,分别控制单据编号、禁用菜单和按钮的可用性,如下图所示。
启用状态:
禁用状态:
【实现步骤】
<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
二开案例.单据插件.控件可用性(启用/禁用)设置
本文2024-09-23 04:18:21发表“云星空知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-k3cloud-164458.html