二开案例.单据插件.页签显示隐藏

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

二开案例.单据插件.页签显示隐藏

【应用场景】插件控制页签控件的显示和隐藏。

【案例演示】采购订单,插件控制【基本】页签的显示和隐藏。

【实现步骤】

<1>编写单据插件,控制页签控件的显示和隐藏,代码如下。

using Kingdee.BOS.Core.Bill.PlugIn;

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

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

using Kingdee.BOS.Core.Metadata;

using Kingdee.BOS.Util;

using System.ComponentModel;


namespace Jac.XkDemo.BOS.Business.PlugIn

{

    /// <summary>

    /// 【单据插件】页签显示隐藏

    /// </summary>

    [Description("【单据插件】页签显示隐藏"), HotUpdate]

    public class TabControlShowHideBillPlugIn : AbstractBillPlugIn

    {

        /// <summary>

        /// 主菜单点击事件

        /// </summary>

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

        public override void BarItemClick(BarItemClickEventArgs e)

        {

            base.BarItemClick(e);

            // 获取页签控件

            var tabControl = this.View.GetControl<TabControl>("FHeadTab");

            if (e.BarItemKey == "tbHide")

            {

                // 隐藏某个页签

                tabControl.HideTabItem("FHeadBasePage".ToUpper());

                this.View.ShowMessage("页签已隐藏");

                return;

            }


            if (e.BarItemKey == "tbShow")

            {

                // 显示某个页签

                tabControl.ShowTabItem("FHeadBasePage".ToUpper());

                this.View.ShowMessage("页签已显示");

                return;

            }


        }


        public override void AfterBindData(EventArgs e)

        {

            base.AfterBindData(e);

            // 如果是在AfterBindData事件中,因为存在指令先后冲突问题,需要改用以下方法进行显示隐藏处理。

            var tabControl = this.View.GetControl<TabControl>("FHeadTab");

            //tabControl.AftInvokeControlMethod("ShowTabItem", "FHeadBasePage".ToUpper());

            //tabControl.AftInvokeControlMethod("ShowTabItem", "FHeadBasePage".ToUpper());

        }


        /// <summary>

        /// 如果页签的可见性的【查看状态可见】被设置为不可见,会导致ShowTabItem和HideTabItem失效,此时就只能强行修改元数据了。

        /// </summary>

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

        public override void OnSetLayoutInfo(SetLayoutInfoArgs e)

        {

            base.OnSetLayoutInfo(e);

            //var metaData = (FormMetadata) ObjectUtils.CreateCopy(this.View.OpenParameter.FormMetaData);

            //var layoutInfo = metaData.GetLayoutInfo();

            //var tabPage = metaData.GetLayoutInfo().GetAppearance("FHeadBasePage");

            //tabPage.Visible = 395263;

            //tabPage.VisibleExt = "11111101";

            //e.LayoutInfo = layoutInfo;

            //e.BillLayoutInfo = layoutInfo;

        }

    }

}


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


<3>BOSIDE扩展采购订单,菜单添加两个菜单。


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




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


如果未生效,可退回到登录主界面,清除下本地缓存。







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

二开案例.单据插件.页签显示隐藏

【应用场景】插件控制页签控件的显示和隐藏。【案例演示】采购订单,插件控制【基本】页签的显示和隐藏。【实现步骤】<1>编写单据插件,控...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息