二开案例.SetFilterString多个过滤条件

栏目:云星空知识作者:金蝶来源:金蝶云社区发布:2024-09-16浏览:1

二开案例.SetFilterString多个过滤条件

需求:过滤出字段为aaa或bbb的行。

grid.SetFilterString("F_UNW_Text_qtr = 'aaa' or F_UNW_Text_qtr = 'bbb' ")只有客户端支持。

可以二开变通实现。


image.webp

1、单据体中增加字段FFilterText(字段名为空,不保存到数据库,仅用于标识行是否满足过滤条件)

image.webp


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'");
        }
    }
}


注册插件:

image.webp









二开案例.SetFilterString多个过滤条件

需求:过滤出字段为aaa或bbb的行。grid.SetFilterString("F_UNW_Text_qtr = 'aaa' or F_UNW_Text_qtr = 'bbb' ")只有客户端支持。可...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息