22#include <com/sun/star/sheet/DataPilotFieldSortInfo.hpp>
23#include <com/sun/star/sheet/DataPilotFieldAutoShowInfo.hpp>
24#include <com/sun/star/sheet/DataPilotFieldLayoutInfo.hpp>
25#include <com/sun/star/sheet/DataPilotFieldReference.hpp>
26#include <com/sun/star/sheet/DataPilotFieldReferenceItemType.hpp>
28#include <tools/datetime.hxx>
35#include <document.hxx>
59using ::com::sun::star::sheet::DataPilotFieldOrientation_DATA;
60using ::com::sun::star::sheet::DataPilotFieldSortInfo;
61using ::com::sun::star::sheet::DataPilotFieldAutoShowInfo;
62using ::com::sun::star::sheet::DataPilotFieldLayoutInfo;
63using ::com::sun::star::sheet::DataPilotFieldReference;
70 switch(
rStrm.GetRecId() )
79 default: OSL_FAIL(
"XclImpPCItem::XclImpPCItem - unknown record id" );
99 if(
const OUString* pText =
GetText() )
101 else if(
const double* pfValue =
GetDouble() )
103 else if(
const sal_Int16* pnValue =
GetInteger() )
105 else if(
const bool* pbValue =
GetBool() )
106 lclSetValue( rRoot, rScPos, *pbValue ? 1.0 : 0.0, SvNumFormatType::LOGICAL );
112 double fFrac = modf( fValue, &fInt );
113 SvNumFormatType nFormatType = ((fFrac == 0.0) && (fInt != 0.0)) ? SvNumFormatType::DATE :
114 ((fInt == 0.0) ? SvNumFormatType::TIME : SvNumFormatType::DATETIME);
115 lclSetValue( rRoot, rScPos, fValue, nFormatType );
117 else if(
const sal_uInt16* pnError =
GetError() )
133 OSL_ENSURE(
rStrm.GetRecSize() == 8,
"XclImpPCItem::ReadSxdouble - wrong record size" );
139 OSL_ENSURE(
rStrm.GetRecSize() == 2,
"XclImpPCItem::ReadSxboolean - wrong record size" );
145 OSL_ENSURE(
rStrm.GetRecSize() == 2,
"XclImpPCItem::ReadSxerror - wrong record size" );
151 OSL_ENSURE(
rStrm.GetRecSize() == 2,
"XclImpPCItem::ReadSxinteger - wrong record size" );
157 OSL_ENSURE(
rStrm.GetRecSize() >= 3,
"XclImpPCItem::ReadSxstring - wrong record size" );
163 OSL_ENSURE(
rStrm.GetRecSize() == 8,
"XclImpPCItem::ReadSxdatetime - wrong record size" );
164 sal_uInt16 nYear, nMonth;
166 nYear =
rStrm.ReaduInt16();
167 nMonth =
rStrm.ReaduInt16();
168 nDay =
rStrm.ReaduInt8();
169 nHour =
rStrm.ReaduInt8();
170 nMin =
rStrm.ReaduInt8();
171 nSec =
rStrm.ReaduInt8();
177 OSL_ENSURE(
rStrm.GetRecSize() == 0,
"XclImpPCItem::ReadSxempty - wrong record size" );
186 mbNumGroupInfoRead( false )
200 const OUString& rVisName = rVisNames[
mnFieldIdx ];
201 if (!rVisName.isEmpty())
209 OSL_ENSURE(
IsGroupChildField(),
"XclImpPCField::GetGroupBaseField - this field type does not have a base field" );
215 return (nItemIdx <
maItems.size()) ?
maItems[ nItemIdx ].get() :
nullptr;
220 OSL_ENSURE( nItemIdx < 3,
"XclImpPCField::GetLimitItem - invalid item index" );
221 OSL_ENSURE( nItemIdx <
maNumGroupItems.size(),
"XclImpPCField::GetLimitItem - no item found" );
227 OSL_ENSURE(
HasOrigItems(),
"XclImpPCField::WriteFieldNameToSource - only for standard fields" );
264 OSL_ENSURE( nVisC > 0,
"XclImpPCField::ReadSxfield - field without visible items" );
280 OSL_ENSURE( bCalced || bType || bTypeNone,
"XclImpPCField::ReadSxfield - unknown item data type" );
282 if( !(nVisC > 0 || bPostp) )
285 if( bItems && !bPostp )
293 if( bType && (nGroupC == 0) && (nBaseC == 0) && (nOrigC == nVisC) )
297 else if( bTypeNone && (nGroupC == nVisC) && (nBaseC > 0) && (nOrigC == 0) )
301 else if( (nGroupC == nVisC) && (nBaseC == 0) )
304 if( !bChild && bType && (nOrigC > 0) )
311 default: OSL_FAIL(
"XclImpPCField::ReadSxfield - numeric group with wrong data type" );
320 else if( bTypeNone && (nOrigC == 0) )
329 if( !bChild && !bNum && (nGroupC == 0) && (nBaseC == 0) && (nOrigC == 0) )
335 else if( !bItems && bPostp )
338 if( !bCalced && !bChild && !bNum && bType && (nGroupC == 0) && (nBaseC == 0) && (nOrigC == 0) )
372 OSL_ENSURE( !
mbNumGroupInfoRead,
"XclImpPCField::ReadSxnumgroup - multiple SXNUMGROUP records" );
380 OSL_ENSURE(
IsStdGroupField(),
"XclImpPCField::ReadSxgroupinfo - SXGROUPINFO outside grouping field" );
381 OSL_ENSURE(
maGroupOrder.empty(),
"XclImpPCField::ReadSxgroupinfo - multiple SXGROUPINFO records" );
385 size_t nSize =
rStrm.GetRecLeft() / 2;
387 for(
size_t nIdx = 0; nIdx < nSize; ++nIdx )
414 const OUString& rBaseFieldName = pBaseField->
GetFieldName( rVisNames );
415 if( rBaseFieldName.isEmpty() )
420 aGroupItems.reserve(
maItems.size() );
422 for(
const auto& rxItem :
maItems )
423 aGroupItems.emplace_back( rxItem->ConvertToText() );
426 for( sal_uInt16 nItemIdx = 0, nItemCount =
static_cast< sal_uInt16
>(
maGroupOrder.size() ); nItemIdx < nItemCount; ++nItemIdx )
430 if( *pBaseItem != *pGroupItem )
431 aGroupItems[
maGroupOrder[ nItemIdx ] ].AddElement( pBaseItem->ConvertToText() );
435 for(
const auto& rGroupItem : aGroupItems )
436 if( !rGroupItem.IsEmpty() )
466 aNumGroupDim.
SetDateInfo( aDateInfo, nScDateType );
476 const OUString& rBaseFieldName = pBaseField->GetFieldName( rVisNames );
477 if( !rBaseFieldName.isEmpty() )
488 OSL_FAIL(
"XclImpPCField::ConvertDateGroupField - unknown date field type" );
502 aNumInfo.
mfStart = *pfMinValue;
507 aNumInfo.
mfEnd = *pfMaxValue;
511 aNumInfo.
mfStep = *pfStepValue;
537 aDateInfo.
mfStep = *pnStepValue;
546 OSL_ENSURE(
IsNumGroupField(),
"XclImpPCField::GetNumGroupLimit - only for numeric grouping fields" );
549 OSL_ENSURE( pItem->GetDouble(),
"XclImpPCField::GetNumGroupLimit - SXDOUBLE item expected" );
550 return pItem->GetDouble();
557 OSL_ENSURE(
IsDateGroupField(),
"XclImpPCField::GetDateGroupLimit - only for date grouping fields" );
560 OSL_ENSURE( pItem->GetDateTime(),
"XclImpPCField::GetDateGroupLimit - SXDATETIME item expected" );
561 return pItem->GetDateTime();
576 OSL_ENSURE( pItem->GetInteger(),
"XclImpPCField::GetDateGroupStep - SXINTEGER item expected" );
577 if(
const sal_Int16* pnStep = pItem->GetInteger() )
579 OSL_ENSURE( *pnStep > 0,
"XclImpPCField::GetDateGroupStep - invalid step count" );
581 return (*pnStep > 1) ? pnStep :
nullptr;
591 maSrcRange(
ScAddress::INITIALIZE_INVALID ),
606 return (nFieldIdx <
maFields.size()) ?
maFields[ nFieldIdx ].get() :
nullptr;
632 OUString aEncUrl =
rStrm.ReadUniString();
652 nFlag =
rStrm.ReaduInt16();
666 SCCOL nFieldScCol = 0;
667 SCROW nItemScRow = 0;
669 bool bGenerateSource =
false;
686 bGenerateSource =
true;
693 bGenerateSource =
true;
697 if( bGenerateSource )
705 OUStringBuffer aDummyName(
"DPCache");
708 OUString
aName = aDummyName.makeStringAndClear();
729 size_t nPostpIdx = 0;
747 sal_uInt16 nNewFieldIdx =
static_cast< sal_uInt16
>(
maFields.size() );
750 xCurrField = std::make_shared<XclImpPCField>(
GetRoot(), *
this, nNewFieldIdx );
752 xCurrField->ReadSxfield( aPCStrm );
753 if( xCurrField->HasOrigItems() )
755 if( xCurrField->HasPostponedItems() )
756 aPostpFields.push_back( xCurrField );
758 aOrigFields.push_back( xCurrField );
760 if( bGenerateSource && (nFieldScCol <= rDoc.
MaxCol()) )
761 xCurrField->WriteFieldNameToSource( nFieldScCol++, nScTab );
764 if( !xCurrField->HasInlineItems() )
772 if( bGenerateSource && (nItemScRow <= rDoc.
MaxRow()) && (++nItemScRow <= rDoc.
MaxRow()) )
774 for(
const auto& rxOrigField : aOrigFields )
776 sal_uInt16 nItemIdx = rxOrigField->Has16BitIndexes() ? aPCStrm.
ReaduInt16() : aPCStrm.
ReaduInt8();
777 rxOrigField->WriteOrigItemToSource( nItemScRow, nScTab, nItemIdx );
792 xCurrField->ReadItem( aPCStrm );
794 else if( !aPostpFields.empty() )
797 aPostpFields[ nPostpIdx ]->ReadItem( aPCStrm );
799 if( bGenerateSource && (nItemScRow <= rDoc.
MaxRow()) )
802 if( aOrigFields.empty() && (nPostpIdx == 0) )
804 if( nItemScRow <= rDoc.
MaxRow() )
805 aPostpFields[ nPostpIdx ]->WriteLastOrigItemToSource( nItemScRow, nScTab );
809 if( nPostpIdx >= aPostpFields.size() )
816 xCurrField->ReadSxnumgroup( aPCStrm );
821 xCurrField->ReadSxgroupinfo( aPCStrm );
837 SAL_WARN(
"sc.filter",
"XclImpPivotCache::ReadPivotCacheStream - unknown record 0x" << std::hex << aPCStrm.
GetRecId() );
842 "XclImpPivotCache::ReadPivotCacheStream - field count mismatch" );
851 if( bGenerateSource && (nFieldScCol > 0) )
878 mpCacheField( pCacheField )
887 return pCacheItem->IsEmpty() ? nullptr : pCacheItem->GetText();
894 return std::pair<bool, OUString>(
false, OUString());
898 return std::pair<bool, OUString>(
false, OUString());
903 const OUString* pItemName = pCacheItem->
GetText();
905 return std::pair<bool, OUString>(
false, OUString());
906 sItemName = *pItemName;
929 return std::pair<bool, OUString>(
false, OUString());
931 return std::pair<bool, OUString>(
true, sItemName);
942 std::pair<bool, OUString> aReturnedName =
GetItemName(rSaveDim, pObj, rRoot);
943 if(aReturnedName.first)
979 return pVisName ? *pVisName : OUString();
984 return (nItemIdx <
maItems.size()) ?
maItems[ nItemIdx ].get() :
nullptr;
1009 xItem->ReadSxvi(
rStrm );
1061 OSL_ENSURE( !
maDataInfoVector.empty(),
"XclImpPTField::ConvertDataField - no data field info" );
1066 if (aFieldName.isEmpty())
1072 SAL_WARN(
"sc.filter",
"XclImpPTField::ConvertDataField - field name not found: " << aFieldName);
1081 for( ++aIt; aIt != aEnd; ++aIt )
1095 OUStringBuffer
aBuf;
1097 sal_Int32
n = rName.getLength();
1098 for (sal_Int32
i = 0;
i <
n; ++
i)
1103 aBuf.append(OUStringChar(c) + OUStringChar(c));
1108 return aBuf.makeStringAndClear();
1114 if( rFieldName.isEmpty() )
1132 if (!pVisName->isEmpty())
1138 if( !aSubtotalVec.empty() )
1142 DataPilotFieldSortInfo aSortInfo;
1149 DataPilotFieldAutoShowInfo aShowInfo;
1176 if( rFieldName.isEmpty() )
1188 for(
const auto& rxItem :
maItems )
1189 rxItem->ConvertItem( *pSaveDim, pObj, rRoot );
1196 std::pair<bool, OUString> aReturnedName = pItem->
GetItemName(*pSaveDim, pObj, rRoot);
1197 if(aReturnedName.first)
1214 const OUString* pVisName = rDataInfo.
GetVisName();
1215 if (pVisName && !pVisName->isEmpty())
1223 DataPilotFieldReference aFieldRef;
1224 aFieldRef.ReferenceType = nRefType;
1230 if (aFieldRef.ReferenceItemType == sheet::DataPilotFieldReferenceItemType::NAMED)
1234 aFieldRef.ReferenceItemName = *pRefItemName;
1256 return static_cast< sal_uInt16
>(
maFields.size() );
1268 return (nFieldIdx <
maFields.size()) ?
maFields[ nFieldIdx ].get() :
nullptr;
1281 return pField->GetFieldName();
1304 mxCurrField = std::make_shared<XclImpPTField>( *
this, nFieldCount );
1310 "XclImpPivotTable::ReadSxvd - wrong size of visible name array" );
1344 pFieldVec->reserve( nSize );
1345 for( sal_uInt16 nIdx = 0; nIdx < nSize; ++nIdx )
1347 sal_uInt16 nFieldIdx;
1348 nFieldIdx =
rStrm.ReaduInt16();
1349 pFieldVec->push_back( nFieldIdx );
1364 sal_uInt16 nSize = ulimit_cast< sal_uInt16 >(
rStrm.GetRecSize() / 6 );
1365 for( sal_uInt16 nEntry = 0; nEntry < nSize; ++nEntry )
1372 pField->SetPageFieldInfo( aPageInfo );
1388 if( !pField->HasDataFieldInfo() )
1390 pField->AddDataFieldInfo( aDataInfo );
1433 pField->ConvertRowColField( aSaveData );
1438 pField->ConvertRowColField( aSaveData );
1443 pField->ConvertPageField( aSaveData );
1452 if (!pField->GetAxes())
1453 pField->ConvertHiddenField( aSaveData );
1458 pField->ConvertDataField( aSaveData );
1464 const OUString& rSrcName =
mxPCache->GetSourceRangeName();
1465 if (!rSrcName.isEmpty())
1489 pDPObj->SetSaveData( aSaveData );
1490 pDPObj->SetSheetDesc( aDesc );
1491 pDPObj->SetOutRange( aOutRange );
1531 vector<const ScDPSaveDimension*> aFieldDims;
1532 vector<ScAddress> aFieldBtns;
1535 for (
const auto& rFieldBtn : aFieldBtns)
1540 OUString
aName = rDoc.
GetString(rFieldBtn.Col(), rFieldBtn.Row(), rFieldBtn.Tab());
1544 rDoc.
ApplyFlagsTab(rFieldBtn.Col()+1, rFieldBtn.Row(), rFieldBtn.Col()+1, rFieldBtn.Row(), rFieldBtn.Tab(), nMFlag);
1549 if (aFieldBtns.size() == aFieldDims.size())
1551 vector<const ScDPSaveDimension*>::const_iterator itDim = aFieldDims.begin();
1552 for (
const auto& rFieldBtn : aFieldBtns)
1560 rDoc.
ApplyFlagsTab(rFieldBtn.Col(), rFieldBtn.Row(), rFieldBtn.Col(), rFieldBtn.Row(), rFieldBtn.Tab(), nMFlag);
1570 vector<const ScDPSaveDimension*>::const_iterator itDim = aFieldDims.begin();
1571 for (
const auto& rFieldBtn : aFieldBtns)
1579 rDoc.
ApplyFlagsTab(rFieldBtn.Col(), rFieldBtn.Row(), rFieldBtn.Col(), rFieldBtn.Row(), rFieldBtn.Tab(), nMFlag);
1592 pField->ConvertFieldInfo( rSaveData,
mpDPObj, *
this );
1597 pField->ConvertFieldInfo( rSaveData,
mpDPObj, *
this );
1602 pField->ConvertFieldInfo( rSaveData,
mpDPObj, *
this,
true );
1607 if (!pField->GetAxes())
1608 pField->ConvertFieldInfo( rSaveData,
mpDPObj, *
this );
1634 xPCache->ReadSxidstm(
rStrm );
1661 xPTable->ReadSxview(
rStrm );
1721 rxPCache->ReadPivotCacheStream(
rStrm );
1727 rxPTable->Convert();
1733 rxPTable->MaybeRefresh();
const SCTAB MAXTABCOUNT
limiting to 10000 for now, problem with 32 bit builds for now
@ HiddenMember
dp button with popup arrow
std::unique_ptr< ScTokenArray > GetBoolErr(XclBoolError)
void IncRow(SCROW nDelta=1)
SC_DLLPUBLIC ScDPObject * InsertNewTable(std::unique_ptr< ScDPObject > pDPObj)
void AddNumGroupDimension(const ScDPSaveNumGroupDimension &rGroupDim)
void AddGroupDimension(const ScDPSaveGroupDimension &rGroupDim)
const ScRange & GetOutRange() const
bool GetHeaderLayout() const
void BuildAllDimensionMembers()
void Output(const ScAddress &rPos)
ScDPSaveData * GetSaveData() const
OUString GetFormattedString(std::u16string_view rDimName, const double fValue)
void SetHeaderLayout(bool bUseGrid)
void setColumnFieldCount(sal_uInt32 nCount)
void setCompactMode(bool bCompactMode)
void setRowFieldCount(sal_uInt32 nCount)
void getPageFieldPositions(::std::vector< ScAddress > &rAddrs) const
void setHeaderLayout(bool bHeaderLayout)
void setPageFieldCount(sal_uInt32 nCount)
void setDataFieldCount(sal_uInt32 nCount)
void getRowFieldPositions(::std::vector< ScAddress > &rAddrs) const
SCROW getRowFieldHeaderRow() const
void getColumnFieldPositions(::std::vector< ScAddress > &rAddrs) const
SC_DLLPUBLIC void SetIgnoreEmptyRows(bool bSet)
SC_DLLPUBLIC ScDPSaveDimension * GetExistingDimensionByName(std::u16string_view rName) const
SC_DLLPUBLIC void GetAllDimensionsByOrientation(css::sheet::DataPilotFieldOrientation eOrientation, std::vector< const ScDPSaveDimension * > &rDims) const
Get all dimensions in a given orientation.
SC_DLLPUBLIC ScDPSaveDimension * GetNewDimensionByName(const OUString &rName)
SC_DLLPUBLIC bool HasInvisibleMember(std::u16string_view rDimName) const
Check whether a dimension has one or more invisible members.
ScDPSaveDimension * DuplicateDimension(std::u16string_view rName)
SC_DLLPUBLIC void SetRepeatIfEmpty(bool bSet)
SC_DLLPUBLIC void SetFilterButton(bool bSet)
SC_DLLPUBLIC void SetGrandTotalName(const OUString &rName)
SC_DLLPUBLIC ScDPSaveDimension * GetDataLayoutDimension()
SC_DLLPUBLIC void SetRowGrand(bool bSet)
SC_DLLPUBLIC void SetColumnGrand(bool bSet)
SC_DLLPUBLIC ScDPDimensionSaveData * GetDimensionData()
SC_DLLPUBLIC void SetDrillDown(bool bSet)
void SetAutoShowInfo(const css::sheet::DataPilotFieldAutoShowInfo *pNew)
void SetLayoutInfo(const css::sheet::DataPilotFieldLayoutInfo *pNew)
void SetLayoutName(const OUString &rName)
void SetReferenceValue(const css::sheet::DataPilotFieldReference *pNew)
bool HasInvisibleMember() const
void SetOrientation(css::sheet::DataPilotFieldOrientation nNew)
ScDPSaveMember * GetExistingMemberByName(const OUString &rName)
void SetSubtotalName(const OUString &rName)
void SetSortInfo(const css::sheet::DataPilotFieldSortInfo *pNew)
void SetCurrentPage(const OUString *pPage)
bool IsDataLayout() const
const OUString & GetName() const
void SetSubTotals(std::vector< ScGeneralFunction > &&rFuncs)
void SetShowEmpty(bool bSet)
void SetFunction(ScGeneralFunction nNew)
Represents a new group dimension whose dimension ID is higher than the highest source dimension ID.
void AddGroupItem(const ScDPSaveGroupItem &rItem)
void SetDateInfo(const ScDPNumGroupInfo &rInfo, sal_Int32 nPart)
SC_DLLPUBLIC void SetIsVisible(bool bSet)
SC_DLLPUBLIC void SetLayoutName(const OUString &rName)
SC_DLLPUBLIC void SetShowDetails(bool bSet)
Represents a group dimension that introduces a new hierarchy for an existing dimension.
void SetDateInfo(const ScDPNumGroupInfo &rInfo, sal_Int32 nPart)
Accessor class to ScDocument.
void setStringCell(const ScAddress &rPos, const OUString &rStr)
void setFormulaCell(const ScAddress &rPos, const OUString &rFormula, formula::FormulaGrammar::Grammar eGrammar, const double *pResult=nullptr)
void setNumericCell(const ScAddress &rPos, double fVal)
SC_DLLPUBLIC SCCOL MaxCol() const
SC_DLLPUBLIC bool RenameTab(SCTAB nTab, const OUString &rName, bool bExternalDocument=false)
SC_DLLPUBLIC SCROW MaxRow() const
SC_DLLPUBLIC bool ApplyFlagsTab(SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow, SCTAB nTab, ScMF nFlags)
SC_DLLPUBLIC void CreateValidTabName(OUString &rName) const
SC_DLLPUBLIC void MakeTable(SCTAB nTab, bool _bNeedsNameCheck=true)
SC_DLLPUBLIC void ApplyAttr(SCCOL nCol, SCROW nRow, SCTAB nTab, const SfxPoolItem &rAttr)
SC_DLLPUBLIC OUString GetString(SCCOL nCol, SCROW nRow, SCTAB nTab, const ScInterpreterContext *pContext=nullptr) const
SC_DLLPUBLIC bool HasTable(SCTAB nTab) const
SC_DLLPUBLIC ScDPCollection * GetDPCollection()
SC_DLLPUBLIC SCTAB GetTableCount() const
This class contains authoritative information on the internal reference used as the data source for d...
SC_DLLPUBLIC void SetSourceRange(const ScRange &rRange)
SC_DLLPUBLIC void SetRangeName(const OUString &rName)
SvStream & ReadDouble(double &rDouble)
SvStream & ReadInt16(sal_Int16 &rInt16)
bool ConvertRange(ScRange &rScRange, const XclRange &rXclRange, SCTAB nScTab1, SCTAB nScTab2, bool bWarn)
Converts the passed Excel cell range to a Calc cell range.
void SetSkipObj(sal_uInt16 nObjId)
Sets the object with the passed identification to be skipped on import.
Represents a field in a pivot cache (a column of data items in the source area).
ScDPNumGroupInfo GetScDateGroupInfo() const
Returns a Calc struct with date grouping data.
const XclImpPCItem * GetLimitItem(sal_uInt16 nItemIdx) const
Returns the item representing a limit value in numeric/date/time grouping fields.
XclImpPivotCache & mrPCache
XclImpPCField(const XclImpRoot &rRoot, XclImpPivotCache &rPCache, sal_uInt16 nFieldIdx)
Creates a pivot cache field by reading an SXFIELD record.
XclImpPCItemVec maNumGroupItems
List of all source data items.
XclImpPCItemVec maOrigItems
List of all displayed data items.
void ConvertDateGroupField(ScDPSaveData &rSaveData, const ScfStringVec &rVisNames) const
Inserts date grouping information of this field into the passed ScDPSaveData.
const double * GetNumGroupLimit(sal_uInt16 nLimitIdx) const
Returns a limit value for numeric grouping fields.
bool mbNumGroupInfoRead
Column index of source data for this field.
ScDPNumGroupInfo GetScNumGroupInfo() const
Returns a Calc struct with numeric grouping data.
void ConvertGroupField(ScDPSaveData &rSaveData, const ScfStringVec &rVisNames) const
Inserts grouping information of this field into the passed ScDPSaveData.
SCCOL mnSourceScCol
List of items containing numeric grouping limits.
void ConvertStdGroupField(ScDPSaveData &rSaveData, const ScfStringVec &rVisNames) const
Inserts standard grouping information of this field into the passed ScDPSaveData.
const OUString & GetFieldName(const ScfStringVec &rVisNames) const
Returns the name of the field, uses the passed visible name if supported.
virtual ~XclImpPCField() override
void WriteFieldNameToSource(SCCOL nScCol, SCTAB nScTab)
Inserts the field name into the document.
XclImpPCItemVec maItems
Parent pivot cache containing this field.
const DateTime * GetDateGroupLimit(sal_uInt16 nLimitIdx) const
Returns a limit value for date grouping fields (minimum/maximum only).
const sal_Int16 * GetDateGroupStep() const
Returns the step value for date grouping fields.
void WriteLastOrigItemToSource(SCROW nScRow, SCTAB nScTab)
Inserts the data of the last inserted item into the document.
void ReadSxnumgroup(XclImpStream &rStrm)
Reads the SXNUMGROUP record describing numeric grouping fields.
void ReadSxfield(XclImpStream &rStrm)
Reads the SXFIELD record describing the field.
void ConvertNumGroupField(ScDPSaveData &rSaveData, const ScfStringVec &rVisNames) const
Inserts numeric grouping information of this field into the passed ScDPSaveData.
const XclImpPCItem * GetItem(sal_uInt16 nItemIdx) const
Returns the item at the specified position or 0 on error.
void WriteOrigItemToSource(SCROW nScRow, SCTAB nScTab, sal_uInt16 nItemIdx)
Inserts the specified item data into the document.
void ReadItem(XclImpStream &rStrm)
Reads an item data record describing a new item.
void ReadSxgroupinfo(XclImpStream &rStrm)
Reads the SXGROUPINFO record describing the item order in grouping fields.
const XclImpPCField * GetGroupBaseField() const
Returns the base field if this is a grouping field.
Represents a data item in a pivot cache.
void ReadSxinteger(XclImpStream &rStrm)
Reads an SXINTEGER record describing an integer item.
void ReadSxdouble(XclImpStream &rStrm)
Reads an SXDOUBLE record describing a floating-point item.
void ReadSxempty(XclImpStream &rStrm)
Reads an SXEMPTY record describing an empty item.
void WriteToSource(XclImpRoot &rRoot, const ScAddress &rScPos) const
Inserts the item data into the passed document.
XclImpPCItem(XclImpStream &rStrm)
void ReadSxboolean(XclImpStream &rStrm)
Reads an SXBOOLEAN record describing a boolean item.
void ReadSxstring(XclImpStream &rStrm)
Reads an SXSTRING record describing a text item.
void ReadSxerror(XclImpStream &rStrm)
Reads an SXERROR record describing an error code item.
void ReadSxdatetime(XclImpStream &rStrm)
Reads an SXDATETIME record describing a date/time item.
void ConvertHiddenField(ScDPSaveData &rSaveData) const
void ConvertPageField(ScDPSaveData &rSaveData) const
const XclImpPivotTable & mrPTable
XclPTFieldExtInfo maFieldExtInfo
General field info (SXVD record).
void AddDataFieldInfo(const XclPTDataFieldInfo &rDataInfo)
XclImpPTField(const XclImpPivotTable &rPTable, sal_uInt16 nCacheIdx)
XclPTPageFieldInfo maPageInfo
Extended field info (SXVDEX record).
void ReadSxvi(XclImpStream &rStrm)
Reads an SXVI record describing a new item of this field.
std::vector< XclImpPTItemRef > maItems
Vector of extended data field info (SXDI records).
void SetAxes(sal_uInt16 nAxes)
Sets the flags of the axes this field is part of.
void ReadSxvd(XclImpStream &rStrm)
Reads an SXVD record describing the field.
bool HasDataFieldInfo() const
void ConvertFieldInfo(const ScDPSaveData &rSaveData, ScDPObject *pObj, const XclImpRoot &rRoot, bool bPageField=false) const
void ConvertRowColField(ScDPSaveData &rSaveData) const
void ConvertRCPField(ScDPSaveData &rSaveData) const
XclPTFieldInfo maFieldInfo
Parent pivot table containing this field.
const OUString * GetItemName(sal_uInt16 nItemIdx) const
Returns the internal name of the specified item.
void ConvertDataFieldInfo(ScDPSaveDimension &rSaveDim, const XclPTDataFieldInfo &rDataInfo) const
const XclImpPCField * GetCacheField() const
Returns the corresponding pivot cache field of this field.
void SetPageFieldInfo(const XclPTPageFieldInfo &rPageInfo)
const XclImpPTItem * GetItem(sal_uInt16 nItemIdx) const
Returns the specified item.
void ConvertDataField(ScDPSaveData &rSaveData) const
OUString GetVisFieldName() const
Returns the internally set visible name of this field.
std::vector< XclPTDataFieldInfo > maDataInfoVector
Page field info (entry from SXPI record).
OUString GetFieldName() const
Returns the name of this field that is used to create the Calc dimensions.
void ReadSxvdex(XclImpStream &rStrm)
Reads an SXVDEX record describing extended options of the field.
void ConvertItem(ScDPSaveDimension &rSaveDim, ScDPObject *pObj, const XclImpRoot &rRoot) const
Inserts this item into the passed ScDPSaveDimension.
const XclImpPCField * mpCacheField
General data for this item.
const OUString * GetItemName() const
Returns the internal name of the item or 0, if no name could be found.
XclImpPTItem(const XclImpPCField *pCacheField)
void ReadSxvi(XclImpStream &rStrm)
Reads an SXVI record containing data of this item.
bool mbSelfRef
Source data type.
sal_uInt16 mnSrcType
Pivot cache stream identifier.
XclImpPCFieldVec maFields
Pivot cache settings (SXDB record).
XclImpPivotCache(const XclImpRoot &rRoot)
bool IsRefreshOnLoad() const
OUString maTabName
URL of the source data.
void ReadDconref(XclImpStream &rStrm)
Reads a DCONREF record containing the source range of the pivot cache.
OUString maUrl
Source range in the spreadsheet.
::std::vector< XclImpPCFieldRef > XclImpPCFieldVec
virtual ~XclImpPivotCache() override
sal_uInt16 mnStrmId
Name of the source data range.
ScRange maSrcRange
List of pivot cache fields.
void ReadDConName(XclImpStream &rStrm)
Read DECONNAME record which contains the defined name of the source range.
void ReadSxidstm(XclImpStream &rStrm)
Reads an SXIDSTM record containing a pivot cache stream identifier and the pivot cache.
const XclImpPCField * GetField(sal_uInt16 nFieldIdx) const
Returns read-only access to a pivot cache field.
void ReadSxvs(XclImpStream &rStrm)
Reads an SXVS record containing the source type of the pivot cache.
OUString maSrcRangeName
Sheet name of the source data.
void ReadPivotCacheStream(const XclImpStream &rStrm)
Reads the entire pivot cache stream.
void ReadSxvdex(XclImpStream &rStrm)
Reads an SXVDEX record describing extended options of a field.
void ReadSxvi(XclImpStream &rStrm)
Reads an SXVI record describing a new item of the current field.
std::vector< XclImpPivotCacheRef > maPCaches
void ReadSxpi(XclImpStream &rStrm)
Reads an SXPI record containing page field data.
XclImpPivotTableManager(const XclImpRoot &rRoot)
void ReadSxViewEx9(XclImpStream &rStrm)
Reads an SXVIEWEX9 record that specifies the pivot tables autoformat.
void ReadPivotCaches(const XclImpStream &rStrm)
Reads all used pivot caches and creates additional sheets for external data sources.
void ReadSxview(XclImpStream &rStrm)
Reads an SXVIEW record describing a new pivot table.
void ReadDconref(XclImpStream &rStrm)
Reads a DCONREF record containing the source range of a pivot cache.
std::vector< XclImpPivotTableRef > maPTables
List of all pivot caches.
void ReadSxivd(XclImpStream &rStrm)
Reads an SXIVD record containing the row field or column field order.
void ReadSxdi(XclImpStream &rStrm)
Reads an SXDI record containing data field data.
void MaybeRefreshPivotTables()
void ReadSxidstm(XclImpStream &rStrm)
Reads an SXIDSTM record containing a pivot cache stream identifier and the pivot cache.
virtual ~XclImpPivotTableManager() override
void ReadSxAddl(XclImpStream &rStrm)
Reads an SXADDL record that specifies additional info for pivot table.
XclImpPivotCacheRef GetPivotCache(sal_uInt16 nCacheIdx)
Returns the pivot cache with the specified 0-based index.
void ReadSxvd(XclImpStream &rStrm)
Reads an SXVD record describing a new field.
void ReadDConName(XclImpStream &rStrm)
void ConvertPivotTables()
Inserts all pivot tables into the Calc document.
void ReadSxex(XclImpStream &rStrm)
Reads an SXEX record containing additional settings for a pivot table.
void ReadSxvs(XclImpStream &rStrm)
Reads an SXVS record containing the source type of a pivot cache.
const XclImpPTField * GetField(sal_uInt16 nFieldIdx) const
XclPTInfo maPTInfo
Pivot cache containing field/item names.
ScfUInt16Vec maColFields
Row field indexes.
XclPTViewEx9Info maPTViewEx9Info
Extended info about the pivot table (SXEX record).
void ReadSxview(XclImpStream &rStrm)
Reads an SXVIEW record starting a new pivot table.
XclImpPivotCacheRef mxPCache
void ReadSxex(XclImpStream &rStrm)
Reads an SXEX record containing additional settings for the pivot table.
const ScfStringVec & GetVisFieldNames() const
const XclImpPivotCacheRef & GetPivotCache() const
ScRange maOutScRange
Special data field orientation field.
ScfUInt16Vec maFiltDataFields
Original data field indexes.
virtual ~XclImpPivotTable() override
ScfStringVec maVisFieldNames
Current field for importing additional info.
ScfUInt16Vec maOrigDataFields
Page field indexes.
sal_uInt16 GetFieldCount() const
void ReadSxvi(XclImpStream &rStrm)
Reads an SXVI record describing a new item of the current field.
XclImpPTField maDataOrientField
Filtered data field indexes.
ScfUInt16Vec maPageFields
Column field indexes.
XclImpPTField * GetFieldAcc(sal_uInt16 nFieldIdx)
void ReadSxvdex(XclImpStream &rStrm)
Reads an SXVDEX record describing extended options of the current field.
XclImpPivotTable(const XclImpRoot &rRoot)
void ReadSxViewEx9(XclImpStream &rStrm)
Reads an SXVIEWEX9 record that specifies the pivot tables autoformat.
ScDPObject * mpDPObj
Output range in the Calc document.
XclImpPTFieldRef mxCurrField
Vector containing all fields.
OUString GetDataFieldName(sal_uInt16 nDataFieldIdx) const
ScfUInt16Vec maRowFields
Vector containing all visible field names.
void ReadSxivd(XclImpStream &rStrm)
Reads an SXIVD record containing the row field or column field order.
void ReadSxAddl(XclImpStream &rStrm)
Reads an SXADDL record that specifies additional info for pivot table.
XclPTExtInfo maPTExtInfo
General info about the pivot table (SXVIEW record).
void Convert()
Inserts the pivot table into the Calc document.
void ReadSxdi(XclImpStream &rStrm)
Reads an SXDI record containing data field data.
XclPTAddl maPTAddlInfo
(SXVIEWEX9 record)
const XclImpPTField * GetDataField(sal_uInt16 nDataFieldIdx) const
void ReadSxvd(XclImpStream &rStrm)
Reads an SXVD record describing a new field.
void ReadSxpi(XclImpStream &rStrm)
Reads an SXPI record containing page field data.
void ApplyMergeFlags(const ScRange &rOutRange, const ScDPSaveData &rSaveData)
std::vector< XclImpPTFieldRef > maFields
Access to global data from other classes.
ExcelToSc & GetOldFmlaConverter() const
Returns the old formula converter.
XclImpAddressConverter & GetAddressConverter() const
Returns the address converter.
ScDocumentImport & GetDocImport()
const XclImpRoot & GetRoot() const
Returns this root instance - for code readability in derived classes.
XclImpSheetDrawing & GetCurrSheetDrawing() const
Returns the drawing container of the current sheet.
XclImpTabInfo & GetTabInfo() const
Returns the buffer that contains the sheet creation order.
XclImpPivotTableManager & GetPivotTableManager() const
Returns the pivot table manager.
This class is used to import record oriented streams.
sal_uInt16 GetRecId() const
Returns the current record ID.
bool StartNextRecord()
Sets stream pointer to the start of the next record content.
void CopyDecrypterFrom(const XclImpStream &rStrm)
Sets decrypter from another stream.
SCTAB GetScTabFromXclName(const OUString &rXclTabName) const
Returns the Calc sheet index from the passed original Excel sheet name.
static void DecodeUrl(OUString &rUrl, OUString &rTabName, bool &rbSameWb, const XclImpRoot &rRoot, const OUString &rEncodedUrl)
Decodes an encoded external document URL with optional sheet name.
Represents a field in a pivot cache.
bool IsGroupChildField() const
Returns true, if this field is a child field in a grouping (it has a base field).
ScfUInt16Vec maGroupOrder
Own field index in pivot cache.
bool IsDateGroupField() const
Returns true, if this field is a date/time grouping field.
bool HasInlineItems() const
Returns true, if any items are stored after the SXFIELD record.
bool IsSupportedField() const
Returns true, if the type of the field is supported by Calc.
sal_uInt16 mnFieldIdx
Type of this pivot cache field.
bool IsGroupBaseField() const
Returns true, if this field has a child field in a grouping.
bool IsNumGroupField() const
Returns true, if this field is a numeric grouping field.
XclPCFieldType meFieldType
Pivot cache field info (SXFIELD record).
bool IsStandardField() const
Returns true, if this is a standard field build directly from source data.
bool HasOrigItems() const
Returns true, if the field is based on a column in the source data area.
bool HasPostponedItems() const
Returns true, if the items are stored separately after the last field.
XclPCFieldInfo maFieldInfo
XclPCNumGroupInfo maNumGroupInfo
Order of items in a grouping field (SXGROUPINFO record).
bool IsStdGroupField() const
Returns true, if this field is a grouping field.
void SetError(sal_uInt16 nError)
Sets the item to 'error' type and adds the passed Excel error code.
const bool * GetBool() const
Returns pointer to Boolean value, if the item type is 'boolean', otherwise 0.
const sal_uInt16 * GetError() const
Returns pointer to error code, if the item type is 'error', otherwise 0.
const double * GetDouble() const
Returns pointer to value, if the item type is 'double', otherwise 0.
void SetEmpty()
Sets the item to 'empty' type.
void SetBool(bool bValue, const OUString &rText=OUString())
Sets the item to 'boolean' type and adds the passed Boolean value.
const OUString * GetText() const
Returns pointer to text, if the item type is 'text', otherwise 0.
XclPCItemType GetType() const
Returns the type of the item.
void SetDateTime(const DateTime &rDateTime, const OUString &rText=OUString())
Sets the item to 'date/time' type and adds the passed date.
void SetDouble(double fValue, const OUString &rText=OUString())
Sets the item to 'double' type and adds the passed value.
void SetText(const OUString &rText)
Sets the item to 'text' type and adds the passed text.
void SetInteger(sal_Int16 nValue)
Sets the item to 'integer' type and adds the passed value.
const DateTime * GetDateTime() const
Returns pointer to date, if the item type is 'date/time', otherwise 0.
const sal_Int16 * GetInteger() const
Returns pointer to integer, if the item type is 'integer', otherwise 0.
LanguageType GetDocLanguage() const
Returns the document language.
tools::SvRef< SotStorage > OpenStorage(tools::SvRef< SotStorage > const &xStrg, const OUString &rStrgName) const
Tries to open a storage as child of the specified storage for reading or writing.
XclTracer & GetTracer() const
Returns the filter tracer.
SvNumberFormatter & GetFormatter() const
Returns the number formatter of the Calc document.
tools::SvRef< SotStorageStream > OpenStream(tools::SvRef< SotStorage > const &xStrg, const OUString &rStrmName) const
Tries to open a new stream in the specified storage for reading or writing.
SCTAB GetCurrScTab() const
Returns the current Calc sheet index.
double GetDoubleFromDateTime(const DateTime &rDateTime) const
Converts a date/time value to a floating-point value.
ScDocument & GetDoc() const
Returns reference to the destination document (import) or source document (export).
void TracePivotDataSource(bool bExternal)
::std::vector< ScDPSaveGroupItem > ScDPSaveGroupItemVec
#define SAL_WARN(area, stream)
css::uno::Reference< css::linguistic2::XProofreadingIterator > get(css::uno::Reference< css::uno::XComponentContext > const &context)
const PPTXLayoutInfo aLayoutInfo[LAYOUT_SIZE]
constexpr TypedWhichId< SfxUInt32Item > ATTR_VALUE_FORMAT(146)
sal_uInt16 mnBaseItems
Number of special items in a grouping field.
sal_uInt16 mnGroupItems
Number of visible items for this field.
sal_uInt16 mnVisItems
Base field if this field contains grouping info.
sal_uInt16 mnFlags
Name of the pivot cache field.
sal_uInt16 mnOrigItems
Number of items in the base field.
sal_uInt16 mnGroupBase
Field containing grouping info for this field.
sal_uInt16 mnFlags
Stream identifier.
sal_uInt16 mnTotalFields
Number of standard pivot cache fields.
sal_uInt16 GetXclDataType() const
sal_Int32 GetScDateType() const
Contains data for a pivot table data field (SXDI record).
ScGeneralFunction GetApiAggFunc() const
Returns the API enum representing the aggregation function.
sal_uInt16 mnRefItem
Index to SXVD of referred field used for the results.
sal_uInt16 mnRefField
Result reference type.
sal_Int32 GetApiRefItemType() const
Returns the API constant representing the result reference item type.
sal_Int32 GetApiRefType() const
Returns the API constant representing the result reference type.
sal_uInt32 mnFlags
Number of page fields per column.
sal_Int32 GetApiLayoutMode() const
Returns the API constant representing the layout mode.
sal_uInt16 mnSortField
Several flags and number of items for AutoShow.
sal_Int32 GetApiAutoShowCount() const
Returns the number of items to be shown in AutoShow mode.
std::optional< OUString > mpFieldTotalName
sal_Int32 GetApiAutoShowMode() const
Returns the API constant representing the AutoShow mode.
sal_uInt16 mnShowField
Index to data field sorting bases on.
sal_Int32 GetApiSortMode() const
Returns the API constant representing the sorting mode.
sal_uInt16 mnCacheIdx
Number of items of this field.
css::sheet::DataPilotFieldOrientation GetApiOrient(sal_uInt16 nMask) const
Returns the API enum representing the orientation (first of row/col/page/data).
void GetSubtotals(XclPTSubtotalVec &rSubtotals) const
Returns a vector of all set subtotal functions.
OUString maDataName
The name of the pivot table.
XclRange maOutXclRange
The visible name of the data field.
sal_uInt16 mnFlags
Number of columns containing data.
sal_uInt16 mnPageFields
Number of column fields.
sal_uInt16 mnCacheIdx
First heading row.
sal_uInt16 mnColFields
Number of row fields.
sal_uInt16 mnDataFields
Number of page fields.
sal_uInt16 mnFirstHeadRow
First cell containing data.
sal_uInt16 mnRowFields
Number of all fields.
sal_uInt16 mnCacheIdx
Several flags.
sal_uInt16 mnFlags
Type of the item (e.g. data, function, grand total).
Contains data for a pivot table page field (part of SXPI record).
sal_uInt16 mnSelItem
Base field for this page info.
sal_uInt16 mnObjId
Index to selected item.
sal_uInt8 mnGridLayout
AutoFormat ID.
OUString maGrandTotalName
0 == gridlayout, 0x10 == modern
const OUString * GetVisName() const
Returns the name, if set explicitly (maVisName.mbUseCache is false).
bool HasVisName() const
The displayed name of the item.
A 2D cell range address struct with Excel column and row indexes.
void Read(XclImpStream &rStrm, bool bCol16Bit=true)
static OUString lcl_convertExcelSubtotalName(const OUString &rName)
Convert Excel-encoded subtotal name to a Calc-encoded one.
std::shared_ptr< XclImpPivotCache > XclImpPivotCacheRef
std::shared_ptr< XclImpPCField > XclImpPCFieldRef
std::shared_ptr< XclImpPTItem > XclImpPTItemRef
std::shared_ptr< XclImpPCItem > XclImpPCItemRef
std::shared_ptr< XclImpPivotTable > XclImpPivotTableRef
const sal_uInt16 EXC_ID_EOF
Internal use only.
const sal_uInt32 EXC_SXVDEX_SHOWALL
const sal_uInt16 EXC_SXFIELD_POSTPONE
const sal_uInt16 EXC_ID_SXNUMGROUP
const sal_uInt16 EXC_SXVS_EXTERN
const sal_uInt16 EXC_SXFIELD_CALCED
const sal_uInt16 EXC_SXVD_AXIS_ROWCOL
const sal_uInt16 EXC_SXFIELD_DATA_DBL
Only integers, opt. with doubles.
const sal_uInt16 EXC_SXFIELD_DATA_STR
Special state for groupings.
const sal_uInt16 EXC_SXDB_REFRESH_LOAD
const sal_uInt16 EXC_ID_SXRULE
const sal_uInt32 EXC_SXVDEX_SORT_ASC
const sal_uInt16 EXC_ID_SXDATETIME
const sal_uInt16 EXC_SXFIELD_DATA_DATE_NUM
Dates and empty strings, nothing else (?).
const sal_uInt16 EXC_ID_00F5
@ EXC_PCFIELD_NUMGROUP
Standard grouping field.
@ EXC_PCFIELD_DATEGROUP
Numeric grouping field.
@ EXC_PCFIELD_STDGROUP
Standard field without grouping.
@ EXC_PCFIELD_UNKNOWN
Calculated field.
@ EXC_PCFIELD_CALCED
Additional date grouping field.
@ EXC_PCFIELD_DATECHILD
First date grouping field (opt. with child grouping field).
const sal_uInt16 EXC_SXVD_AXIS_DATA
const sal_uInt16 EXC_SXFIELD_DATA_STR_DBL
Only strings and integers, opt. with doubles.
const sal_uInt16 EXC_SXFIELD_DATA_INT
Only strings, nothing else.
const sal_uInt16 EXC_SXNUMGROUP_TYPE_DAY
const sal_uInt16 EXC_SXFIELD_DATA_STR_INT
Only doubles, nothing else.
const sal_uInt16 EXC_ID_SXEMPTY
const sal_uInt16 EXC_SXVD_AXIS_COL
const sal_uInt16 EXC_ID_SXINDEXLIST
List index for step item in groupings.
@ EXC_PCITEM_TEXT
Empty cell.
@ EXC_PCITEM_INTEGER
Date/time.
@ EXC_PCITEM_DOUBLE
String data.
@ EXC_PCITEM_ERROR
Boolean value.
@ EXC_PCITEM_DATETIME
Floating-point value.
@ EXC_PCITEM_EMPTY
Special state, not used in Excel files.
@ EXC_PCITEM_BOOL
16-bit integer value.
constexpr OUStringLiteral EXC_STORAGE_PTCACHE
const sal_uInt16 EXC_SXFIELD_NUMGROUP
const sal_uInt16 EXC_SXFIELD_HASITEMS
const sal_uInt16 EXC_PT_MAXROWCOLCOUNT
const sal_uInt16 EXC_ID_SXPAIR
const sal_uInt16 EXC_PT_MAXFIELDCOUNT
const sal_uInt16 EXC_SXNUMGROUP_AUTOMIN
const sal_uInt16 EXC_SXVIEW_COLGRAND
const sal_uInt16 EXC_ID_SXFILT
const sal_uInt16 EXC_SXIVD_DATA
const sal_uInt16 EXC_SXVD_AXIS_ROW
const sal_uInt16 EXC_ID_SXDOUBLE
const sal_uInt16 EXC_ID_SXINTEGER
const sal_uInt16 EXC_ID_SXGROUPINFO
const sal_uInt16 EXC_ID_SXSTRING
const sal_uInt16 EXC_ID_SXBOOLEAN
::std::vector< ScGeneralFunction > XclPTSubtotalVec
const sal_uInt16 EXC_SXVD_AXIS_PAGE
const sal_uInt16 EXC_SXFIELD_INDEX_MAX
List index for minimum item in groupings.
const sal_uInt16 EXC_SXVI_HIDDEN
const sal_uInt16 EXC_ID_SXFORMULA
const sal_uInt16 EXC_SXPI_ALLITEMS
const sal_uInt32 EXC_SXVDEX_LAYOUT_BLANK
const sal_uInt16 EXC_SXFIELD_DATA_NONE
const size_t EXC_PC_MAXFIELDCOUNT
const sal_uInt16 EXC_SXDB_SAVEDATA
const sal_uInt16 EXC_SXFIELD_DATA_DATE_STR
Dates with integers or doubles without strings.
const sal_uInt16 EXC_SXFIELD_DATA_DATE
Only strings and doubles, nothing else.
const sal_uInt16 EXC_SXVI_HIDEDETAIL
const sal_uInt16 EXC_SXVD_AXIS_ROWCOLPAGE
const sal_uInt16 EXC_SXFIELD_INDEX_MIN
Dates and strings, opt. with integers or doubles.
const sal_uInt32 EXC_SXEX_DRILLDOWN
const sal_uInt16 EXC_ID_SXNAME
Unknown record.
const sal_uInt32 EXC_SXVDEX_AUTOSHOW
const sal_uInt16 EXC_ID_SXFIELD
const sal_uInt16 EXC_SXFIELD_HASCHILD
const sal_uInt16 EXC_ID_SXERROR
const sal_uInt16 EXC_SXVS_UNKNOWN
const sal_uInt16 EXC_SXVS_SHEET
const sal_uInt16 EXC_SXFIELD_INDEX_STEP
List index for maximum item in groupings.
const sal_uInt16 EXC_SXNUMGROUP_AUTOMAX
const sal_uInt16 EXC_ID_SXDB
const sal_uInt16 EXC_ID_SXFDBTYPE
const sal_uInt16 EXC_ID_SXDBEX
const sal_uInt16 EXC_SXFIELD_DATA_MASK
const sal_uInt16 EXC_SXVIEW_ROWGRAND
const sal_uInt16 EXC_ID_SXFMLA
const sal_uInt16 EXC_SXFIELD_DATA_DATE_EMP
Only dates, nothing else.