Beispiel #1
0
        protected override CriteriaOperator ConvertGridFilterToDataFilter(CriteriaOperator criteria)
        {
            string originalFindFilterText = Convert.ToString(typeof(ColumnView).InvokeMember("findFilterText", BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.GetField, null, this, new object[0]));

            if (SimpleSearch)
            {
                if (!(string.IsNullOrEmpty(originalFindFilterText)))
                {
                    typeof(ColumnView).InvokeMember("findFilterText", BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.SetField, null, this, new object[] { string.Concat("\"", originalFindFilterText, "\"") });
                }
                CriteriaOperator        findCriteria       = null;
                FindSearchParserResults _lastParserResults = null;
                if (!(string.IsNullOrEmpty(FindFilterText)))
                {
                    _lastParserResults = (new FindSearchParser()).Parse(FindFilterText, GetFindToColumnsCollection());
                    typeof(ColumnView).GetField("lastParserResults", BindingFlags.NonPublic | BindingFlags.Instance).SetValue(this, _lastParserResults);
                    if (!IsServerMode)
                    {
                        _lastParserResults.AppendColumnFieldPrefixes();
                    }
                    findCriteria = DxFtsContainsHelperAlt.Create(_lastParserResults, FilterCondition.Contains, IsServerMode);
                }
                typeof(ColumnView).InvokeMember("findFilterText", BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.SetField, null, this, new object[] { originalFindFilterText });
                return(criteria & findCriteria);
            }
            return(base.ConvertGridFilterToDataFilter(criteria));
        }
Beispiel #2
0
        public static CriteriaOperator Create(FindSearchParserResults parseResult, FilterCondition defaultCondition, bool isServerMode)
        {
            CriteriaOperator rv = null;

            rv = CreateFilter(parseResult.SearchTexts, parseResult.ColumnNames, defaultCondition, isServerMode);
            foreach (FindSearchField f in parseResult.Fields)
            {
                CriteriaOperator columnFilter = null;
                columnFilter = CreateFilter(f.Values, new FindColumnInfo[] { f.Column }, defaultCondition, isServerMode);
                rv          &= columnFilter;
            }
            return(rv);
        }