二开案例.表单插件.可编辑基础资料F8列表返回后使用基础资料名称进行赋值

【应用场景】
可编辑基础资料F8列表返回后使用基础资料名称进行赋值。
【案例演示】
采购订单,单据体有一个可编辑基础资料字段,F8列表返回后使用基础资料名称进行赋值。

【实现步骤】
<1>编写表单插件,代码如下。
using Kingdee.BOS.Core.DynamicForm.PlugIn;
using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;
using Kingdee.BOS.Core.Metadata.FieldElement;
using Kingdee.BOS.ServiceHelper;
using Kingdee.BOS.Util;
using System.ComponentModel;
using System.Linq;
namespace Jac.XkDemo.BOS.Business.PlugIn
{
/// <summary>
/// 【表单插件】可编辑基础资料F8列表返回后使用基础资料名称进行赋值
/// </summary>
[Description("【表单插件】可编辑基础资料F8列表返回后使用基础资料名称进行赋值"), HotUpdate]
public class BaseDataTextFieldSetValueByNameFormPlugIn : AbstractDynamicFormPlugIn
{
public override void AfterF7Select(AfterF7SelectEventArgs e)
{
base.AfterF7Select(e);
if (e.FieldKey.EqualsIgnoreCase("F_Jac_BaseDataText"))
{
var selectRows = e.SelectRows;
if (selectRows == null || selectRows.Count == 0)
{
return;
}
var ap = this.View.LayoutInfo.GetFieldAppearance(e.FieldKey);
var field = ap.Field as BaseDataTextField;
if (field == null)
{
return;
}
if (field.InputModel != BaseDataTextField.Enum_InputModel.OnlyText && field.InputModel != BaseDataTextField.Enum_InputModel.TextAndSelect)
{
return;
}
// 取消系统默认的赋值逻辑
e.Cancel = true;
// 判断分录行是否够,不够批量创建
var rowCount = this.Model.GetEntryRowCount(ap.EntityKey);
var maxRowIndex = e.Row + selectRows.Count;
if (maxRowIndex > rowCount)
{
this.Model.BatchCreateNewEntryRow(ap.EntityKey, maxRowIndex - rowCount);
}
// 开始填充数
var businessInfo = FormMetaDataCache.GetCachedFormMetaData(Context, field.LookUpObject.FormId).BusinessInfo;
var
二开案例.表单插件.可编辑基础资料F8列表返回后使用基础资料名称进行赋值
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。



