diff options
Diffstat (limited to 'sc/inc/dociter.hxx')
-rw-r--r-- | sc/inc/dociter.hxx | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/sc/inc/dociter.hxx b/sc/inc/dociter.hxx index e61d1f0281c8..15be21b697b8 100644 --- a/sc/inc/dociter.hxx +++ b/sc/inc/dociter.hxx @@ -423,6 +423,7 @@ private: SCTAB nTab; SCCOL nStartCol; SCCOL nEndCol; + SCROW nStartRow; SCROW nEndRow; SCROW* pNextRows; SCSIZE* pNextIndices; @@ -437,12 +438,47 @@ public: ScBaseCell* GetNext( SCCOL& rCol, SCROW& rRow ); sal_Bool ReturnNext( SCCOL& rCol, SCROW& rRow ); + /// Set a(nother) sheet and (re)init. + void SetTab( SCTAB nTab ); private: void Advance(); }; +/** Row-wise value iterator. */ +class ScHorizontalValueIterator +{ +private: + ScDocument *pDoc; + const ScAttrArray *pAttrArray; + ScHorizontalCellIterator *pCellIter; + sal_uLong nNumFormat; // for CalcAsShown + sal_uLong nNumFmtIndex; + SCTAB nEndTab; + SCCOL nCurCol; + SCROW nCurRow; + SCTAB nCurTab; + SCROW nAttrEndRow; + short nNumFmtType; + bool bNumValid; + bool bSubTotal; + bool bCalcAsShown; + bool bTextAsZero; + +public: + + ScHorizontalValueIterator( ScDocument* pDocument, + const ScRange& rRange, + bool bSTotal = false, + bool bTextAsZero = false ); + ~ScHorizontalValueIterator(); + void GetCurNumFmtInfo( short& nType, sal_uLong& nIndex ); + /// Does NOT reset rValue if no value found! + bool GetNext( double& rValue, sal_uInt16& rErr ); +}; + + // // gibt alle Bereiche mit nicht-Default-Formatierung zurueck (horizontal) // |