summaryrefslogtreecommitdiff
path: root/sc/inc
diff options
context:
space:
mode:
authorEike Rathke <erack@erack.de>2011-08-12 17:48:37 +0200
committerEike Rathke <erack@erack.de>2011-08-14 00:12:45 +0200
commitbaca3632869b2b0b81e5a7dd83b189d3c8367652 (patch)
tree08d0a12349f5245b188f00ef0d40216c8cde0bdb /sc/inc
parent7e8e85adbee73346403c364326544487677cd5c6 (diff)
fdo#37391 write and read [#REF!] in ODFF for reference errors
* write [#REF!] to ODFF when any part of the reference is invalid * read [#REF!] as reference error * display #REF! in UI + parse #REF! in UI + implemented error constants defined in ODFF as error tokens + parse error constants from ODFF and in UI * fixed SUM, AVERAGE, SUMSQ, PRODUCT to propagate error
Diffstat (limited to 'sc/inc')
-rw-r--r--sc/inc/compiler.hxx4
1 files changed, 4 insertions, 0 deletions
diff --git a/sc/inc/compiler.hxx b/sc/inc/compiler.hxx
index 2148b00bf8e6..8d54b873869a 100644
--- a/sc/inc/compiler.hxx
+++ b/sc/inc/compiler.hxx
@@ -87,6 +87,7 @@
#define SC_COMPILER_C_ODF_NAME_MARKER 0x00200000 // ODF '$$' marker that starts a defined (range) name
#define SC_COMPILER_C_CHAR_NAME 0x00400000 // start character of a defined name
#define SC_COMPILER_C_NAME 0x00800000 // continuation character of a defined name
+#define SC_COMPILER_C_CHAR_ERRCONST 0x01000000 // start character of an error constant ('#')
#define SC_COMPILER_FILE_TAB_SEP '#' // 'Doc'#Tab
@@ -159,6 +160,7 @@ public:
sal_uInt16 nIndex;
} name;
ScMatrix* pMat;
+ sal_uInt16 nError;
sal_Unicode cStr[ MAXSTRLEN+1 ]; // string (up to 255 characters + 0)
short nJump[MAXJUMPCOUNT+1]; // If/Chose token
};
@@ -184,6 +186,7 @@ public:
void SetSingleReference( const ScSingleRefData& rRef );
void SetDoubleReference( const ScComplexRefData& rRef );
void SetDouble( double fVal );
+ void SetErrorConstant( sal_uInt16 nErr );
// These methods are ok to use, reference count not cleared.
void SetName(bool bGlobal, sal_uInt16 nIndex);
@@ -349,6 +352,7 @@ private:
bool IsDBRange( const String& );
sal_Bool IsColRowName( const String& );
bool IsBoolean( const String& );
+ bool IsErrorConstant( const String& );
void AutoCorrectParsedSymbol();
void SetRelNameReference();