summaryrefslogtreecommitdiff
path: root/sc/inc/dociter.hxx
diff options
context:
space:
mode:
Diffstat (limited to 'sc/inc/dociter.hxx')
-rw-r--r--sc/inc/dociter.hxx36
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)
//