
【场景】二开案例,插件设置高级过滤
【案例】自动设置采购订单执行明细表的高级过滤条件

```csharp
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;
namespace DynamicFormPlugIn.Filter
{
[Kingdee.BOS.Util.HotUpdate]
public class FilterPlugIn_FBatchFilterGrid : AbstractCommonFilterPlugIn
{
/*
* 过滤表单插件设置高级过滤
*/
public override void TreeNodeClick(TreeNodeArgs e)
{
InitFBatchFilterGridInClient();
}
/// <summary>
/// 设置服务端的高级过滤逻辑(如果不显示过滤界面需要使用这个方案直接修改过滤方案)
/// </summary>
private void InitFBatchFilterGridInServer()
{
/*
* json 结构设置高级过滤
*/
Kingdee.BOS.JSON.JSONObject jsonObj = new Kingdee.BOS.JSON.JSONObject();
jsonObj["MakeUpType"] = "Column";
Kingdee.BOS.JSON.JSONArray jsonRows = new Kingdee.BOS.JSON.JSONArray();
Kingdee.BOS.JSON.JSONObject jsonSource = new Kingdee.BOS.JSON.JSONObject();
jsonSource["FieldName"] = "FSrcBillNo";
Kingdee.BOS.JSON.JSONArray jsonVal = new Kingdee.BOS.JSON.JSONArray();
jsonVal.Add("a");
jsonVal.Add("b");
jsonVal.Add("d");
jsonVal.Add("c");
jsonSource["Value"] = jsonVal.ToJSONString();
jsonSource["Logic"] = "OR";
jsonRows.Add(jsonSource);
jsonObj["Source"] = jsonRows;
var setting = jsonObj.ToJSONString();
var modelService = this.CommonFilterModel as ICommonFilterModelService;
if (modelService == null)
return;
modelService.SchemeEntity.BatchFilterSetting = setting;
this.CommonFilterModel.BatchFilterObject.Setting = modelService.SchemeEntity.BatchFilterSetting;