Warning, file /office/calligra/filters/sheets/qpro/qproformula.cc was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).

0001 /* This file is part of the KDE project
0002    SPDX-FileCopyrightText: 2001 Graham Short <grahshrt@netscape.net>
0003 
0004    SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006 
0007 #include "qproformula.h"
0008 
0009 static QpFormulaConv gOverride[] = {
0010     {14,  QpFormula::binaryOperand, "=="},      // '=' => '=='
0011     {15,  QpFormula::binaryOperand, "!="},      // '<>' => '!='
0012     {20,  QpFormula::func2,         "AND("},    // (e.g.)  2 #AND# 3  => AND(2;3)
0013     {21,  QpFormula::func2,         "OR("},     // (e.g.)  2 #OR# 3  => OR(2;3)
0014     {22,  QpFormula::func1,         "NOT("},    // (e.g.)  #NOT# 3  => NOT(3)
0015     {24,  QpFormula::binaryOperand, "+"},       // string concat "&" => "+"
0016     {32,  QpFormula::func0,         "ERR()"},   // @err => ERR()
0017     {33,  QpFormula::absKludge,     0},         // @abs => if( (arg)<0; -(arg); (arg))
0018     {34,  QpFormula::func1,         "INT("},    // @int => INT
0019     {38,  QpFormula::func0,         "PI()"},    // @pi => PI()
0020     {47,  QpFormula::func2,         "MOD("},    // @mod => MOD
0021     {51,  QpFormula::func0,         "(1==0)"},  // @false => (1==0)
0022     {52,  QpFormula::func0,         "(1==1)"},  // @true  => (1==1)
0023     {53,  QpFormula::func0,         "rand()"},  // @rand  => rand()
0024     {68,  QpFormula::func1,         "ISNUM("},  // @isnumber => ISNUM
0025     {69,  QpFormula::func1,         "ISTEXT("}, // @isstring => ISTEXT
0026     {70,  QpFormula::func1,         "len("},    // @length   => len
0027     {81,  QpFormula::funcV,         "average("}, // @avg    => average
0028     {87,  QpFormula::funcV,         "variance("},// @var    => variance
0029     {88,  QpFormula::funcV,         "stddev("},  // @std    => stddev
0030     {101, QpFormula::func2,         "REPT("},    // @repeat => REPT
0031     {0,   0,                        0}
0032 };
0033 
0034 Calligra::Sheets::QuattroPro::Formula::Formula(QpRecFormulaCell& pCell, QpTableNames& pTable)
0035         : QpFormula(pCell, pTable)
0036 {
0037     formulaStart("=");   // quattro pro starts formulas with "+"
0038     // kspread uses "="
0039     dropLeadingAt();     // quattro pro starts it's functions with '@'
0040     // kspread doesn't like this
0041     argSeparator(";");   // quattro pro separates function arguments with ","
0042     // kspread likes ";"
0043 
0044     // override some of the default conversions
0045     replaceFunc(gOverride);
0046 }
0047 
0048 Calligra::Sheets::QuattroPro::Formula::~Formula()
0049 {
0050 }