二开案例.分组.添加分组

【应用场景】后台添加分组数据。
【案例演示】物料列表,添加菜单,点击菜单后后台添加新的分组。
【实现步骤】
<1>编写列表插件,代码如下。
using Kingdee.BOS;
using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;
using Kingdee.BOS.Core.List;
using Kingdee.BOS.Core.List.PlugIn;
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;
namespace Jac.XkDemo.BOS.Business.PlugIn
{
/// <summary>
/// 【列表插件】添加分组数据
/// </summary>
[HotUpdate]
[Description("【列表插件】添加分组数据")]
public class AddGroupDataListPlugIn : AbstractListPlugIn
{
/// <summary>
/// 分组表表名
/// </summary>
const string GroupTableName = "T_BD_MATERIALGROUP";
/// <summary>
/// 分组Id
/// </summary>
const string GroupId = "d82dac3f-43fa-4fce-9b7f-9e3280abd0d8";
public override void BarItemClick(BarItemClickEventArgs e)
{
base.BarItemClick(e);
if (e.BarItemKey.EqualsIgnoreCase("tbAddGroupData"))
{
var model = this.Model as ITreeListModel;
if (model != null)
{
// 获取列表上的分组树的当前被选中的节点
var currGroupParentId = model.CurrGroupParentId;
AddGroupData(currGroupParentId == null ? 0 : Convert.ToInt32(currGroupParentId), "666", "我是测试节点");
}
}
}
/// <summary>
/// 添加分组数据
/// </summary>
/// <param name="parentId">父分组内码</param>
/// <param name="number">分组编码</param>
/// <param name="name">分组名称</param>
private void AddGroupData(int parentId, string number, string name)
{
var metaData = (FormMetadata)MetaDataServiceHelper.Load(this.Context, "BOS_FORMGROUP");
// 创建数据分组元数据的副本,这一行代码很重要,因为不允许直接修改元数据,但是可以修改元数据的副本
metaData = (FormMetadata)ObjectUtils.CreateCopy(metaData);
metaData.BusinessInfo.GetEntity("FBillHead").TableName = GroupTableName;
var dynamicObjectType = metaData.BusinessInfo.GetDynamicObjectType(true);
var dataObject = new DynamicObject(dynamicObjectType);
dataObject["GroupId"] = GroupId;
dataObject["Number"] = number;
dataObject["Name"
二开案例.分组.添加分组
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。



