二开案例.表单插件.下拉列表动态绑定枚举类型

【应用场景】使用已存在的枚举类型,动态绑定到下拉列表控件。
【案例演示】采购订单,新增下拉列表字段,动态设置下拉列表控件的下拉项为枚举类型【发货状态】的枚举值集合。


【实现步骤】
<1>编写表单插件,代码如下。
using Kingdee.BOS;
using Kingdee.BOS.Core.DynamicForm.PlugIn;
using Kingdee.BOS.Core.DynamicForm.PlugIn.ControlModel;
using Kingdee.BOS.Core.Metadata;
using Kingdee.BOS.Orm.DataEntity;
using Kingdee.BOS.ServiceHelper;
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 FillComboFieldByEnumObjectFormPlugIn : AbstractDynamicFormPlugIn
{
public override void AfterBindData(EventArgs e)
{
base.AfterBindData(e);
BindComboField();
}
private void BindComboField()
{
var enumList = GetEnumItems(this.Context);
var comboList = this.View.GetFieldEditor<ComboFieldEditor>("F_Jac_Combo", 0);
if (comboList != null)
{
comboList.SetComboItems(enumList);
}
}
/// <summary>
/// 从数据库读取指定枚举类型并转换成枚举项集合
/// </summary>
/// <param name="ctx"></param>
/// <returns></returns>
private List<EnumItem> GetEnumItems(Context ctx)
{
// 获取枚举类型【发货状态】的枚举项明细
var objs = BusinessDataServiceHelper.LoadFromCache(ctx, new object[] { "0113bd8e-03b1-4c47-8fb4-9ed5b9074680" }, EnumObject.EnumObjectType);
var enumList = new List<EnumItem>();
if (objs != null && objs.Length >
二开案例.表单插件.下拉列表动态绑定枚举类型
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。



