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());
        }