二开案例.维度关联字段.维度关联字段赋值之辅助属性

【应用场景】给辅助属性赋值。
【案例演示】采购订单,明细信息,给指定物料设置辅助属性值。

【实现步骤】
<1>编写单据插件,实现辅助属性赋值的功能,代码如下。
using Kingdee.BOS.Core.Bill.PlugIn;
using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;
using Kingdee.BOS.Core.Metadata.FieldElement;
using Kingdee.BOS.Model.DynamicForm;
using Kingdee.BOS.ServiceHelper;
using Kingdee.BOS.Util;
using Kingdee.BOS.Web.DynamicForm;
using System.ComponentModel;
namespace Jac.XkDemo.BOS.Business.PlugIn
{
/// <summary>
/// 【单据插件】维度关联字段赋值之辅助属性
/// </summary>
[Description("【单据插件】维度关联字段赋值之辅助属性"), HotUpdate]
public class SetFlexValueBillPlugIn : AbstractBillPlugIn
{
public override void EntryBarItemClick(BarItemClickEventArgs e)
{
base.EntryBarItemClick(e);
var rowIndex = this.Model.GetEntryCurrentRowIndex("FPOOrderEntry");
if (rowIndex < 0)
{
return;
}
#region 模拟界面操作View进行赋值
if (e.BarItemKey.EqualsIgnoreCase("tbSetFlexValue1"))
{
// 设置物料的等级为【A级】
((DynamicWebFormView)this.View).SetItemValueByIDFromClient("$$FAUXPROPID__FF100001", "005056a3024b911211e36619da073384", rowIndex);
// 设置物料的产地为【中国】
((DynamicWebFormView)this.View).SetItemValueByIDFromClient("$$FAUXPROPID__FF100002", "5a98b74cf52cba", rowIndex);
}
#endregion
#region 直接获取维度值内码进行赋值(此种赋值方式要求维度组合值已经提前保存)
if (e.BarItemKey.EqualsIgnoreCase("tbSetFlexValue2"))
{
// 等级【A级】产地【中国】对应的维度值为100333
this.View.Model.SetValue("FAuxPropId", 100333, rowIndex);
//this.View.UpdateView("FAuxPropId", rowIndex);
}
#endregion
#region 操作Model逐个维度进行赋值
if (e.BarItemKey.EqualsIgnoreCase("tbSetFlexValue3"))
{
// 获取维度关联字段
var flexField = (RelatedFlexGroupField)this.View.BillBusinessInfo.GetField("FAuxPropId");
// 获取维度关联字段的某个维度
// 设置物料的等级为【A级】
((DynamicFormModel)this.Model).SetFlexValue(flexField, "$$FAUXPROPID__FF100001", "005056a3024b911211e36619da073384", rowIndex);
//this.View.UpdateView("$$FAUXPROPID__FF100001", rowIndex);
// 设置物料的产地为【中国】
((DynamicFormModel)this.Model).SetFlexValue(flexField, "$$FAUXPROPID__FF100002", "5a98b74cf52cba", rowIndex);
//this.View.UpdateView("$$FAUXPROPID__FF100002", rowIndex);
}
#endregion
#region 操作Model逐个维度进行赋值
if (e.BarItemKey.EqualsIgnoreCase("tbSetFlexValue4"))
{
// 获取维度关联字段
var flexField = (RelatedFlexGroupField)this.View.BillBusinessInfo.GetField("FAuxPropId");
// 获取维度关联字段的某个维度
var field = (BaseDataField)flexField.RelateFlexBusinessInfo.GetField("FF100001");
// 设置物料的等级为【A级】
var dynamicObj = BusinessDataServiceHelper.LoadSingle(this.Context, "005056a3024b911211e36619da073384", field.RefFormDynamicObjectType);
((DynamicFormModel)this.Model).SetFlexValue(flexField, "$$FAUXPROPID__FF100001", dynamicObj, rowIndex);
//this.View.UpdateView("$$FAUXPROPID__FF100001", rowIndex);
// 设置物料的产地为【中国】
dynamicObj = BusinessDataServiceHelper.LoadSingle(this.Context, "5a98b74cf52cba", field.RefFormDynamicObjectType);
((DynamicFormModel)this.Model).SetFlexValue(flexField, "$$FAUXPROPID__FF100002", dynamicObj, rowIndex);
//this.View.UpdateView("$$FAUXPROPID__FF100002", rowIndex);
}
#endregion
二开案例.维度关联字段.维度关联字段赋值之辅助属性
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。



