54template< ScQueryCellIteratorAccess accessType >
84 class NonEmptyCellIndexer;
86 static NonEmptyCellIndexer MakeBinarySearchIndexer(
const sc::CellStoreType& rCells,
103 void InitPosFinish(
SCROW beforeRow,
SCROW lastRow );
123 class SortedCacheIndexer;
130template< ScQueryCellIteratorType iteratorType >
138template< ScQueryCellIteratorAccess accessType, ScQueryCellIteratorType queryType >
168 using AccessBase::maCurPos;
169 using AccessBase::maParam;
170 using AccessBase::rDoc;
171 using AccessBase::mrContext;
172 using AccessBase::nTab;
173 using AccessBase::nCol;
174 using AccessBase::nRow;
175 using AccessBase::IncPos;
176 using AccessBase::IncBlock;
177 using typename AccessBase::BinarySearchCellType;
178 using AccessBase::MakeBinarySearchIndexer;
253template< ScQueryCellIteratorAccess accessType >
261 using Base::mrContext;
271 using typename Base::PositionType;
272 using Base::maCurPos;
281 using Base::getThisResult;
288 :
Base( rDocument, rContext, nTable, aParam, bMod ) {}
324 :
Base( rDocument, rContext, nTable, aParam, bMod ) {}
341template< ScQueryCellIteratorAccess accessType >
356 using Base::countIfCount;
361 :
Base( rDocument, rContext, nTable, aParam, bMod ) {}
374 :
Base( rDocument, rContext, nTable, aParam, bMod ) {}
static bool CanBeUsed(ScDocument &rDoc, const ScQueryParam &aParam, SCTAB nTab, const ScFormulaCell *cell, const ScComplexRefData *refData, ScInterpreterContext &context)
ScCountIfCellIterator< ScQueryCellIteratorAccess::SortedCache > Base
ScCountIfCellIteratorSortedCache(ScDocument &rDocument, ScInterpreterContext &rContext, SCTAB nTable, const ScQueryParam &aParam, bool bMod)
ScQueryCellIteratorBase< accessType, ScQueryCellIteratorType::CountIf > Base
ScCountIfCellIterator(ScDocument &rDocument, ScInterpreterContext &rContext, SCTAB nTable, const ScQueryParam &aParam, bool bMod)
std::pair< ScRefCellValue, SCROW > BinarySearchCellType
ScInterpreterContext & mrContext
sc::CellStoreType::const_position_type PositionType
size_t sortedCachePosLast
sc::CellStoreType::const_position_type PositionType
const ScSortedRangeCache * sortedCache
std::pair< ScRefCellValue, SCROW > BinarySearchCellType
ScInterpreterContext & mrContext
sal_uInt8 nStopOnMismatch
ScQueryCellIteratorTypeSpecific< queryType > TypeBase
bool BinarySearch(SCCOL col, bool forEqual=false)
bool IsEqualConditionFulfilled() const
sal_uInt8 nTestEqualCondition
ScQueryCellIteratorBase(ScDocument &rDocument, ScInterpreterContext &rContext, SCTAB nTable, const ScQueryParam &aParam, bool bMod)
ScQueryCellIteratorAccessSpecific< accessType > AccessBase
void SetTestEqualCondition(bool bVal)
If set, an additional test for SC_EQUAL condition is executed in ScTable::ValidQuery() if SC_LESS_EQU...
void SetAdvanceQueryParamEntryField(bool bVal)
void AdvanceQueryParamEntryField()
void SetStopOnMismatch(bool bVal)
If set, iterator stops on first non-matching cell content.
@ nTestEqualConditionMatched
@ nTestEqualConditionFulfilled
@ nTestEqualConditionEnabled
@ nTestEqualConditionDisabled
bool StoppedOnMismatch() const
@ nStopOnMismatchExecuted
@ nStopOnMismatchDisabled
@ nStopOnMismatchOccurred
bool bIgnoreMismatchOnLeadingStrings
ScQueryCellIterator< ScQueryCellIteratorAccess::SortedCache > Base
ScQueryCellIteratorSortedCache(ScDocument &rDocument, ScInterpreterContext &rContext, SCTAB nTable, const ScQueryParam &aParam, bool bMod)
static bool CanBeUsed(ScDocument &rDoc, const ScQueryParam &aParam, SCTAB nTab, const ScFormulaCell *cell, const ScComplexRefData *refData, ScInterpreterContext &context)
ScQueryCellIteratorBase< accessType, ScQueryCellIteratorType::Generic > Base
ScQueryCellIterator(ScDocument &rDocument, ScInterpreterContext &rContext, SCTAB nTable, const ScQueryParam &aParam, bool bMod)
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...
Sorted cache for one range used with interpreter functions such as VLOOKUP and MATCH.
mdds::mtv::soa::multi_type_vector< CellStoreTraits > CellStoreType
Cell container.
ScQueryCellIterator< ScQueryCellIteratorAccess::Direct > ScQueryCellIteratorDirect
ScCountIfCellIterator< ScQueryCellIteratorAccess::Direct > ScCountIfCellIteratorDirect
Complex reference (a range) into the sheet.
ScQueryCellIteratorAccess