二开案例.表单插件.单据类型切换后绑定数据

【应用场景】
单据类型切换后绑定数据。因为单据类型切换会使得整个页面刷新重建,因此抓取单据类型变更事件不能使用DataChanged事件,可以使用AfterBindData事件。
【案例演示】
采购订单,新增下拉列表字段和辅助资料字段,当切换单据类型后,把切换后的单据类型绑定到下拉列表,根据单据类型控制辅助资料的可选项。。

【实现步骤】
<1>编写表单插件,代码如下。
using Kingdee.BOS;
using Kingdee.BOS.Core.DynamicForm.PlugIn;
using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;
using Kingdee.BOS.Core.DynamicForm.PlugIn.ControlModel;
using Kingdee.BOS.Core.Metadata;
using Kingdee.BOS.Orm.DataEntity;
using Kingdee.BOS.Util;
using System;
using System.Collections.Generic;
using System.ComponentModel;
namespace Jac.XkDemo.BOS.Business.PlugIn
{
/// <summary>
/// 【表单插件】单据类型切换后绑定数据
/// </summary>
[Description("【表单插件】单据类型切换后绑定数据"), HotUpdate]
public class BindDataAfterBillTypeChangedFormPlugIn : AbstractDynamicFormPlugIn
{
public override void AfterBindData(EventArgs e)
{
base.AfterBindData(e);
BindComboField();
}
public override void BeforeF7Select(BeforeF7SelectEventArgs e)
{
base.BeforeF7Select(e);
if (e.BaseDataField.Key == "F_Jac_Assistant")
{
// 切换单据类型时,设置辅助资料显示不同的可选项
var billTypeObj = this.Model.GetValue("FBillTypeID") as DynamicObject;
if (billTypeObj != null)
{
if (billTypeObj["Id"].ToString() == "83d822ca3e374b4ab01e5dd46a0062bd")
{
// 标准采购订单
e.ListFilterParameter.Filter = string.Format("FNumber='{0}'", "KHLX01_SYS1");
}
else if (billTypeObj["Id"].ToString() == "6d01d059713d42a28bb976c90a121142")
{
// 标准委外订单
e.ListFilterParameter.Filter = string.Format("FNumber='{0}'", "KHLX02_SYS");
}
else if (billTypeObj["Id"].ToString() == "b8df755fd92b4c2baedef2439c29f793")
{
// 直运采购订单
e.ListFilterParameter.
二开案例.表单插件.单据类型切换后绑定数据
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。



