30 sal_uInt16 nTmp = nRelBit & 0x1fff;
32 if( nRelBit & 0x4000 )
41 if( nRelBit & 0x2000 )
43 SCROW nRelRow =
static_cast<sal_Int16
>(nTmp << 3);
51 if( nRelBit & 0x8000 )
83 OString s = OString::Concat(
"QPRO_") + pExtString;
98 nArgs =
static_cast<sal_uInt16
>(
nCount);
107 eParam[ 0 ] = eParam[ 1 ];
115 eParam[ 0 ] = eParam[ 1 ];
138 SAL_WARN_IF( nArgs < 3,
"sc.filter",
"QProToSc::DoFunc - ocRRI expects 3 parameters but got " << nArgs);
146 SAL_WARN_IF( nArgs < 4,
"sc.filter",
"QProToSc::DoFunc - ocIpmt expects 4 parameters but got " << nArgs);
152 sal_Int16 nLast = nArgs - 1;
153 aPool << eParam[ nLast ];
175#define SAFEDEC_OR_RET(nRef, amt, ret) \
182#define SAFEREAD_OR_BREAK( aStream, i, nRef, eRet, ret ) \
183 if (!aStream.good()) \
195 sal_uInt16 nIntCount = 0, nStringCount = 0, nFloatCount = 0, nDLLCount = 0, nArgCount = 0;
196 sal_uInt16 nIntArray[
nBufSize ] = {0};
198 sal_uInt16 nDLLArray[
nBufSize ] = {0};
199 sal_uInt16 nNote, nRelBits;
205 double nFloatArray[
nBufSize ] = {0};
206 const char* pExtString =
nullptr;
215 for( sal_uInt16
i=0;
i <
nRef;
i++)
219 if( nFmla[
i ] == 0x05 )
223 nIntArray[ nIntCount ] = nInt;
228 if( nFmla[
i ] == 0x00 )
232 nFloatArray[ nFloatCount ] = nFloat;
237 if( nFmla[
i ] == 0x1a )
240 sal_uInt16 nDummy, nDLLId = 0;
242 nArgArray[ nArgCount ] = nArg;
243 nDLLArray[ nDLLCount ] = nDLLId;
248 if( nFmla[
i ] == 0x06 )
251 sStringArray[ nStringCount ] = aTmp;
268 while(
i <
nRef && ( nFmla[
i ] != 0x03 ) )
282 DoFunc( eOc, 0,
nullptr );
286 DoFunc( eOc, 1,
nullptr );
290 DoFunc( eOc, 2,
nullptr );
294 DoFunc( eOc, 3,
nullptr );
298 DoFunc( eOc, 4,
nullptr );
302 DoFunc( eOc, 5,
nullptr );
306 DoFunc( eOc, 6,
nullptr );
312 DoFunc( eOc, nPar,
nullptr );
321 ReadSRD( rDoc, aSRD, nPage, nCol, nRelBits );
342 DoFunc( eOc, nArgs,
nullptr );
359 nVal = nIntArray[ nIntCount ];
367 nVal = nFloatArray[ nFloatCount ];
374 OUString
aLabel(sStringArray[ nStringCount ]);
662 const char* pExtString =
nullptr;
674 pExtString =
"Index2D";
694 pExtString =
"CTERM";
698 pExtString =
"MEMAVAIL";
702 pExtString =
"MEMEMSAVAIL";
706 pExtString =
"FILEEXISTS";
710 pExtString =
"CURVALUE";
722 pExtString =
"VERSION";
726 pExtString =
"INDEX3D";
730 pExtString =
"CELLINDEX3D";
734 pExtString =
"PROPERTY";
742 pExtString =
"COMMAND";
746 pExtString =
nullptr;
void ReadSRD(const ScDocument &rDoc, ScSingleRefData &rR, sal_Int8 nPage, sal_Int8 nCol, sal_uInt16 rRel)
static QPRO_FUNC_TYPE IndexToType(sal_uInt8 nToken)
static DefTokenId IndexToDLLId(sal_uInt16 nIndex)
ConvErr Convert(const ScDocument &rDoc, std::unique_ptr< ScTokenArray > &pArray)
void IncToken(TokenId &aParam)
static DefTokenId IndexToToken(sal_uInt16 nToken)
void DoFunc(DefTokenId eOc, sal_uInt16 nArgs, const char *pExtString)
static const char * getString(sal_uInt8 nIndex)
static const size_t nBufSize
QProToSc(SvStream &aStr, svl::SharedStringPool &rSPool, const ScAddress &rRefPos)
SvStream & ReadDouble(double &rDouble)
rtl_TextEncoding GetStreamCharSet() const
SvStream & ReadSChar(signed char &rChar)
SvStream & ReadUInt16(sal_uInt16 &rUInt16)
SvStream & ReadUChar(unsigned char &rChar)
std::unique_ptr< ScTokenArray > GetTokenArray(const ScDocument &rDoc, const TokenId &rId)
bool HasMoreTokens() const
#define SAL_WARN_IF(condition, area, stream)
#define SAL_N_ELEMENTS(arr)
Complex reference (a range) into the sheet.
Single reference (one address) into the sheet.
void SetAbsCol(SCCOL nVal)
void SetAbsTab(SCTAB nVal)
void InitAddress(const ScAddress &rAdr)
InitAddress: InitFlags and set address.
void SetRelRow(SCROW nVal)
void SetRelTab(SCTAB nVal)
ScAddress toAbs(const ScSheetLimits &rLimits, const ScAddress &rPos) const
void SetAbsRow(SCROW nVal)
void SetRelCol(SCCOL nVal)
void SetFlag3D(bool bVal)
void InitFlags()
No default ctor, because used in ScRawToken union, set InitFlags!