using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Kingdee.BOS.Core.Bill.PlugIn;
using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;
using Kingdee.BOS.Core.DynamicForm.PlugIn;
using Kingdee.BOS.Orm.DataEntity;
using Kingdee.BOS.Core.SqlBuilder;
using Kingdee.BOS.Contracts;
using Kingdee.BOS.Core.Metadata;
namespace ProductizationTemplate.DynamicFormPlugin
{
public class MyDynamicFormPlugin : AbstractDynamicFormPlugIn
{
///
/// 初始化,对其他界面传来的参数进行处理,对控件某些属性进行处理
/// 这里不宜对数据DataModel进行处理
///
///
public override void OnInitialize(InitializeEventArgs e)
{
}
///
/// 动态表单加载数据完成之后,需要处理的功能
///
///
public override void AfterCreateNewData(EventArgs e)
{
}
///
/// 数据加载之后,需要处理的功能,这里主要对界面样式进行处理,尽量不要对Datamodel进行处理
///
///
public override void AfterBindData(EventArgs e)
{
}
///
/// 在根据编码检索数据之前调用;
/// 通过重载本事件,可以设置必要的过滤条件,以限定检索范围;
/// 还可以控制当前过滤是否启用组织隔离,数据状态隔离
///
///
public override void BeforeSetItemValueByNumber(BeforeSetItemValueByNumberArgs e)
{
switch (e.BaseDataField.Key.ToUpperInvariant())
{
//case "FXXX":通过字段的Key[大写]来区分不同的基础资料
//e.Filter = "FXXX= AND fxxy=";过滤的字段使用对应基础资料的字段的Key,支持ksql语法
//break;
case "":
break;
default:
break;
}
}
///
/// 显示基础资料列表之前调用
/// 通过重载本事件,可以设置必要的过滤条件,以限定检索范围;
///
///
public override void BeforeF7Select(BeforeF7SelectEventArgs e)
{
switch (e.FieldKey.ToUpperInvariant())
{
//case "FXXX":通过字段的Key[大写]来区分不同的基础资料
// e.ListFilterParameter.Filter = "FXXX= AND fxxy=";过滤的字段使用对应基础资料的字段的Key,支持ksql语法
//break;
case "":
break;
default:
break;
}
}
///
/// 界面数据发生变化之前,需要处理的功能
///
///
public override void BeforeUpdateValue(BeforeUpdateValueEventArgs e)
{
switch (e.Key.ToUpperInvariant())
{
//case "FXXX":通过字段的Key[大写]来区分不同的控件的数据变化功能,如果要阻止该次变化,可以用e.Cancel = true;
// e.Cancel = true;
// break;
case "":
break;
default:
break;
}
}
///
/// 界面数据发生变化之后,需要处理的功能
///
///
public override void DataChanged(DataChangedEventArgs e)
{
switch (e.Field.Key.ToUpperInvariant())
{
case "":
break;
default:
break;
}
}
///
/// 单据持有事件发生前需要完成的功能
///
///
public override void BeforeDoOperation(BeforeDoOperationEventArgs e)
{
switch (e.Operation.FormOperation.Operation.ToUpperInvariant())
{
//case "SAVE": 表单定义的事件都可以在这里执行,需要通过事件的代码[大写]区分不同事件
//break;
case "":
break;
default:
break;
}
}
///
/// 单据持有事件发生后需要完成的功能
///
///
public override void AfterDoOperation(AfterDoOperationEventArgs e)
{
switch (e.Operation.Operation.ToUpperInvariant())
{
//case "SAVE": 表单定义的事件都可以在这里执行,需要通过事件的代码[大写]区分不同事件
//break;
case "":
break;
default:
break;
}
}
///
/// queryservice取数方案,通过业务对象来获取数据,推荐使用
///
///
public DynamicObjectCollection GetQueryDatas()
{
QueryBuilderParemeter paramCatalog = new QueryBuilderParemeter()
{
FormId = "",//取数的业务对象
FilterClauseWihtKey = "",//过滤条件,通过业务对象的字段Key拼装过滤条件
SelectItems = SelectorItemInfo.CreateItems("", "", ""),//要筛选的字段【业务对象的字段Key】,可以多个,如果要取主键,使用主键名
};
DynamicObjectCollection dyDatas = Kingdee.BOS.ServiceHelper.QueryServiceHelper.GetDynamicObjectCollection(this.Context, paramCatalog);
return dyDatas;
}
}
}