LibreOffice Module sc (master) 1
|
#include <queryiter.hxx>
Public Member Functions | |
ScQueryCellIteratorBase (ScDocument &rDocument, ScInterpreterContext &rContext, SCTAB nTable, const ScQueryParam &aParam, bool bMod) | |
void | SetAdvanceQueryParamEntryField (bool bVal) |
void | AdvanceQueryParamEntryField () |
Protected Types | |
enum | StopOnMismatchBits { nStopOnMismatchDisabled = 0x00 , nStopOnMismatchEnabled = 0x01 , nStopOnMismatchOccurred = 0x02 , nStopOnMismatchExecuted = nStopOnMismatchEnabled | nStopOnMismatchOccurred } |
enum | TestEqualConditionBits { nTestEqualConditionDisabled = 0x00 , nTestEqualConditionEnabled = 0x01 , nTestEqualConditionMatched = 0x02 , nTestEqualConditionFulfilled = nTestEqualConditionEnabled | nTestEqualConditionMatched } |
Protected Member Functions | |
void | InitPos () |
void | PerformQuery () |
bool | BinarySearch (SCCOL col, bool forEqual=false) |
void | SetStopOnMismatch (bool bVal) |
If set, iterator stops on first non-matching cell content. More... | |
bool | StoppedOnMismatch () const |
void | SetTestEqualCondition (bool bVal) |
If set, an additional test for SC_EQUAL condition is executed in ScTable::ValidQuery() if SC_LESS_EQUAL or SC_GREATER_EQUAL conditions are to be tested. More... | |
bool | IsEqualConditionFulfilled () const |
Protected Member Functions inherited from ScQueryCellIteratorTypeSpecific< queryType > | |
bool | HandleItemFound () |
Protected Attributes | |
sal_uInt8 | nStopOnMismatch |
sal_uInt8 | nTestEqualCondition |
bool | bAdvanceQuery |
bool | bIgnoreMismatchOnLeadingStrings |
Private Types | |
typedef ScQueryCellIteratorAccessSpecific< accessType > | AccessBase |
typedef ScQueryCellIteratorTypeSpecific< queryType > | TypeBase |
Definition at line 139 of file queryiter.hxx.
|
private |
Definition at line 143 of file queryiter.hxx.
|
private |
Definition at line 144 of file queryiter.hxx.
|
protected |
Enumerator | |
---|---|
nStopOnMismatchDisabled | |
nStopOnMismatchEnabled | |
nStopOnMismatchOccurred | |
nStopOnMismatchExecuted |
Definition at line 146 of file queryiter.hxx.
|
protected |
Enumerator | |
---|---|
nTestEqualConditionDisabled | |
nTestEqualConditionEnabled | |
nTestEqualConditionMatched | |
nTestEqualConditionFulfilled |
Definition at line 154 of file queryiter.hxx.
ScQueryCellIteratorBase< accessType, queryType >::ScQueryCellIteratorBase | ( | ScDocument & | rDocument, |
ScInterpreterContext & | rContext, | ||
SCTAB | nTable, | ||
const ScQueryParam & | aParam, | ||
bool | bMod | ||
) |
Definition at line 62 of file queryiter.cxx.
References ScQueryEntry::ByString, ScQueryEntry::ByValue, ScQueryEntry::GetQueryItem(), svl::SharedString::getString(), i, ScQueryEntry::Item::maString, ScQueryEntry::Item::meType, ScQueryEntry::Item::mfVal, mrContext, nCount, and nIndex.
void ScQueryCellIteratorBase< accessType, queryType >::AdvanceQueryParamEntryField |
Definition at line 287 of file queryiter.cxx.
|
protected |
Definition at line 328 of file queryiter.cxx.
References ScQueryEntry::ByString, ScQueryEntry::ByValue, col, ScQueryEntry::eOp, ScGlobal::GetCollator(), ScQueryEntry::GetQueryItem(), ScColumn::IsEmptyData(), ScQueryEntry::Item::meType, mrContext, utl::SearchParam::Normal, SC_EQUAL, SC_GREATER, SC_GREATER_EQUAL, SC_LESS, and SC_LESS_EQUAL.
|
protected |
Definition at line 238 of file queryiter.cxx.
|
inlineprotected |
Definition at line 227 of file queryiter.hxx.
References ScQueryCellIteratorBase< accessType, queryType >::nTestEqualCondition, and ScQueryCellIteratorBase< accessType, queryType >::nTestEqualConditionFulfilled.
|
protected |
Definition at line 90 of file queryiter.cxx.
References ScQueryEntry::ByString, CountIf, sc::element_type_empty, ScQueryEntry::GetQueryItem(), ScQueryEntry::GetQueryItems(), ScColumn::IsEmptyData(), ScColumn::maCells, ScQueryEntry::Item::mbMatchEmpty, ScQueryEntry::Item::meType, mrContext, and ScQueryEntry::nField.
|
inline |
Definition at line 238 of file queryiter.hxx.
References ScQueryCellIteratorBase< accessType, queryType >::bAdvanceQuery.
Referenced by ScInterpreter::CalculateLookup(), ScInterpreter::IterateParametersIf(), ScInterpreter::IterateParametersIfs(), ScInterpreter::ScLookup(), and ScInterpreter::ScMatch().
|
inlineprotected |
If set, iterator stops on first non-matching cell content.
May be used in SC_LESS_EQUAL queries where a cell range is assumed to be sorted; stops on first value being greater than the queried value and GetFirst()/GetNext() return NULL. StoppedOnMismatch() returns true then. However, the iterator's conditions are not set to end all queries, GetCol() and GetRow() return values for the non-matching cell, further GetNext() calls may be executed.
Definition at line 208 of file queryiter.hxx.
References ScQueryCellIteratorBase< accessType, queryType >::nStopOnMismatch, ScQueryCellIteratorBase< accessType, queryType >::nStopOnMismatchDisabled, and ScQueryCellIteratorBase< accessType, queryType >::nStopOnMismatchEnabled.
|
inlineprotected |
If set, an additional test for SC_EQUAL condition is executed in ScTable::ValidQuery() if SC_LESS_EQUAL or SC_GREATER_EQUAL conditions are to be tested.
May be used where a cell range is assumed to be sorted to stop if an equal match is found.
Definition at line 221 of file queryiter.hxx.
References ScQueryCellIteratorBase< accessType, queryType >::nTestEqualCondition, ScQueryCellIteratorBase< accessType, queryType >::nTestEqualConditionDisabled, and ScQueryCellIteratorBase< accessType, queryType >::nTestEqualConditionEnabled.
|
inlineprotected |
Definition at line 213 of file queryiter.hxx.
References ScQueryCellIteratorBase< accessType, queryType >::nStopOnMismatch, and ScQueryCellIteratorBase< accessType, queryType >::nStopOnMismatchExecuted.
|
protected |
Definition at line 164 of file queryiter.hxx.
Referenced by ScQueryCellIteratorBase< accessType, queryType >::SetAdvanceQueryParamEntryField().
|
protected |
Definition at line 165 of file queryiter.hxx.
|
protected |
Definition at line 162 of file queryiter.hxx.
Referenced by ScQueryCellIteratorBase< accessType, queryType >::SetStopOnMismatch(), and ScQueryCellIteratorBase< accessType, queryType >::StoppedOnMismatch().
|
protected |
Definition at line 163 of file queryiter.hxx.
Referenced by ScQueryCellIteratorBase< accessType, queryType >::IsEqualConditionFulfilled(), and ScQueryCellIteratorBase< accessType, queryType >::SetTestEqualCondition().