public CalculateStackResult GetResultWithoutBracket(Stack stack) //Modified at 2009-2-16 15:35:41@Scott { ArrayList arr = new ArrayList(); string strValue = string.Empty; while (stack.Count > 0) { CalculateStackResult br = stack.Pop() as CalculateStackResult; if (br.CacluteOperation >= CombinedOperation.NumMultipy) { while (stack.Count > 0 && br.CacluteOperation >= CombinedOperation.NumMultipy) { CalculateStackResult tempResult = stack.Pop() as CalculateStackResult; br = br.CalculateResult(tempResult, this.ValueSpliter); } } arr.Add(br); } CalculateStackResult bRet = new CalculateStackResult(CombinedOperation.StrConcat, string.Empty, Bracket.NONE); if (arr.Count > 0) { bRet = arr[0] as CalculateStackResult; for (int i = 1; i < arr.Count; i++) { CalculateStackResult tempResult = arr[i] as CalculateStackResult; bRet = bRet.CalculateResult(tempResult, this.ValueSpliter); } } return(bRet); }
public string GetResult(DataRow row) { string strValue = string.Empty; if (this.Field is CalculateColumnInfo) { object objValue = (Field as CalculateColumnInfo).GetResultWithBracket(row); strValue = objValue.ToString(); } else { string strField = Field.ToString(); if (!row.Table.Columns.Contains(strField)) { strValue = string.Empty; } else { strValue = row[strField].ToString(); } } if (this.ConstantValue == string.Empty) { return(strValue); } CalculateStackResult calcStackResult = new CalculateStackResult(this.CacluteConstantOperation, strValue, Bracket.NONE); CalculateStackResult calcResult2 = new CalculateStackResult(this.CacluteFieldOperation, this.ConstantValue, Bracket.NONE); calcStackResult = calcStackResult.CalculateResult(calcResult2, string.Empty); return(calcStackResult.Result.ToString()); }