Esempio n. 1
0
        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));
        }
Esempio n. 2
0
        /// <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);
        }
Esempio n. 3
0
 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;
     }
 }
Esempio n. 4
0
 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);
 }