Exemple #1
0
        private void FillIfListView(TreeNode IfNode)
        {
            string strOpenParen  = TFormulaMessages.TokenString(TFormulaToken.fmOpenParen);
            string strCloseParen = TFormulaMessages.TokenString(TFormulaToken.fmCloseParen);

            TImplementedFunctionList fil = new TImplementedFunctionList();

            foreach (TImplementedFunction fi in fil.Values)
            {
                TreeNode n             = IfNode.Nodes.Add(fi.FunctionName.ToLower());
                string   ParamList     = string.Empty;
                int      MinParamCount = fi.MinArgCount;
                if (MinParamCount <= 0)
                {
                    MinParamCount = 1;
                }
                int    MaxParamCount = fi.MaxArgCount;
                string Optional      = MaxParamCount > MinParamCount ? "..." : "";
                ParamList = strOpenParen.PadRight(strOpenParen.Length + MinParamCount - 1, TFormulaMessages.TokenChar(TFormulaToken.fmFunctionSep)) + Optional + strCloseParen;

                string[] sc = { n.Text + ParamList };
                n.ImageIndex         = imgOneExtra;
                n.SelectedImageIndex = n.ImageIndex;
                n.Tag = sc;
            }
        }
Exemple #2
0
        internal TRPNExpression(string Condition, ExcelFile Xls, TBand CurrentBand, FlexCelReport fr, TStackData Stack)
        {
            if (Condition != null && !Condition.StartsWith(TFormulaMessages.TokenString(TFormulaToken.fmStartFormula)))
            {
                Condition = TFormulaMessages.TokenString(TFormulaToken.fmStartFormula) + Condition;
            }

            TFormulaConvertTextWithTagsToInternal Parser = new TFormulaConvertTextWithTagsToInternal(Xls, Condition, CurrentBand, fr, Stack);

            wi = new TWorkbookInfo(Xls, Xls.ActiveSheet, 0, 0, 0, 0, 0, 0, false);
            Parser.Parse();
            Fmla = Parser.GetTokens();
        }
Exemple #3
0
        internal override bool OnFound(ExcelFile xls, object oldval, int row, int col)
        {
            TFormula oldFmla = oldval as TFormula;

            if (!FSearchInFormulas && oldFmla != null)
            {
                return(false);                                                   //do not replace if it is a formula.
            }
            if (oldval == null)
            {
                return(false);
            }

            TRichString OldStr = oldval as TRichString;

            if (OldStr == null)
            {
                OldStr = new TRichString(FlxConvert.ToString(oldval));
            }
            TRichString newStr = OldStr.Replace(SearchToStr, NewValue.ToString(), FCaseInsensitive);

            if (newStr != null && newStr.Value != null && newStr.Length > 0 && newStr.Value.StartsWith(TFormulaMessages.TokenString(TFormulaToken.fmStartFormula)))
            {
                TFormulaSpan Span = oldFmla != null ? oldFmla.Span : new TFormulaSpan();
                xls.SetCellValue(row, col, new TFormula(newStr.Value, null, Span));
            }
            else
            {
                if (oldFmla != null && !oldFmla.Span.IsOneCell)
                {
                    return(false);                                            //can't replace a shared formula with simple text.
                }
                xls.SetCellFromString(row, col, newStr);
            }

            ReplaceCount++;
            return(false);
        }
Exemple #4
0
 private static string fts(TFormulaToken t)
 {
     return(TFormulaMessages.TokenString(t));
 }