20 #ifndef INCLUDED_SC_INC_DOCITER_HXX
21 #define INCLUDED_SC_INC_DOCITER_HXX
89 bool bTextAsZero =
false );
132 typedef std::pair<sc::CellStoreType::const_iterator,size_t>
PositionType;
177 ::std::unique_ptr<ScDBQueryParamBase>
mpParam;
210 typedef std::pair<sc::CellStoreType::const_iterator, size_t>
PositionType;
314 { bAdvanceQuery = bVal; }
342 nTestEqualCondition = sal::static_int_cast<
sal_uInt8>(bVal ?
404 std::unique_ptr<ScAttrIterator>
426 std::unique_ptr<ScAttrIterator>
442 sc::CellStoreType::const_iterator
maPos;
443 sc::CellStoreType::const_iterator
maEnd;
484 std::unique_ptr<ScHorizontalCellIterator>
518 std::unique_ptr<const ScPatternAttr*[]>
587 ::std::set<SCROW>::const_iterator
maItr;
588 ::std::set<SCROW>::const_iterator
maEnd;
608 const ::std::vector<TabRanges>* pTabRangesArray);
Matrix data type that can store values of mixed types.
ScValueIterator(ScDocument &rDocument, const ScRange &rRange, SubtotalFlags nSubTotalFlags=SubtotalFlags::NONE, bool bTextAsZero=false)
bool bIgnoreMismatchOnLeadingStrings
sal_uInt8 nStopOnMismatch
const sc::CellStoreType * mpCells
sal_uInt8 nTestEqualCondition
OUString getString() const
bool isValidQuery(SCROW mnRow, const ScMatrix &rMat) const
SvNumFormatType nNumFmtType
~ScHorizontalAttrIterator()
ScRefCellValue * GetNext(SCCOL &rCol, SCROW &rRow)
~ScHorizontalValueIterator()
ScDocRowHeightUpdater(ScDocument &rDoc, OutputDevice *pOutDev, double fPPTX, double fPPTY, const ::std::vector< TabRanges > *pTabRangesArray)
Passing a NULL pointer to pTabRangesArray forces the heights of all rows in all tables to be updated...
std::unique_ptr< const ScPatternAttr *[]> ppPatterns
DataAccessMatrix(ScDBQueryParamMatrix *pParam)
sc::CellStoreType::const_position_type PositionType
virtual bool getFirst(Value &rValue) override
const ScInterpreterContext & mrContext
bool GetPos(SCCOL &rCol, SCROW &rRow)
bool equalsWithoutFormat(const ScAddress &rPos) const
::std::set< SCROW >::const_iterator maEnd
std::unique_ptr< ScAttrIterator > pColIter
const ScAttrArray * pAttrArray
virtual bool getCurrent(Value &rValue)=0
bool GetNext(Value &rValue)
Does NOT reset rValue if no value found!
void AdvanceQueryParamEntryField()
This is very similar to ScCellValue, except that it references the original value instead of copying ...
const ScAttrArray * pAttrArray
static bool IsQueryValid(ScDocument &rDoc, const ScQueryParam &rParam, SCTAB nTab, SCROW nRow, const ScRefCellValue *pCell)
SubtotalFlags mnSubTotalFlags
mdds::multi_type_vector< CellFunc, CellStoreEvent > CellStoreType
const ScInterpreterContext & mrContext
std::pair< sc::CellStoreType::const_iterator, size_t > PositionType
ScQueryCellIterator(ScDocument &rDocument, const ScInterpreterContext &rContext, SCTAB nTable, const ScQueryParam &aParam, bool bMod)
ScFormulaCell * getFormulaCell()
static const sc::CellStoreType * GetColumnCellStore(ScDocument &rDoc, SCTAB nTab, SCCOL nCol)
DataAccessInternal(ScDBQueryParamInternal *pParam, ScDocument &rDoc, const ScInterpreterContext &rContext)
std::unique_ptr< SCSIZE[]> pIndices
::std::set< SCROW >::const_iterator maItr
const ScPatternAttr * pPattern
css::uno::Any const & rValue
Store arbitrary cell value of any kind.
const ScColumn * getColumn() const
const ScRefCellValue & GetCell() const
const sc::CellStoreType * mpCells
bool IsEqualConditionFulfilled() const
void SetTab(SCTAB nTab)
Set a(nother) sheet and (re)init.
const EditTextObject * mpEditText
void SetStopOnMismatch(bool bVal)
If set, iterator stops on first non-matching cell content.
virtual ~DataAccessInternal() override
const ScRefCellValue & getRefCellValue() const
void InitPos()
Initialize position for new column.
Walk through all cells in an area.
ScFormulaCell * mpFormula
const ::std::vector< TabRanges > * mpTabRangesArray
void SetInterpreterContext(ScInterpreterContext *context)
~ScHorizontalCellIterator()
ScAttrRectIterator(ScDocument &rDocument, SCTAB nTable, SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2)
void SetTestEqualCondition(bool bVal)
If set, an additional test for SC_EQUAL condition is executed in ScTable::ValidQuery() if SC_LESS_EQU...
ScCountIfCellIterator(ScDocument &rDocument, const ScInterpreterContext &rContext, SCTAB nTable, const ScQueryParam &aParam)
bool GetNext(double &rValue, FormulaError &rErr)
Does NOT reset rValue if no value found!
ScDBQueryParamMatrix * mpParam
void SetAdvanceQueryParamEntryField(bool bVal)
std::vector< ColParam >::iterator maColPos
SvNumFormatType nNumFmtType
sc::CellStoreType::const_iterator maEnd
void AdvanceQueryParamEntryField()
std::unique_ptr< SCCOL[]> pHorizEnd
virtual bool getNext(Value &rValue)=0
const ScFormulaCell * getFormulaCell() const
virtual bool getFirst(Value &rValue) override
const ScPatternAttr * GetPattern() const
bool GetThis(double &rValue, FormulaError &rErr)
See if the cell at the current position is a non-empty cell.
std::vector< ColParam > maColPositions
VclPtr< OutputDevice > mpOutDev
bool StoppedOnMismatch() const
SCROW FindNextNonEmptyRow()
Find the next row that has some real content in one of its columns.
bool GetFirst(Value &rValue)
Does NOT reset rValue if no value found!
TabRanges(SCTAB nTab, SCROW nMaxRow)
sc::CellStoreType::const_position_type PositionType
ScHorizontalAttrIterator(ScDocument &rDocument, SCTAB nTable, SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2)
std::unique_ptr< ScAttrIterator > pColIter
ScCellIterator(ScDocument &rDoc, const ScRange &rRange, SubtotalFlags nSubTotalFlags=SubtotalFlags::NONE)
bool FindEqualOrSortedLastInRange(SCCOL &nFoundCol, SCROW &nFoundRow)
In a range assumed to be sorted find either the last of a sequence of equal entries or the last being...
::std::set< SCROW > & mrBreaks
sc::CellStoreType::const_position_type PositionType
ScHorizontalCellIterator(ScDocument &rDocument, SCTAB nTable, SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2)
std::unique_ptr< ScHorizontalCellIterator > pCellIter
const ScAddress & GetPos() const
const EditTextObject * getEditText() const
static constexpr SCROW NOT_FOUND
::std::unique_ptr< ScDBQueryParamBase > mpParam
ScFlatBoolRowSegments maRanges
sc::CellStoreType::const_iterator maPos
static const ScAttrArray * GetAttrArrayByCol(ScDocument &rDoc, SCTAB nTab, SCCOL nCol)
bool GetFirst(double &rValue, FormulaError &rErr)
Does NOT reset rValue if no value found!
void InitForNextRow(bool bInitialization)
void InitPos()
Initialize position for new column.
ScHorizontalValueIterator(ScDocument &rDocument, const ScRange &rRange)
virtual bool getNext(Value &rValue) override
const ScInterpreterContext & mrContext
const ScPatternAttr * GetNext(SCCOL &rCol1, SCCOL &rCol2, SCROW &rRow1, SCROW &rRow2)
const ScPatternAttr * GetNext(SCCOL &rCol, SCROW &rRow1, SCROW &rRow2)
ScHorizontalAttrIterator aAttrIter
void GetCurNumFmtInfo(const ScInterpreterContext &rContext, SvNumFormatType &nType, sal_uInt32 &nIndex)
bool GetNext(double &rValue, FormulaError &rErr)
Does NOT reset rValue if no value found!
ScCellValue getCellValue() const
virtual bool getFirst(Value &rValue)=0
virtual bool getCurrent(Value &rValue) override
virtual ~DataAccessMatrix() override
const ScPatternAttr * GetNext(SCCOL &rCol1, SCCOL &rCol2, SCROW &rRow)
ScDocAttrIterator(ScDocument &rDocument, SCTAB nTable, SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2)
virtual bool getCurrent(Value &rValue) override
SCCOL GetStartCol() const
SubtotalFlags mnSubTotalFlags
const ScPatternAttr * pFoundPattern
ScInterpreterContext * pContext
ScRowBreakIterator(::std::set< SCROW > &rBreaks)
std::pair< sc::CellStoreType::const_iterator, size_t > PositionType
ScHorizontalCellIterator aCellIter
::std::unique_ptr< DataAccess > mpData
virtual bool getNext(Value &rValue) override
ScDBQueryDataIterator(ScDocument &rDocument, const ScInterpreterContext &rContext, std::unique_ptr< ScDBQueryParamBase > pParam)
std::unique_ptr< SCROW[]> pNextEnd
ScDBQueryParamInternal * mpParam
const ScAttrArray * pAttrArray
ScRefCellValue maFoundCell