LibreOffice Module sc (master) 1
|
Complex reference (a range) into the sheet. More...
#include <refdata.hxx>
Public Member Functions | |
void | InitFlags () |
void | InitRange (const ScRange &rRange) |
void | InitRangeRel (const ScDocument &rDoc, const ScRange &rRange, const ScAddress &rPos) |
void | InitRange (SCCOL nCol1, SCROW nRow1, SCTAB nTab1, SCCOL nCol2, SCROW nRow2, SCTAB nTab2) |
void | InitFromRefAddresses (const ScDocument &rDoc, const ScRefAddress &rRef1, const ScRefAddress &rRef2, const ScAddress &rPos) |
InitFlags and set range, relative to rPos if rRef1 and rRef2 say so. More... | |
bool | Valid (const ScDocument &rDoc) const |
bool | ValidExternal (const ScDocument &rDoc) const |
In external references nTab is -1 for the start tab and -1 for the end tab if one sheet and the external document was not loaded but sheet was cached, or >=0 also if more than one sheets. More... | |
bool | IsEntireCol (const ScSheetLimits &rLimits) const |
Whether this references entire columns, A:A. More... | |
bool | IsEntireRow (const ScSheetLimits &rLimits) const |
Whether this references entire rows, 1:1. More... | |
SC_DLLPUBLIC ScRange | toAbs (const ScSheetLimits &rLimits, const ScAddress &rPos) const |
SC_DLLPUBLIC ScRange | toAbs (const ScDocument &rDoc, const ScAddress &rPos) const |
void | SetRange (const ScSheetLimits &rLimits, const ScRange &rRange, const ScAddress &rPos) |
Set a new range, assuming that the ordering of the range matches the ordering of the reference data flags already set. More... | |
void | PutInOrder (const ScAddress &rPos) |
Adjust ordering (front-top-left/rear-bottom-right) to a new position. More... | |
bool | operator== (const ScComplexRefData &r) const |
ScComplexRefData & | Extend (const ScSheetLimits &rLimits, const ScSingleRefData &rRef, const ScAddress &rPos) |
Enlarge range if reference passed is not within existing range. More... | |
ScComplexRefData & | Extend (const ScSheetLimits &rLimits, const ScComplexRefData &rRef, const ScAddress &rPos) |
bool | IncEndColSticky (const ScDocument &rDoc, SCCOL nDelta, const ScAddress &rPos) |
Increment or decrement end column unless or until sticky. More... | |
bool | IncEndRowSticky (const ScDocument &rDoc, SCROW nDelta, const ScAddress &rPos) |
Increment or decrement end row unless or until sticky. More... | |
bool | IsDeleted () const |
bool | IsTrimToData () const |
void | SetTrimToData (bool bSet) |
Public Attributes | |
ScSingleRefData | Ref1 |
ScSingleRefData | Ref2 |
bool | bTrimToData = false |
Complex reference (a range) into the sheet.
Definition at line 122 of file refdata.hxx.
ScComplexRefData & ScComplexRefData::Extend | ( | const ScSheetLimits & | rLimits, |
const ScComplexRefData & | rRef, | ||
const ScAddress & | rPos | ||
) |
Definition at line 473 of file refdata.cxx.
ScComplexRefData & ScComplexRefData::Extend | ( | const ScSheetLimits & | rLimits, |
const ScSingleRefData & | rRef, | ||
const ScAddress & | rPos | ||
) |
Enlarge range if reference passed is not within existing range.
ScAddress position is used to calculate absolute references from relative references.
Definition at line 394 of file refdata.cxx.
References ScRange::aEnd, ScRange::aStart, ScAddress::Col(), ScSingleRefData::IsColRel(), ScSingleRefData::IsFlag3D(), ScSingleRefData::IsRelName(), ScSingleRefData::IsRowRel(), ScSingleRefData::IsTabRel(), Ref1, Ref2, ScAddress::Row(), ScSingleRefData::SetAbsTab(), ScAddress::SetCol(), ScSingleRefData::SetColRel(), ScSingleRefData::SetFlag3D(), SetRange(), ScSingleRefData::SetRelName(), ScSingleRefData::SetRelTab(), ScAddress::SetRow(), ScSingleRefData::SetRowRel(), ScAddress::SetTab(), ScSingleRefData::SetTabRel(), ScAddress::Tab(), ScSingleRefData::Tab(), ScSingleRefData::toAbs(), and toAbs().
Referenced by Extend(), and extendRangeReference().
bool ScComplexRefData::IncEndColSticky | ( | const ScDocument & | rDoc, |
SCCOL | nDelta, | ||
const ScAddress & | rPos | ||
) |
Increment or decrement end column unless or until sticky.
Definition at line 522 of file refdata.cxx.
References ScAddress::Col(), ScSingleRefData::Col(), ScSingleRefData::IncCol(), ScSingleRefData::IsColRel(), ScDocument::MaxCol(), Ref1, Ref2, ScSingleRefData::SetAbsCol(), and ScSingleRefData::SetRelCol().
bool ScComplexRefData::IncEndRowSticky | ( | const ScDocument & | rDoc, |
SCROW | nDelta, | ||
const ScAddress & | rPos | ||
) |
Increment or decrement end row unless or until sticky.
Definition at line 551 of file refdata.cxx.
References ScSingleRefData::IncRow(), ScSingleRefData::IsRowRel(), ScDocument::MaxRow(), Ref1, Ref2, ScAddress::Row(), ScSingleRefData::Row(), ScSingleRefData::SetAbsRow(), and ScSingleRefData::SetRelRow().
|
inline |
Definition at line 128 of file refdata.hxx.
References ScSingleRefData::InitFlags(), Ref1, and Ref2.
Referenced by QProToSc::Convert(), ExcelToSc::Convert(), LotusToSc::Convert(), ExcelToSc8::Convert(), ExcelToSc8::ConvertExternName(), ScTable::DoSubTotals(), ScCompiler::HandleDbData(), ScCompiler::HandleTableRef(), InitFromRefAddresses(), LotusRangeList::LotusRangeList(), ScConsData::OutputToDocument(), and ScInterpreter::ScDBArea().
void ScComplexRefData::InitFromRefAddresses | ( | const ScDocument & | rDoc, |
const ScRefAddress & | rRef1, | ||
const ScRefAddress & | rRef2, | ||
const ScAddress & | rPos | ||
) |
InitFlags and set range, relative to rPos if rRef1 and rRef2 say so.
Definition at line 380 of file refdata.cxx.
References ScRefAddress::GetAddress(), ScDocument::GetSheetLimits(), InitFlags(), ScRefAddress::IsRelCol(), ScRefAddress::IsRelRow(), ScRefAddress::IsRelTab(), Ref1, Ref2, ScSingleRefData::SetColRel(), ScSingleRefData::SetFlag3D(), SetRange(), ScSingleRefData::SetRowRel(), ScSingleRefData::SetTabRel(), ScAddress::Tab(), and ScRefAddress::Tab().
Referenced by ScInterpreter::PushDoubleRef().
|
inline |
Definition at line 130 of file refdata.hxx.
References ScRange::aEnd, ScRange::aStart, ScSingleRefData::InitAddress(), Ref1, and Ref2.
Referenced by ExcelToSc8::Convert(), ScRefTokenHelper::createRefToken(), ScCompiler::HandleColRowName(), ScHTMLImport::InsertRangeName(), lcl_AddRef(), ScCompiler::ParseDoubleReference(), ScInterpreter::PushDoubleRef(), ScInterpreter::PushExternalDoubleRef(), ScInterpreter::ScIntersect(), and ScMatrixRangeToken::ScMatrixRangeToken().
|
inline |
Definition at line 140 of file refdata.hxx.
References ScSingleRefData::InitAddress(), Ref1, and Ref2.
|
inline |
Definition at line 135 of file refdata.hxx.
References ScRange::aEnd, ScRange::aStart, ScSingleRefData::InitAddressRel(), Ref1, and Ref2.
Referenced by ScViewFunc::GetAutoSumFormula(), and ScFormulaDlg::SetReference().
bool ScComplexRefData::IsDeleted | ( | ) | const |
Definition at line 580 of file refdata.cxx.
References ScSingleRefData::IsDeleted(), Ref1, and Ref2.
Referenced by ScTokenArray::AdjustReferenceOnShift(), ScGroupTokenConverter::convert(), ScInterpreter::IterateParametersIfs(), and ScInterpreter::PopDoubleRef().
bool ScComplexRefData::IsEntireCol | ( | const ScSheetLimits & | rLimits | ) | const |
Whether this references entire columns, A:A.
Definition at line 509 of file refdata.cxx.
References ScSingleRefData::IsRowRel(), ScSheetLimits::MaxRow(), Ref1, Ref2, and ScSingleRefData::Row().
Referenced by ScTokenArray::AdjustReferenceInName(), ScTokenArray::AdjustReferenceOnShift(), and ScTokenArray::WrapReference().
bool ScComplexRefData::IsEntireRow | ( | const ScSheetLimits & | rLimits | ) | const |
Whether this references entire rows, 1:1.
Definition at line 516 of file refdata.cxx.
References ScSingleRefData::Col(), ScSingleRefData::IsColRel(), ScSheetLimits::MaxCol(), Ref1, and Ref2.
Referenced by ScTokenArray::AdjustReferenceInName(), ScTokenArray::AdjustReferenceOnShift(), and ScTokenArray::WrapReference().
|
inline |
Definition at line 193 of file refdata.hxx.
References bTrimToData.
Referenced by ScInterpreter::CreateMatrixFromDoubleRef().
|
inline |
Definition at line 173 of file refdata.hxx.
void ScComplexRefData::PutInOrder | ( | const ScAddress & | rPos | ) |
Adjust ordering (front-top-left/rear-bottom-right) to a new position.
Definition at line 504 of file refdata.cxx.
References ScSingleRefData::PutInOrder(), Ref1, and Ref2.
Referenced by ScTokenArray::AdjustReferenceOnCopy().
void ScComplexRefData::SetRange | ( | const ScSheetLimits & | rLimits, |
const ScRange & | rRange, | ||
const ScAddress & | rPos | ||
) |
Set a new range, assuming that the ordering of the range matches the ordering of the reference data flags already set.
Definition at line 498 of file refdata.cxx.
References ScRange::aEnd, ScRange::aStart, Ref1, Ref2, and ScSingleRefData::SetAddress().
Referenced by ScTokenArray::AdjustReferenceInMovedName(), ScTokenArray::AdjustReferenceOnMove(), ScTokenArray::AdjustReferenceOnMovedOrigin(), ScTokenArray::AdjustReferenceOnMovedOriginIfOtherSheet(), ScTokenArray::AdjustReferenceOnMovedTab(), ScTokenArray::AdjustReferenceOnShift(), Extend(), ScCompiler::HandleColRowName(), ScCompiler::HandleDbData(), ScCompiler::HandleTableRef(), InitFromRefAddresses(), ScTokenArray::MoveReferenceColReorder(), ScTokenArray::MoveReferenceRowReorder(), ScRefUpdate::MoveRelWrap(), ScConsData::OutputToDocument(), ScCompiler::ParseDoubleReference(), ScInterpreter::ScColRowNameAuto(), ScInterpreter::ScDBArea(), ScFormulaCell::UpdateGrow(), ScRangeData::UpdateGrow(), ScRangeData::UpdateTranspose(), ScFormulaCell::UpdateTranspose(), and ScTokenArray::WrapReference().
|
inline |
Definition at line 194 of file refdata.hxx.
References bTrimToData.
Referenced by ScCompiler::AnnotateTrimOnDoubleRefs().
ScRange ScComplexRefData::toAbs | ( | const ScDocument & | rDoc, |
const ScAddress & | rPos | ||
) | const |
Definition at line 488 of file refdata.cxx.
References ScDocument::GetSheetLimits(), and toAbs().
ScRange ScComplexRefData::toAbs | ( | const ScSheetLimits & | rLimits, |
const ScAddress & | rPos | ||
) | const |
Definition at line 493 of file refdata.cxx.
References Ref1, Ref2, and ScSingleRefData::toAbs().
Referenced by ScTokenArray::AdjustReferenceInMovedName(), ScTokenArray::AdjustReferenceInName(), ScTokenArray::AdjustReferenceOnMove(), ScTokenArray::AdjustReferenceOnMovedOrigin(), ScTokenArray::AdjustReferenceOnMovedOriginIfOtherSheet(), ScTokenArray::AdjustReferenceOnMovedTab(), ScTokenArray::AdjustReferenceOnShift(), ScCompiler::AdjustSumRangeShape(), ScTokenArray::CheckExpandReferenceBounds(), ScGroupTokenConverter::convert(), ExcelToSc::Convert(), ExcelToSc8::Convert(), Extend(), ScTokenArray::GetAdjacentExtendOfOuterFuncRefs(), ScRefTokenHelper::getRangeFromToken(), ScFormulaCell::InterpretInvariantFormulaGroup(), ScTokenArray::MoveReferenceColReorder(), ScTokenArray::MoveReferenceRowReorder(), ScRefUpdate::MoveRelWrap(), XclExpFmlaCompImpl::ProcessExternalName(), XclExpFmlaCompImpl::ProcessExternalRangeRef(), ScCompiler::ReplaceDoubleRefII(), ScInterpreter::ScColRowNameAuto(), ScInterpreter::ScColumn(), ScInterpreter::ScColumns(), ScInterpreter::ScOffset(), ScInterpreter::ScRow(), ScInterpreter::ScRows(), ScInterpreter::ScSheets(), ScFormulaReferenceHelper::ShowFormulaReference(), toAbs(), ScFormulaCell::UpdateGrow(), ScRangeData::UpdateGrow(), ScRangeData::UpdateTranspose(), ScFormulaCell::UpdateTranspose(), and ScTokenArray::WrapReference().
bool ScComplexRefData::Valid | ( | const ScDocument & | rDoc | ) | const |
Definition at line 478 of file refdata.cxx.
References Ref1, Ref2, and ScSingleRefData::Valid().
Referenced by ScRawToken::IsValidReference().
bool ScComplexRefData::ValidExternal | ( | const ScDocument & | rDoc | ) | const |
In external references nTab is -1 for the start tab and -1 for the end tab if one sheet and the external document was not loaded but sheet was cached, or >=0 also if more than one sheets.
Definition at line 483 of file refdata.cxx.
References ScSingleRefData::ColValid(), Ref1, Ref2, ScSingleRefData::RowValid(), ScSingleRefData::Tab(), and ScSingleRefData::ValidExternal().
bool ScComplexRefData::bTrimToData = false |
Definition at line 126 of file refdata.hxx.
Referenced by IsTrimToData(), and SetTrimToData().
ScSingleRefData ScComplexRefData::Ref1 |
Definition at line 124 of file refdata.hxx.
Referenced by RangeNameBufferWK3::Add(), ScTokenArray::AddFormulaToken(), ScTokenArray::AdjustAbsoluteRefs(), ScTokenArray::AdjustReferenceInMovedName(), ScTokenArray::AdjustReferenceInName(), ScTokenArray::AdjustReferenceOnInsertedTab(), ScTokenArray::AdjustReferenceOnMove(), ScTokenArray::AdjustSheetLocalNameReferences(), LotusRangeList::Append(), ScTokenArray::CheckExpandReferenceBounds(), ScTokenArray::CheckRelativeReferenceBounds(), ScTokenArray::ClearTabDeleted(), QProToSc::Convert(), ScGroupTokenConverter::convert(), ExcelToSc::Convert(), LotusToSc::Convert(), ExcelToSc8::Convert(), XclExpChSourceLink::ConvertDataSequence(), ExcelToSc8::ConvertExternName(), XclExpFmlaCompImpl::ConvertRefData(), ScChart2DataProvider::createDataSource(), ScCompiler::CreateStringFromSingleRef(), ScRawToken::CreateToken(), ScTable::DoSubTotals(), ScInterpreter::DoubleRefToRange(), ScInterpreter::DoubleRefToVars(), Extend(), extendRangeReference(), ScTokenArray::GenHash(), XclImpChSourceLink::GetCellCount(), ScRefTokenHelper::getDoubleRefDataFromToken(), TokenPool::GetElement(), ScInterpreter::GetExternalDoubleRef(), ScDoubleRefToken::GetSingleRef(), ScExternalDoubleRefToken::GetSingleRef(), ScCompiler::HandleColRowName(), ScCompiler::HandleIIOpCodeInternal(), ScCompiler::HandleTableRef(), ScTokenArray::ImplGetReference(), IncEndColSticky(), IncEndRowSticky(), InitFlags(), InitFromRefAddresses(), InitRange(), InitRangeRel(), ScHTMLImport::InsertRangeName(), IsDeleted(), IsEntireCol(), IsEntireRow(), ScTokenArray::IsInvariant(), XclExpFmlaCompImpl::IsRef2D(), ScRawToken::IsValidReference(), ScInterpreter::JumpMatrix(), LotusRangeList::LotusRangeList(), ScRefUpdate::MoveRelWrap(), operator==(), ScConsData::OutputToDocument(), ScCompiler::ParseDoubleReference(), ScInterpreter::PopRangeMatrix(), XclExpFmlaCompImpl::ProcessExternalRangeRef(), XclExpFmlaCompImpl::ProcessRangeRef(), PutInOrder(), LotusToSc::ReadCRD(), ScTokenArray::ReadjustAbsolute3DReferences(), ScTokenArray::ReferencesSheet(), ScCompiler::ReplaceDoubleRefII(), ScInterpreter::ScColRowNameAuto(), ScInterpreter::ScIntersect(), ScInterpreter::ScUnionFunc(), SetRange(), ScFormulaDlg::SetReference(), ScRawToken::SetSingleReference(), ScChart2DataSequence::setToPointInTime(), SingleDoubleRefModifier::SingleDoubleRefModifier(), TokenPool::Store(), XclExpLinkManager::StoreCellRange(), ScChart2DataSequence::switchToNext(), toAbs(), ScRangeData::UpdateGrow(), ScRangeData::UpdateTranspose(), ScFormulaCell::UpdateTranspose(), Valid(), ScInterpreter::ValidateRef(), ScRangeData::ValidateTabRefs(), and ValidExternal().
ScSingleRefData ScComplexRefData::Ref2 |
Definition at line 125 of file refdata.hxx.
Referenced by RangeNameBufferWK3::Add(), ScTokenArray::AddFormulaToken(), ScTokenArray::AdjustAbsoluteRefs(), ScTokenArray::AdjustReferenceInMovedName(), ScTokenArray::AdjustReferenceInName(), ScTokenArray::AdjustReferenceOnInsertedTab(), ScTokenArray::AdjustReferenceOnMove(), ScTokenArray::AdjustSheetLocalNameReferences(), ScCompiler::AdjustSumRangeShape(), LotusRangeList::Append(), ScTokenArray::CheckExpandReferenceBounds(), ScTokenArray::CheckRelativeReferenceBounds(), ScTokenArray::ClearTabDeleted(), QProToSc::Convert(), ScGroupTokenConverter::convert(), ExcelToSc::Convert(), LotusToSc::Convert(), ExcelToSc8::Convert(), XclExpChSourceLink::ConvertDataSequence(), ExcelToSc8::ConvertExternName(), XclExpFmlaCompImpl::ConvertRefData(), ScChart2DataProvider::createDataSource(), ScCompiler::CreateStringFromSingleRef(), ScTable::DoSubTotals(), ScInterpreter::DoubleRefToRange(), ScInterpreter::DoubleRefToVars(), Extend(), extendRangeReference(), ScTokenArray::GenHash(), XclImpChSourceLink::GetCellCount(), ScRefTokenHelper::getDoubleRefDataFromToken(), TokenPool::GetElement(), ScInterpreter::GetExternalDoubleRef(), ScDoubleRefToken::GetSingleRef2(), ScExternalDoubleRefToken::GetSingleRef2(), ScCompiler::HandleColRowName(), ScCompiler::HandleIIOpCodeInternal(), ScCompiler::HandleTableRef(), ScTokenArray::ImplGetReference(), IncEndColSticky(), IncEndRowSticky(), InitFlags(), InitFromRefAddresses(), InitRange(), InitRangeRel(), ScHTMLImport::InsertRangeName(), IsDeleted(), IsEntireCol(), IsEntireRow(), ScTokenArray::IsInvariant(), XclExpFmlaCompImpl::IsRef2D(), ScInterpreter::JumpMatrix(), lcl_InvalidateReference(), LotusRangeList::LotusRangeList(), ScRefUpdate::MoveRelWrap(), operator==(), ScConsData::OutputToDocument(), ScCompiler::ParseDoubleReference(), ScInterpreter::PopRangeMatrix(), XclExpFmlaCompImpl::ProcessExternalRangeRef(), XclExpFmlaCompImpl::ProcessRangeRef(), PutInOrder(), LotusToSc::ReadCRD(), ScTokenArray::ReadjustAbsolute3DReferences(), ScTokenArray::ReferencesSheet(), ScCompiler::ReplaceDoubleRefII(), ScInterpreter::ScIntersect(), ScInterpreter::ScUnionFunc(), ExcelToSc::SetComplCol(), ExcelToSc::SetComplRow(), SetRange(), ScFormulaDlg::SetReference(), ScRawToken::SetSingleReference(), ScChart2DataSequence::setToPointInTime(), SingleDoubleRefModifier::SingleDoubleRefModifier(), TokenPool::Store(), XclExpLinkManager::StoreCellRange(), ScChart2DataSequence::switchToNext(), toAbs(), ScRangeData::UpdateGrow(), ScRangeData::UpdateTranspose(), ScFormulaCell::UpdateTranspose(), Valid(), ScInterpreter::ValidateRef(), ScRangeData::ValidateTabRefs(), and ValidExternal().