[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: koffice/kspread/functions
From: Sebastian Sauer <mail () dipe ! org>
Date: 2010-02-10 16:47:34
Message-ID: 1265820454.507953.15491.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 1088373 by sebsauer:
added the FORMULA function which allows to return the string representation of a cell's formula.
M +21 -0 information.cpp
M +14 -0 information.xml
--- trunk/koffice/kspread/functions/information.cpp #1088372:1088373
@@ -34,6 +34,10 @@
#include "InformationModule.h"
#include "ValueCalc.h"
#include "ValueConverter.h"
+#include "Sheet.h"
+#include "Region.h"
+#include "Cell.h"
+#include "Formula.h"
#include "part/Doc.h" // FIXME detach from part
@@ -42,6 +46,7 @@
// prototypes (sorted alphabetically)
Value func_errortype(valVector args, ValueCalc *calc, FuncExtra *);
Value func_filename(valVector args, ValueCalc *calc, FuncExtra *);
+Value func_formula(valVector args, ValueCalc *calc, FuncExtra *);
Value func_info(valVector args, ValueCalc *calc, FuncExtra *);
Value func_isblank(valVector args, ValueCalc *calc, FuncExtra *);
Value func_isdate(valVector args, ValueCalc *calc, FuncExtra *);
@@ -90,6 +95,10 @@
f = new Function("FILENAME", func_filename);
f->setParamCount(0);
repo->add(f);
+ f = new Function("FORMULA", func_formula);
+ f->setParamCount(1);
+ f->setNeedsExtra(true);
+ repo->add(f);
f = new Function("INFO", func_info);
repo->add(f);
f = new Function("ISBLANK", func_isblank);
@@ -349,6 +358,18 @@
return Value(calc->settings()->fileName());
}
+Value func_formula(valVector args, ValueCalc *calc, FuncExtra *e)
+{
+ if(e->ranges[0].col1 < 1 || e->ranges[0].row1 < 1)
+ return Value::errorVALUE();
+ const KSpread::Cell c(e->sheet, e->ranges[0].col1, e->ranges[0].row1);
+ if (c.isNull())
+ return Value::errorVALUE();
+ if (!c.isFormula())
+ return Value::errorNA();
+ return Value(c.formula().expression());
+}
+
// Function: N
Value func_n(valVector args, ValueCalc *calc, FuncExtra *)
{
--- trunk/koffice/kspread/functions/information.xml #1088372:1088373
@@ -20,6 +20,20 @@
</Function>
<Function>
+ <Name>FORMULA</Name>
+ <Type>String</Type>
+ <Parameter>
+ <Comment>Reference</Comment>
+ <Type>Reference</Type>
+ </Parameter>
+ <Help>
+ <Text>The FORMULA() function returns the formula of a cell as string.</Text>
+ <Syntax>FORMULA(x)</Syntax>
+ <Example>FORMULA(A1) returns "=SUM(1+2)" if the cell A1 contains such a formula.</Example>
+ </Help>
+ </Function>
+
+ <Function>
<Name>N</Name>
<Type>Int</Type>
<Parameter>
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic