二开案例.表单插件.选单界面控制可选的源单

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

二开案例.表单插件.选单界面控制可选的源单

【应用场景】

选单操作,在选单界面上,通过插件控制可选的源单。


【案例演示】

采购订单,选单操作,设置采购订单仅允许选择采购申请单作为上游单。


【实现步骤】

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

using Kingdee.BOS.Core;

using Kingdee.BOS.Core.DynamicForm;

using Kingdee.BOS.Core.DynamicForm.PlugIn;

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

using Kingdee.BOS.Core.Metadata.ConvertElement;

using Kingdee.BOS.Util;

using System.Collections.Generic;

using System.ComponentModel;

using System.Linq;


namespace Jac.XkDemo.BOS.Business.PlugIn

{

    /// <summary>

    /// 【表单插件】选单界面控制可选的源单

    /// </summary>

    [Description("【表单插件】选单界面控制可选的源单"), HotUpdate]

    public class DrawFormSetSourceBillFormPlugIn : AbstractDynamicFormPlugIn

    {

        public override void OnInitializeService(InitializeServiceEventArgs e)

        {

            base.OnInitializeService(e);

            if (this.View.ParentFormView == null)

            {

                return;

            }


            var convertType = (FormOperationEnum)this.View.OpenParameter.GetCustomParameter("OperationNumber");

            if (convertType == FormOperationEnum.Draw)

            {

                // 选单操作 

                var targetFormId = this.View.ParentFormView.BillBusinessInfo.GetForm().Id;

                if (targetFormId.EqualsIgnoreCase("PUR_PurchaseOrder"))

                {

                    // 设置采购订单只能从采购申请单选单

                    var sessionName = FormConst.ConvParamKey_BillsSessionName;

                    if (this.View.ParentFormView.Session.ContainsKey(sessionName))

                    {

                        var convertOpData = this.View.ParentFormView.Session[sessionName] as Dictionary<string, object>;

                        if (convertOpData != null)

                        {

                            var bills = convertOpData["Bills"] as List<ConvertBillElement>;

                            if (bills != null)

                            {

                                convertOpData["Bills"] = bills.Where(o => o.FormID.EqualsIgnoreCase("PUR_Requisition")).ToList();

                            }

                        }

                    }

                }

            }

        }

    }

}


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


<3>BOSIDE扩展【单据转换操作界面(BOS_ConvertOpForm),注册表单插件,保存元数据,开发完毕。


【功能验证】

<1>登录业务站点,打开采购订单新增界面,执行选单,此时源单可选列表里只剩下采购申请单。

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













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

二开案例.表单插件.选单界面控制可选的源单

【应用场景】选单操作,在选单界面上,通过插件控制可选的源单。【案例演示】采购订单,选单操作,设置采购订单仅允许选择采购申请单作为上...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息