diff options
author | Eike Rathke <erack@erack.de> | 2011-08-12 17:48:37 +0200 |
---|---|---|
committer | Eike Rathke <erack@erack.de> | 2011-08-14 00:12:45 +0200 |
commit | baca3632869b2b0b81e5a7dd83b189d3c8367652 (patch) | |
tree | 08d0a12349f5245b188f00ef0d40216c8cde0bdb /sc/inc | |
parent | 7e8e85adbee73346403c364326544487677cd5c6 (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.hxx | 4 |
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(); |