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; } }
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(); }
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); }
private static string fts(TFormulaToken t) { return(TFormulaMessages.TokenString(t)); }