二开案例.SetFilterString多个过滤条件原创
12人赞赏了该文章
249次浏览
编辑于2024年05月28日 10:10:52
需求:过滤出字段为aaa或bbb的行。
grid.SetFilterString("F_UNW_Text_qtr = 'aaa' or F_UNW_Text_qtr = 'bbb' ")只有客户端支持。
可以二开变通实现。
1、单据体中增加字段FFilterText(字段名为空,不保存到数据库,仅用于标识行是否满足过滤条件)
2、根据行是否满足过滤条件,给字段赋值。再用SetFilterString过滤
using Kingdee.BOS.Core.Bill.PlugIn; using Kingdee.BOS.Core.DynamicForm.PlugIn.Args; using Kingdee.BOS.Core.DynamicForm.PlugIn.ControlModel; using Kingdee.BOS.Util; using System.ComponentModel; namespace KD.TestNs { [Description("SetFilterString多个过滤条件"), HotUpdate] public class SetFilterStringPlugIn : AbstractBillPlugIn { public override void ButtonClick(ButtonClickEventArgs e) { EntryGrid grid = this.View.GetControl("FEntity") as EntryGrid; //这种写法只有客户端支持,H5端无效 //grid.SetFilterString("F_UNW_Text_qtr = 'aaa' or F_UNW_Text_qtr = 'bbb' "); //变通实现方法 var entry = this.View.BusinessInfo.GetEntity("FEntity"); var rows = this.Model.GetEntityDataObject(entry); for (int i = 0; i < rows.Count; i++) { var row = rows[i]; if (row["F_UNW_Text_qtr"].ToString() == "aaa" || row["F_UNW_Text_qtr"].ToString() == "bbb") { this.Model.SetValue("FFilterText", "true", i); } } grid.SetFilterString("FFilterText = 'true'"); } } }
注册插件:
推荐阅读