public static DataSet Search(string[] searchs, PageContent objPage) { ScopeList lstScope = new ScopeList(); lstScope.PageContent = objPage; double per = Math.Pow(2, searchs.Length); lstScope.ShowProperty.Add(Management.SampleInfo.SampleName.As("SampleName")); lstScope.ShowProperty.Add(Management.SampleInfo.SamplingTerrace.As("SamplingTerrace")); lstScope.ShowProperty.Add(Management.SampleInfo.SampleNumber.As("SampleNumber")); BQLValueItem perValue = BQLValueItem.ToValueItem(0); BQLCondition nameCon = BQLCondition.FalseValue; foreach (string search in searchs) { nameCon = nameCon | Management.SampleInfo.SampleName.Like(search); perValue = perValue + BQL.Case().When(BQL.ToParam("SampleName").IndexOf(search, 0) <= 0).Then(0).Else(1).End *per; per /= 2; } lstScope.ShowProperty.Add(perValue.As("per1")); lstScope.Add(nameCon); lstScope.OrderBy.Add(perValue.As("").DESC); per = Math.Pow(2, searchs.Length); perValue = BQLValueItem.ToValueItem(0); nameCon = BQLCondition.FalseValue; foreach (string search in searchs) { nameCon = nameCon | Management.SampleInfo.SamplingTerrace.Like(search); perValue = perValue + BQL.Case().When(BQL.ToParam("SamplingTerrace").IndexOf(search, 0) <= 0).Then(0).Else(1).End *per; per /= 2; } lstScope.ShowProperty.Add(perValue.As("per2")); lstScope.Add(nameCon, ConnectType.OR); lstScope.OrderBy.Add(perValue.As("").DESC); per = Math.Pow(2, searchs.Length); perValue = BQLValueItem.ToValueItem(0); nameCon = BQLCondition.FalseValue; foreach (string search in searchs) { nameCon = nameCon | Management.SampleInfo.SampleNumber.Like(search); perValue = perValue + BQL.Case().When(BQL.ToParam("SampleNumber").IndexOf(search, 0) <= 0).Then(0).Else(1).End *per; per /= 2; } lstScope.ShowProperty.Add(perValue.As("per3")); lstScope.Add(nameCon, ConnectType.OR); lstScope.OrderBy.Add(perValue.As("").DESC); //lstScope.OrderBy.Add(BQL.ToParam("per1").DESC); //lstScope.OrderBy.Add(BQL.ToParam("per2").DESC); //lstScope.OrderBy.Add(BQL.ToParam("per3").DESC); return(GetContext().Select(lstScope)); }
/// <summary> /// 取模运算 /// </summary> /// <param name="value">弧度</param> /// <returns></returns> public static BQLOperatorHandle MathMod(object value1, object value2) { BQLValueItem oValue1 = BQLValueItem.ToValueItem(value1); BQLValueItem oValue2 = BQLValueItem.ToValueItem(value2); BQLValueItem.UnityDbType(oValue1, oValue2); BQLOperatorHandle fHandle = new BQLOperatorHandle(FunctionManager.DoMod, new BQLValueItem[] { oValue1, oValue2 }); //fHandle.PriorityLevel = 3; fHandle.PriorityLevel = OperatorPrecedenceUnit.GetPrecedence("%"); return(fHandle); }
internal override void FillInfo(KeyWordInfomation info) { BQLValueItem.DoFillInfo(_sourceHandle, info); if (_paramList != null) { List <BQLValueItem> lst = new List <BQLValueItem>(); foreach (object item in _paramList) { BQLValueItem value = BQLValueItem.ToValueItem(item); lst.Add(value); BQLValueItem.DoFillInfo(value, info); } _paramList = lst; } }
internal override string DisplayValue(KeyWordInfomation info) { if (_handle != null) { if (_query != null) { KeyWordConver conver = new KeyWordConver(); KeyWordInfomation qInfo = info.Clone() as KeyWordInfomation; return("(" + _handle(_sourceHandle.DisplayValue(info), new string[] { conver.ToConver(_query, qInfo).GetSql(false) }, info.DBInfo) + ")"); } else if (_paramList != null) { List <string> lstPrm = new List <string>(); foreach (object item in _paramList) { lstPrm.Add(BQLValueItem.ToValueItem(item).DisplayValue(info)); } return("(" + _handle(_sourceHandle.DisplayValue(info), lstPrm.ToArray(), info.DBInfo) + ")"); } } return(null); }