二开方案.根据发布菜单中的自定义参数干预过滤方案中的过滤条件原创
金蝶云社区-秀了个秀
秀了个秀
61人赞赏了该文章 665次浏览 未经作者许可,禁止转载编辑于2023年05月06日 11:09:24

image.png

image.png如果希望将发布菜单中的自定义参数显示到过滤方案中的过滤条件之中,可以根据下方示例代码干预:

注意:此代码仅包含干预显示的代码,不可将过滤方案进行保存,如果保存会将动态添加的条件保存到数据库中,如果想进行保存,则需要干预保存事件,移除动态添加的条件。


using System.ComponentModel;

using System.Linq;
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;
using Kingdee.BOS.Model.ListFilter;
using Kingdee.BOS.Util;

namespace Kingdee.BOS.TestPlugIn
{
    /// <inheritdoc />
    [HotUpdate]
    [Description("修改过滤方案条件")]
    public class TestBillOrgIsolationFilterPlugIn : AbstractCommonFilterPlugIn
    {
        /// <inheritdoc />
        public override void TreeNodeClick(TreeNodeArgs e)
        {
            base.TreeNodeClick(e);

            var value = this.View.ParentFormView.OpenParameter.GetCustomParameter("FText");//获取发布菜单中的参数
            var filterField = ((ListFilterModel)this.Model).FilterObject.GetFilterField("FText");//获取参数对应的字段
            var compareType = filterField.CompareType.FirstOrDefault(w => w.Id.Equals("67"));//获取[=]比较符

            var filterRow = new FilterRow("", filterField, compareType, value.ToString(), "", LogicOperate.AND,
                Enu_ColType.STRING, filterField.Caption);

            var jsonArray = ((ListFilterModel)this.Model).FilterObject.GetFilterRows();
            jsonArray.Add(filterRow.ToJSONObject());

            var filterGrid = this.View.GetControl<FilterGrid>(CommonFilterConst.ControlKey_FilterGrid);
            filterGrid.SetFilterRows(jsonArray);
        }
    }
}




图标赞 61
61人点赞
还没有人点赞,快来当第一个点赞的人吧!
图标打赏
0人打赏
还没有人打赏,快来当第一个打赏的人吧!

您的鼓励与嘉奖将成为创作者们前进的动力,如果觉得本文还不错,可以给予作者创作打赏哦!

请选择打赏金币数 *

10金币20金币30金币40金币50金币60金币
可用金币: 0