更改列过滤器的默认选项

时间:2021-01-06 05:50:21

标签: acumatica

是否可以更改所有列过滤器的默认选项?我很确定我可以用一些 JavaScript 来完成这个,但我想知道在 Acumatica 框架中是否有任何方法可以改变这一点。 Filter Dropdown

1 个答案:

答案 0 :(得分:1)

答案是否定的。过滤器位于 PX.Web.UI.dll 类中的 PXGridFilter 内,该类是一个内部类。您感兴趣的属性是 Condition

该值是在 PXGrid 类的私有方法之一内设置的。该方法的代码如下:

private IEnumerable<PXGridFilter> ab()
{
    List<PXGridFilter> list = new List<PXGridFilter>();
    if (this.FilterID != null)
    {
        Guid? filterID = this.FilterID;
        Guid guid = PXGrid.k;
        if (filterID == null || (filterID != null && filterID.GetValueOrDefault() != guid))
        {
            using (IEnumerator<PXResult<FilterRow>> enumerator = PXSelectBase<FilterRow, PXSelect<FilterRow, Where<FilterRow.filterID, Equal<Required<FilterRow.filterID>>, And<FilterRow.isUsed, Equal<True>>>>.Config>.Select(this.DataGraph, new object[]
            {
                this.FilterID.Value
            }).GetEnumerator())
            {
                while (enumerator.MoveNext())
                {
                    FilterRow row = enumerator.Current;
                    string dataField = row.DataField;
                    PXCache pxcache = PXFilterDetailView.TargetCache(this.DataGraph, new Guid?(this.FilterID.Value), ref dataField);
                    if (this.Columns[row.DataField] != null)
                    {
                        List<PXGridFilter> list2 = list;
                        int valueOrDefault = row.OpenBrackets.GetValueOrDefault();
                        string dataField2 = row.DataField;
                        string dataField3 = row.DataField;
                        int value = (int)row.Condition.Value;
                        object value2 = pxcache.ValueFromString(dataField, row.ValueSt);
                        string valueText = row.ValueSt.With((string _) => this.Columns[row.DataField].FormatValue(_));
                        object value3 = pxcache.ValueFromString(dataField, row.ValueSt2);
                        string value2Text = row.ValueSt2.With((string _) => this.Columns[row.DataField].FormatValue(_));
                        int valueOrDefault2 = row.CloseBrackets.GetValueOrDefault();
                        int? @operator = row.Operator;
                        int num = 1;
                        list2.Add(new PXGridFilter(valueOrDefault, dataField2, dataField3, value, value2, valueText, value3, value2Text, valueOrDefault2, @operator.GetValueOrDefault() == num & @operator != null));
                    }
                }
                return list;
            }
        }
    }
    if (this.FilterRows != null && this.FilterRows.Count > 0)
    {
        for (int i = 0; i < this.FilterRows.Count; i++)
        {
            PXFilterRow row = this.FilterRows[i];
            list.Add(new PXGridFilter(row.OpenBrackets, row.DataField, row.DataField, (int)row.Condition, row.Value, row.Value.With(delegate(object _)
            {
                if (this.Columns[row.DataField] == null)
                {
                    return _.ToString();
                }
                return this.Columns[row.DataField].FormatValue(_);
            }), row.Value2, row.Value2.With(delegate(object _)
            {
                if (this.Columns[row.DataField] == null)
                {
                    return _.ToString();
                }
                return this.Columns[row.DataField].FormatValue(_);
            }), row.CloseBrackets, row.OrOperator));
        }
    }
    return list;
}

更新

以下 JS 代码允许您更改最后设置的过滤器的条件:

px_all.ctl00_phG_grid_fd.show();
px_all.ctl00_phG_grid_fd_cond.items.items[7].setChecked(true);
px_all.ctl00_phG_grid_fd_ok.element.click();
<块引用>

px_all.ctl00_phG_grid_fd_cond.items.items[7].value "EQ" px_all.ctl00_phG_grid_fd_cond.items.items[8].value "NE" px_all.ctl00_phG_grid_fd_cond.items.items[9].value "GT" px_all.ctl00_phG_grid_fd_cond.items.items[13].value "LIKE" px_all.ctl00_phG_grid_fd_cond.items.items[14].value "LLIKE" px_all.ctl00_phG_grid_fd_cond.items.items[15].value "RLIKE" px_all.ctl00_phG_grid_fd_cond.items.items[16].value "NOTLIKE" px_all.ctl00_phG_grid_fd_cond.items.items[18].value "ISNULL" px_all.ctl00_phG_grid_fd_cond.items.items[19].value "ISNOTNULL"

相关问题