/// <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]; //} }
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); }
/// <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)); } }
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); } }