
# 业务场景
星空标准报表——存货收发存汇总表,快捷过滤显示维度选择 按核算维度显示,此时查询的数据并没有仓库信息

这个时候客户再去条件过滤选择仓库作为过滤条件时,查询的数据就为空,影响了用户体验。

优化的方案是,当客户选择显示维度为 按核算维度显示 时,条件过滤的选择字段去掉仓库。

# 实现步骤
1.编写表单插件
```using Kingdee.BOS.Core.CommonFilter.PlugIn;
using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;
using System;
using Kingdee.BOS.Core.DynamicForm.PlugIn.ControlModel;
namespace HNKD.WZQ.HengXin.Plugin
{
[Kingdee.BOS.Util.HotUpdate]
[System.ComponentModel.Description("存货收发存汇总表过滤框插件")]
public class test : AbstractCommonFilterPlugIn
{
// 值更新
public override void DataChanged(DataChangedEventArgs e)
{
base.DataChanged(e);
string a;
if ((a = e.Field.Key.ToUpperInvariant()) == null)
{
return;
}
//FCHXEXPENSE=显示费用项目明细
if (!(a == "FCHXEXPENSE"))
{
//显示维度(1=库存维度,0=核算维度)
if (a == "FDIMTYPE")
{
//条件过滤控件
var filterGrid = this.View.GetControl<FilterGrid>("FFilterGrid");
//获取条件过滤字段
var filterObject = ((Kingdee.BOS.Model.CommonFilter.FilterModel)this.Model).FilterObject;
var fieldArray = filterObject.GetAllFilterFieldList();
//核算维度 e.NewValue:改变后的值
if (Convert.ToString(e.NewValue).Equals("0"))
{
//移除 仓库 条件
fieldArray.RemoveAll((p) => p.ToString().Contains("仓库"));
//设置条件过滤
filterGrid.SetFilterFields(fieldArray);
}
}
}
}
}
}
```
2.注册表单插件

3.查看效果

