//Вычислить значение 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); }
//Добавляет ряд в структуру группировки 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); } }
//Значение поля 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]); }
//Получить значение 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); }
public Mean GetMean(TablRow row) { return(_mean); }
//Вычислить значение public override bool CalculateBool(TablRow row) { return(_op1.CalculateBool(row) || _op2.CalculateBool(row)); }
//Вычислить значение public override bool CalculateBool(TablRow row) { return(!_op.CalculateBool(row)); }
//Вычислить значение public abstract bool CalculateBool(TablRow row);