示例#1
0
        //Вычислить значение
        public override bool CalculateBool(TablRow row)
        {
            var a1 = _arg1.GetMean(row);
            var a2 = _arg2.GetMean(row);

            switch (_operation)
            {
            case "==":
                return(a1 == a2);

            case "<>":
                return(a1 != a2);

            case "<":
                return(a1 < a2);

            case ">":
                return(a1 > a2);

            case "<=":
                return(a1 <= a2);

            case ">=":
                return(a1 >= a2);
            }
            return(false);
        }
示例#2
0
 //Добавляет ряд в структуру группировки
 public void AddRow(TablRow row, string[] fields, int level)
 {
     if (level < fields.Length)
     {
         var fieldMean = row[fields[level]].String ?? "";
         if (!Dic.ContainsKey(fieldMean))
         {
             Dic.Add(fieldMean, new GroupDic(fields[level], row[fields[level]]));
         }
         Dic[fieldMean].AddRow(row, fields, level + 1);
     }
     else
     {
         Rows.Add(row);
     }
 }
示例#3
0
 //Значение поля
 public Mean GetMean(TablRow row)
 {
     if (_fieldName.ToLower() == "code")
     {
         return(new MeanString(row.Code));
     }
     if (_fieldName.ToLower() == "num")
     {
         return(new MeanInteger(row.Num));
     }
     if (row == null || !(row is TablRow) || !row.Contains(_fieldName))
     {
         return(new MeanString("Не найдено поле " + _fieldName + " "));
     }
     return(row[_fieldName]);
 }
示例#4
0
        //Получить значение
        public Mean GetMean(TablRow row)
        {
            string s = _arg.GetMean(row).String;

            if (s.IsEmpty())
            {
                return(null);
            }
            switch (_funName)
            {
            case "toident":
                s = s.Trim();
                var sb = new StringBuilder();
                foreach (char c in s)
                {
                    sb.Append(char.IsLetterOrDigit(c) ? c : '_');
                }
                return(new MeanString(sb.ToString()));
            }
            return(null);
        }
示例#5
0
 public Mean GetMean(TablRow row)
 {
     return(_mean);
 }
示例#6
0
 //Вычислить значение
 public override bool CalculateBool(TablRow row)
 {
     return(_op1.CalculateBool(row) || _op2.CalculateBool(row));
 }
示例#7
0
 //Вычислить значение
 public override bool CalculateBool(TablRow row)
 {
     return(!_op.CalculateBool(row));
 }
示例#8
0
 //Вычислить значение
 public abstract bool CalculateBool(TablRow row);