电脑桌面
添加蚂蚁七词文库到电脑桌面
安装后可以在桌面快捷访问

二开案例.下拉列表.动态填充下拉选项

来源:金蝶云社区作者:金蝶2024-09-2321

二开案例.下拉列表.动态填充下拉选项

【应用场景】某个字段发生值变化时,动态填充下拉列表字段的下拉选项。

【案例演示】采购订单,新增一个下拉列表字段,给该字段定义枚举类型为【等级】,枚举项为【A、B、C、D、E、F】,切换单据类型后,依据不同的单据类型,给该下拉列表字段填充不同的等级。


【实现步骤】

<1>采购订单,新增一个下拉列表字段,添加枚举类型定义【等级】,添加枚举项。


<2>编写单据插件,实现动态填充下拉列表字段的下拉选项的功能,代码如下。

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.Core.Metadata.FieldElement;

using Kingdee.BOS.Orm.DataEntity;

using Kingdee.BOS.Util;

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Linq;


namespace Jac.XkDemo.BOS.Business.PlugIn

{

    /// <summary>

    /// 【单据插件】填充下拉列表演示

    /// </summary>

    [Description("【单据插件】填充下拉列表演示"), HotUpdate]

    public class FillComboFieldPlugIn : AbstractBillPlugIn

    {

        public override void DataChanged(DataChangedEventArgs e)

        {

            base.DataChanged(e);

            if (e.Field.Key == "FBillTypeID")

            {

                // 如果是使用单据类型触发下拉列表的填充动作时,此事件不需要执行,此DataChanged事件的代码可整段注释掉,因为单据类型切换会引发整个页面的重新加载,需要在AfterBindData事件中填充下拉列表

                // 如果是使用非单据类型字段触发下拉列表的填充动作时,此事件需要执行,AfterBindData事件中不需要执行,对应代码块可以注释掉。

                BindComboField();

            }

        }


        public override void AfterBindData(EventArgs e)

        {

            base.AfterBindData(e);

            BindComboField();

        }


        private void BindComboField()

        {

            // 获取元数据中设计的等级的枚举项集合

            var levelEnumObjects = (DynamicObjectCollection)((ComboField)this.View.BillBusinessInfo.GetField("F_PAEZ_Combo")).EnumObject["Items"];

            var enumList = new List<EnumItem>();

            // 获取单据类型的内码

            var billTypeId = string.Empty;

            var billTypeObj = this.Model.GetValue("FBillTypeID") as DynamicObject;

            if (billTypeObj != null)

            {

                billTypeId = billTypeObj[0].ToString();

            }

            if (billTy

二开案例.下拉列表.动态填充下拉选项

【应用场景】某个字段发生值变化时,动态填充下拉列表字段的下拉选项。【案例演示】采购订单,新增一个下拉列表字段,给该字段定义枚举类型...
点击下载文档文档为doc格式

声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。

已经是第一篇
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息
QQ群
  • 答案:my7c点击这里加入QQ群
支持邮箱
微信
  • 微信