二开案例.过滤插件.通用过滤条件框启用高级过滤

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

二开案例.过滤插件.通用过滤条件框启用高级过滤

【应用场景】

通用过滤条件框启用高级过滤。

【注】高级过滤默认只在列表过滤和账表过滤开放使用。


【案例演示】

物料清单正查,过滤窗体,启用高级过滤。

注意:此案例仅演示如何启用高级过滤,不会真的把高级过滤生成的SQL条件传递给物料清单正查。


【实现步骤】

<1>编写过滤插件,代码如下。

using Kingdee.BOS.Core.CommonFilter.PlugIn;

using Kingdee.BOS.Core.DynamicForm.PlugIn.ControlModel;

using Kingdee.BOS.Util;

using System;

using System.Collections.Generic;

using System.ComponentModel;


namespace Jac.XkDemo.BOS.Business.PlugIn

{

    /// <summary>

    /// 【过滤插件】通用过滤条件框启用高级过滤

    /// </summary>

    [Description("【过滤插件】通用过滤条件框启用高级过滤"), HotUpdate]

    public class SetBatchFilterFilterPlugIn : AbstractCommonFilterPlugIn

    {

        /// <summary>

        /// 高级过滤不支持的字段类型集合

        /// </summary>

        private readonly HashSet<int> invalidFields = new HashSet<int> { 60015, 1011 };


        public override void AfterBindData(EventArgs e)

        {

            base.AfterBindData(e);

            var batchFilterGrid = this.View.GetControl<BatchFilterGrid>("FBatchFilterGrid");

            if (batchFilterGrid == null)

            {

                return;

            }


            if (this.CommonFilterModel.FilterObject == null || this.CommonFilterModel.BatchFilterObject == null)

            {

                return;

            }


            //var filterMetaData = CommonFilterServiceHelper.GetFilterMetaData(this.Context, string.Empty);

            this.CommonFilterModel.BatchFilterObject.FilterMetaData = this.CommonFilterModel.FilterObject.FilterMetaData;

            foreach (var filterField in this.CommonFilterModel.FilterObject.FilterFieldList)

            {

                if (!invalidFields.Contains(filterField.ElementTypeID))

                {

                    this.CommonFilterModel.BatchFilterObject.AddField(filterField);

                }

            }


            batchFilterGrid.SetFilterFields(this.CommonFilterModel.BatchFilterObject.GetAllFilterFieldList());

        }

    }

}


<2>拷贝插件组件到应用站点的WebSite\Bin目录下,重启IIS。


<3>BOSIDE扩展动态表单过滤—[物料清单正查] [ENG_BomQueryForward_Filter],批量过滤条件表格的字段集合任意添加一个字段(只有字段集合不为空的时候,前台才会显示高级过滤页签),注册表单插件,保存元数据,开发完毕。



【功能验证】

<1>登录业务站点,打开物料清单正查,点过滤,此时高级页签已显示,高级过滤中的字段已包含条件过滤中的所有字段。

---------------------------------------------------------------------------------------------------------













【金蝶云星空BOS二次开发案例演示】https://vip.kingdee.com/article/94751030918525696

二开案例.过滤插件.通用过滤条件框启用高级过滤

【应用场景】通用过滤条件框启用高级过滤。【注】高级过滤默认只在列表过滤和账表过滤开放使用。【案例演示】物料清单正查,过滤窗体,启用...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息