/// <summary>
        ///
        /// </summary>
        /// <returns></returns>
        public ISearchExpression GetSearchExpression()
        {
            if (this.Value != null && this.Value != this.NullValue && this.Value.ToString() != this.NullText)
            {
                GridColumnInfo info = this.ParentColumn.Tag as GridColumnInfo;
                if (info != null)
                {
                    string searchPropertyName = GetSearchPropertyName(info);

                    ISearchExpression ret = SearchExpression.Like(searchPropertyName, this.Value);

                    object searchValue = this.Value;
                    if (searchValue != null && info.CellViewerManager == "Combo")
                    {
                        string nvName = Feng.Windows.Utils.GridColumnInfoHelper.GetNameValueMappingName(info, true);
                        searchValue = Feng.Utils.NameValueControlHelper.GetMultiValue(nvName, searchValue.ToString());

                        ret = SearchExpression.Or(ret, SearchExpression.Eq(searchPropertyName, searchValue));
                    }

                    return(ret);
                }
            }

            return(null);
            //object value;
            //if (this.IsBeingEdited)
            //{
            //    value = ((FilterEditor)this.CellEditorManager).TemplateControl.SelectedValue;
            //}
            //else
            //{
            //    value = this.Value;
            //}

            //if (m_filterItems.ContainsKey(value.ToString()))
            //{
            //    return m_filterItems[value.ToString()];
            //}
            //else
            //{
            //    // 因为Filter有保存,但是里面的内容有变化,所以可能产生无内容的情况
            //    // this.Value = s_anyText; // 但是还是保存Value
            //    return m_filterItems[s_anyText];
            //}
        }
Esempio n. 2
0
        protected void Button1_Click(object sender, EventArgs e)
        {
            string zid = id.Text.Trim().ToString();
            //string weiTuoRen = weiTuoRen.SelectedValue.ToString();
            string tiDanHao1       = tiDanHao.Text.Trim().ToString();
            string xiangLiang1     = xiangLiang.Text.Trim().ToString();
            string zongZhongLiang1 = zongZhongLiang.Text.Trim().ToString();
            string daiBiaoXing1    = daiBiaoXing.Text.Trim().ToString();
            string pinMing1        = pinMing.Text.Trim().ToString();
            string state1          = state.SelectedValue.ToString();
            string url             = "Search.aspx?window=网页查询_客户委托情况_进口&se=";

            Session.RemoveAll();
            ISearchExpression se = null;

            if (!string.IsNullOrEmpty(zid))
            {
                se            = AndIfNecessary(se, SearchExpression.Like("货代自编号", "%" + zid + "%"));
                Session["id"] = zid;
            }
            if (!string.IsNullOrEmpty(tiDanHao1))
            {
                se = AndIfNecessary(se, SearchExpression.Like("提单号", "%" + tiDanHao1 + "%"));
                Session["tiDanHao"] = tiDanHao1;
            }
            if (!string.IsNullOrEmpty(xiangLiang1))
            {
                se = AndIfNecessary(se, SearchExpression.Eq("箱量", xiangLiang1));
                Session["xiangLiang"] = xiangLiang1;
            }
            if (!string.IsNullOrEmpty(zongZhongLiang1))
            {
                se = AndIfNecessary(se, SearchExpression.Eq("总重量", zongZhongLiang1));
                Session["zongZhongLiang"] = zongZhongLiang1;
            }
            if (!string.IsNullOrEmpty(daiBiaoXing1))
            {
                se = AndIfNecessary(se, SearchExpression.Like("代表性箱号", "%" + daiBiaoXing1 + "%"));
                Session["daiBiaoXing"] = daiBiaoXing1;
            }
            if (!string.IsNullOrEmpty(pinMing1))
            {
                se = AndIfNecessary(se, SearchExpression.Like("品名", "%" + pinMing1 + "%"));
                Session["pinMing"] = pinMing1;
            }
            if (!string.IsNullOrEmpty(state1))
            {
                se = AndIfNecessary(se, SearchExpression.Eq("当前状态", state1));
                //Session["state"] = state1;
            }
            if (!weiTuoTime1.Value.Trim().ToString().Equals(""))
            {
                se = AndIfNecessary(se, SearchExpression.Ge("委托时间", weiTuoTime1.Value.Trim().ToString()));
            }
            if (!weiTuoTime2.Value.Trim().ToString().Equals(""))
            {
                se = AndIfNecessary(se, SearchExpression.Le("委托时间", weiTuoTime2.Value.Trim().ToString()));
            }
            if (!daoGangTime1.Value.Trim().ToString().Equals(""))
            {
                se = AndIfNecessary(se, SearchExpression.Ge("到港时间", daoGangTime1.Value.Trim().ToString()));
            }
            if (!daoGangTime2.Value.Trim().ToString().Equals(""))
            {
                se = AndIfNecessary(se, SearchExpression.Le("到港时间", daoGangTime2.Value.Trim().ToString()));
            }
            if (!danZhengTime1.Value.Trim().ToString().Equals(""))
            {
                se = AndIfNecessary(se, SearchExpression.Ge("单证齐全时间", danZhengTime1.Value.Trim().ToString()));
            }
            if (!danZhengTime2.Value.Trim().ToString().Equals(""))
            {
                se = AndIfNecessary(se, SearchExpression.Le("单证齐全时间", danZhengTime2.Value.Trim().ToString()));
            }
            if (!jieGuanTime1.Value.Trim().ToString().Equals(""))
            {
                se = AndIfNecessary(se, SearchExpression.Ge("结关时间", jieGuanTime1.Value.Trim().ToString()));
            }
            if (!jieGuanTime2.Value.Trim().ToString().Equals(""))
            {
                se = AndIfNecessary(se, SearchExpression.Le("结关时间", jieGuanTime2.Value.Trim().ToString()));
            }

            if (se != null)
            {
                //exp = HttpUtility.UrlEncode(exp);
                string exp = se.ToString();
                //exp = HttpUtility.UrlEncode(exp, System.Text.Encoding.GetEncoding("gb2312"));
                exp  = Server.UrlEncode(exp);
                url += exp;
            }
            Response.Redirect(url);
        }
Esempio n. 3
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="searchConditions"></param>
        /// <param name="searchOrders"></param>
        public virtual void FillSearchConditions(IList <ISearchExpression> searchConditions, IList <ISearchOrder> searchOrders)
        {
            if (Order.HasValue)
            {
                if (Order.Value)
                {
                    searchOrders.Add(SearchOrder.Asc(PropertyNameToSearch));
                }
                else
                {
                    searchOrders.Add(SearchOrder.Desc(PropertyNameToSearch));
                }
            }

            if (IsNull)
            {
                if (!IsNot)
                {
                    //// 对帐单.对账单号 为空,其实意义就是对帐单为空
                    //if (string.IsNullOrEmpty(this.Navigator))
                    //{
                    //    searchConditions.Add(SearchExpression.IsNull(PropertyNameToSearch));
                    //}
                    //else
                    //{
                    //    // 为空的话,只去最前面一个
                    //    string[] ss = this.Navigator.Split(new char[] { '.', ':' }, StringSplitOptions.RemoveEmptyEntries);
                    //    searchConditions.Add(SearchExpression.IsNull(ss[0]));
                    //}
                    if (SearchNullUseFull || string.IsNullOrEmpty(this.Navigator))
                    {
                        searchConditions.Add(SearchExpression.IsNull(PropertyNameToSearch));
                    }
                    else
                    {
                        if (string.IsNullOrEmpty(this.Navigator))
                        {
                            throw new ArgumentException("When SearchNullUseFull is false, it will use Navigator's first part, so navigator must not null!");
                        }
                        string[] ss = this.Navigator.Split(new char[] { '.', ':' }, StringSplitOptions.RemoveEmptyEntries);
                        searchConditions.Add(SearchExpression.IsNull(ss[0]));
                    }
                }
                else
                {
                    searchConditions.Add(SearchExpression.IsNotNull(PropertyNameToSearch));
                }
            }
            else
            {
                IMultiDataValueControl mdc = this.Control as IMultiDataValueControl;
                if (mdc != null)
                {
                    if (this.SelectedDataValues.Count == 0)
                    {
                        return;
                    }

                    if (!this.UseFuzzySearch.HasValue)
                    {
                        if (this.CanSelectFuzzySearch && mdc.SelectedDataValues.Count == 1)
                        {
                            if (!IsNot)
                            {
                                searchConditions.Add(SearchExpression.Like(PropertyNameToSearch, mdc.SelectedDataValues[0]));
                            }
                            else
                            {
                                searchConditions.Add(SearchExpression.NotLike(PropertyNameToSearch, mdc.SelectedDataValues[0]));
                            }
                        }
                        else
                        {
                            if (!IsNot)
                            {
                                searchConditions.Add(SearchExpression.InG(PropertyNameToSearch, mdc.SelectedDataValues));
                            }
                            else
                            {
                                searchConditions.Add(SearchExpression.NotInG(PropertyNameToSearch, mdc.SelectedDataValues));
                            }
                        }
                    }
                    else if (this.UseFuzzySearch.Value)
                    {
                        if (!IsNot)
                        {
                            searchConditions.Add(SearchExpression.GInG(PropertyNameToSearch, mdc.SelectedDataValues));
                        }
                        else
                        {
                            searchConditions.Add(SearchExpression.NotGInG(PropertyNameToSearch, mdc.SelectedDataValues));
                        }
                    }
                    else
                    {
                        if (!IsNot)
                        {
                            searchConditions.Add(SearchExpression.InG(PropertyNameToSearch, mdc.SelectedDataValues));
                        }
                        else
                        {
                            searchConditions.Add(SearchExpression.NotInG(PropertyNameToSearch, mdc.SelectedDataValues));
                        }
                    }
                }
                else
                {
                    if (this.SelectedDataValue == null)
                    {
                        return;
                    }

                    if (this.CanSelectFuzzySearch && (!this.UseFuzzySearch.HasValue || this.UseFuzzySearch.Value))
                    {
                        string s = this.SelectedDataValue.ToString();
                        if (!IsNot)
                        {
                            searchConditions.Add(SearchExpression.Like(PropertyNameToSearch, s));
                        }
                        else
                        {
                            searchConditions.Add(SearchExpression.NotLike(PropertyNameToSearch, s));
                        }
                    }
                    else
                    {
                        if (!IsNot)
                        {
                            searchConditions.Add(SearchExpression.Eq(PropertyNameToSearch, this.SelectedDataValue));
                        }
                        else
                        {
                            searchConditions.Add(SearchExpression.NotEq(PropertyNameToSearch, this.SelectedDataValue));
                        }
                    }
                }
            }

            if (!string.IsNullOrEmpty(this.AdditionalSearchExpression))
            {
                searchConditions.Add(SearchExpression.Parse(this.AdditionalSearchExpression));
            }
        }
Esempio n. 4
0
        private ISearchExpression ParseSimpleExpression()
        {
            string            s1 = ParseWordExpression();
            string            s2;
            ISearchExpression exp;

            switch (this.token)
            {
            case TokenType.Eq:
                this.MoveNext();
                s2 = ParseWordExpression();
                return(SearchExpression.Eq(s1, s2));

            case TokenType.NotEq:
                this.MoveNext();
                s2 = ParseWordExpression();
                return(SearchExpression.NotEq(s1, s2));

            case TokenType.EqProperty:
                this.MoveNext();
                s2 = ParseWordExpression();
                return(SearchExpression.EqProperty(s1, s2));

            case TokenType.Gt:
                this.MoveNext();
                s2 = ParseWordExpression();
                return(SearchExpression.Gt(s1, s2));

            case TokenType.Ge:
                this.MoveNext();
                s2 = ParseWordExpression();
                return(SearchExpression.Ge(s1, s2));

            case TokenType.Lt:
                this.MoveNext();
                s2 = ParseWordExpression();
                return(SearchExpression.Lt(s1, s2));

            case TokenType.Le:
                this.MoveNext();
                s2 = ParseWordExpression();
                return(SearchExpression.Le(s1, s2));

            case TokenType.InG:
                this.MoveNext();
                s2 = ParseWordExpression();
                return(SearchExpression.InG(s1, GetArrayList(s2)));

            case TokenType.GInG:
                this.MoveNext();
                s2 = ParseWordExpression();
                return(SearchExpression.GInG(s1, GetArrayList(s2)));

            case TokenType.Like:
                this.MoveNext();
                s2 = ParseWordExpression();
                return(SearchExpression.Like(s1, s2));

            case TokenType.IsNull:
                exp = SearchExpression.IsNull(s1);
                this.MoveNext();
                return(exp);

            case TokenType.IsNotNull:
                exp = SearchExpression.IsNotNull(s1);
                this.MoveNext();
                return(exp);

            case TokenType.Sql:
                exp = SearchExpression.Sql(s1);
                this.MoveNext();
                return(exp);

            default:
                throw new ArgumentException("Invalid token of " + token);
            }
        }