
【场景】过滤界面动态增加显示隐藏列
【案例】表单插件
```sharp
using Kingdee.BOS.Core.CommonFilter;
using Kingdee.BOS.Core.CommonFilter.PlugIn;
using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;
using Kingdee.BOS.Core.DynamicForm.PlugIn.ControlModel;
using Kingdee.BOS.Util;
using System.Collections.Generic;
using System.Linq;
namespace DynamicFormPlugIn.Filter
{
[Kingdee.BOS.Util.HotUpdate]
public class RptFliterPlugIn : AbstractCommonFilterPlugIn
{
public override void DataChanged(DataChangedEventArgs e)
{
base.DataChanged(e);
if(e.Field.Key == "F_BHR_CheckBox")
{
SetFieldVisible(ObjectUtils.Object2Bool(e.NewValue));
}
}
private void SetFieldVisible(bool showField)
{
List<string> specFieldList = new List<string>() { "aaa", "bbb" };
ICommonFilterModelService filterModel = this.Model as ICommonFilterModelService;
if (filterModel == null)
return;
var fieldList = filterModel.ColumnObject.AllFieldList;
if (showField)
{
foreach(var specKey in specFieldList)
{
var field = fieldList.FirstOrDefault(x => x.Key == specKey);
if (field == null)
{
field = new ColumnField(new Kingdee.BOS.LocaleValue(specKey), specKey, fieldList.Count + 1, 50, 50, true, true);
field.FieldName = specKey;