LibreOffice Module sc (master) 1
dpobject.hxx
Go to the documentation of this file.
1/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2/*
3 * This file is part of the LibreOffice project.
4 *
5 * This Source Code Form is subject to the terms of the Mozilla Public
6 * License, v. 2.0. If a copy of the MPL was not distributed with this
7 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8 *
9 * This file incorporates work covered by the following license notice:
10 *
11 * Licensed to the Apache Software Foundation (ASF) under one or more
12 * contributor license agreements. See the NOTICE file distributed
13 * with this work for additional information regarding copyright
14 * ownership. The ASF licenses this file to you under the Apache
15 * License, Version 2.0 (the "License"); you may not use this file
16 * except in compliance with the License. You may obtain a copy of
17 * the License at http://www.apache.org/licenses/LICENSE-2.0 .
18 */
19
20#pragma once
21
22#include "scdllapi.h"
23#include "global.hxx"
24#include "address.hxx"
25#include "dpcache.hxx"
26#include "dptypes.hxx"
27#include "pivot.hxx"
28#include "calcmacros.hxx"
29
30#include <com/sun/star/sheet/DataPilotFieldOrientation.hpp>
32#include <unotools/resmgr.hxx>
33
34#include <memory>
35#include <vector>
36#include <map>
37
38namespace com::sun::star {
39
40 namespace container {
41 class XIndexAccess;
42 class XNameAccess;
43 }
44
45 namespace sdbc {
46 class XRowSet;
47 }
48
49 namespace sheet {
50 class XMembersAccess;
51 class XDimensionsSupplier;
52 struct DataPilotTablePositionData;
53 struct DataPilotTableHeaderData;
54 struct DataPilotFieldFilter;
55 }
56}
57
58namespace tools { class Rectangle; }
59class ScDPSaveData;
60class ScDPOutput;
63class ScDPTableData;
65class ScRangeList;
66class ScDPCache;
67class ScDocument;
68
70{
71 OUString aServiceName;
72 OUString aParSource;
73 OUString aParName;
74 OUString aParUser;
75 OUString aParPass;
76
77 ScDPServiceDesc( OUString aServ, OUString aSrc, OUString aNam,
78 OUString aUser, OUString aPass );
79
80 bool operator== ( const ScDPServiceDesc& rOther ) const;
81};
82
84{
85private:
87 // settings
88 std::unique_ptr<ScDPSaveData> pSaveData;
89 OUString aTableName;
90 OUString aTableTag;
92 std::unique_ptr<ScSheetSourceDesc> pSheetDesc; // for sheet data
93 std::unique_ptr<ScImportSourceDesc> pImpDesc; // for database data
94 std::unique_ptr<ScDPServiceDesc> pServDesc; // for external service
95 std::shared_ptr<ScDPTableData> mpTableData;
96 // cached data
97 css::uno::Reference<css::sheet::XDimensionsSupplier> xSource;
98 std::unique_ptr<ScDPOutput> pOutput;
99
100 // name -> sequence of sequences of css::xml::FastAttribute or css::xml::Attribute
101 // see PivotTable::putToInteropGrabBag in sc/source/filter/oox/pivottablebuffer.cxx for details
102 std::map<OUString, css::uno::Any> maInteropGrabBag;
103
104 sal_Int32 nHeaderRows; // page fields plus filter button
105 bool mbHeaderLayout:1; // true : grid, false : standard
109
110 SAL_DLLPRIVATE ScDPTableData* GetTableData();
111 SAL_DLLPRIVATE void CreateObjects();
112 SAL_DLLPRIVATE void CreateOutput();
113 SAL_DLLPRIVATE void ClearSource();
114 SAL_DLLPRIVATE void FillLabelDataForDimension(
115 const css::uno::Reference< css::container::XIndexAccess>& xDims,
116 sal_Int32 nDim, ScDPLabelData& rLabelData);
117
118public:
120 ScDPObject(const ScDPObject& r);
121 ~ScDPObject();
122
123 ScDPObject& operator= (const ScDPObject& r);
124
125 void EnableGetPivotData(bool b);
126
127 void SetAllowMove(bool bSet);
128
129 void InvalidateData();
130 void Clear();
131 void ClearTableData();
132 void ReloadGroupTableData();
133
134 void Output( const ScAddress& rPos );
135 ScRange GetNewOutputRange( bool& rOverflow );
136
137 ScRange GetOutputRangeByType( sal_Int32 nType );
138 ScRange GetOutputRangeByType( sal_Int32 nType ) const;
139
140 void SetSaveData(const ScDPSaveData& rData);
141 ScDPSaveData* GetSaveData() const { return pSaveData.get(); }
142
143 void SetOutRange(const ScRange& rRange);
144 const ScRange& GetOutRange() const;
145
146 void SetHeaderLayout(bool bUseGrid);
147 bool GetHeaderLayout() const { return mbHeaderLayout;}
148
149 void SetSheetDesc(const ScSheetSourceDesc& rDesc);
150 void SetImportDesc(const ScImportSourceDesc& rDesc);
151 void SetServiceData(const ScDPServiceDesc& rDesc);
152
153 void WriteSourceDataTo( ScDPObject& rDest ) const;
154 void WriteTempDataTo( ScDPObject& rDest ) const;
155
156 const ScSheetSourceDesc* GetSheetDesc() const { return pSheetDesc.get(); }
157 const ScImportSourceDesc* GetImportSourceDesc() const { return pImpDesc.get(); }
158 const ScDPServiceDesc* GetDPServiceDesc() const { return pServDesc.get(); }
159
160 css::uno::Reference<css::sheet::XDimensionsSupplier> const & GetSource();
161
162 bool IsSheetData() const;
163 bool IsImportData() const { return(pImpDesc != nullptr); }
164 bool IsServiceData() const { return(pServDesc != nullptr); }
165
166 void SetName(const OUString& rNew);
167 const OUString& GetName() const { return aTableName; }
168 void SetTag(const OUString& rNew);
169 const OUString& GetTag() const { return aTableTag; }
170
176 bool IsDataDescriptionCell(const ScAddress& rPos);
177
178 bool IsDimNameInUse(std::u16string_view rName) const;
179 OUString GetDimName( tools::Long nDim, bool& rIsDataLayout, sal_Int32* pFlags = nullptr );
180 bool IsDuplicated( tools::Long nDim );
181 tools::Long GetDimCount();
182 void GetHeaderPositionData(const ScAddress& rPos, css::sheet::DataPilotTableHeaderData& rData);
183 tools::Long GetHeaderDim( const ScAddress& rPos, css::sheet::DataPilotFieldOrientation& rOrient );
184 bool GetHeaderDrag( const ScAddress& rPos, bool bMouseLeft, bool bMouseTop,
185 tools::Long nDragDim,
186 tools::Rectangle& rPosRect, css::sheet::DataPilotFieldOrientation& rOrient, tools::Long& rDimPos );
187 bool IsFilterButton( const ScAddress& rPos );
188
189 OUString GetFormattedString( std::u16string_view rDimName, const double fValue );
190
191 double GetPivotData(
192 const OUString& rDataFieldName,
193 std::vector<css::sheet::DataPilotFieldFilter>& rFilters);
194
195 bool ParseFilters(
196 OUString& rDataFieldName,
197 std::vector<css::sheet::DataPilotFieldFilter>& rFilters,
198 std::vector<sal_Int16>& rFilterFuncs,
199 std::u16string_view rFilterList );
200
201 void GetMemberResultNames(ScDPUniqueStringSet& rNames, tools::Long nDimension);
202
203 void ToggleDetails(const css::sheet::DataPilotTableHeaderData& rElemDesc, ScDPObject* pDestObj);
204
205 void FillOldParam(ScPivotParam& rParam) const;
206 void FillLabelData(sal_Int32 nDim, ScDPLabelData& Labels);
207 void FillLabelData(ScPivotParam& rParam);
208
209 void GetFieldIdsNames(css::sheet::DataPilotFieldOrientation nOrient, std::vector<tools::Long>& rIndices,
210 std::vector<OUString>& rNames);
211
212 bool GetHierarchiesNA( sal_Int32 nDim, css::uno::Reference< css::container::XNameAccess >& xHiers );
213 void GetHierarchies( sal_Int32 nDim, css::uno::Sequence< OUString >& rHiers );
214
215 sal_Int32 GetUsedHierarchy( sal_Int32 nDim );
216
217 bool GetMembersNA( sal_Int32 nDim, css::uno::Reference< css::sheet::XMembersAccess >& xMembers );
218 bool GetMembersNA( sal_Int32 nDim, sal_Int32 nHier, css::uno::Reference< css::sheet::XMembersAccess >& xMembers );
219
220 bool GetMemberNames( sal_Int32 nDim, css::uno::Sequence< OUString >& rNames );
221 bool GetMembers( sal_Int32 nDim, sal_Int32 nHier, ::std::vector<ScDPLabelData::Member>& rMembers );
222
223 void UpdateReference( UpdateRefMode eUpdateRefMode,
224 const ScRange& r, SCCOL nDx, SCROW nDy, SCTAB nDz );
225 bool RefsEqual( const ScDPObject& r ) const;
226 void WriteRefsTo( ScDPObject& r ) const;
227
228 void GetPositionData(const ScAddress& rPos, css::sheet::DataPilotTablePositionData& rPosData);
229
230 bool GetDataFieldPositionData(const ScAddress& rPos,
231 css::uno::Sequence<
232 css::sheet::DataPilotFieldFilter >& rFilters);
233
234 void GetDrillDownData(const ScAddress& rPos,
235 css::uno::Sequence< css::uno::Sequence< css::uno::Any > >& rTableData);
236
237 // apply drop-down attribute, initialize nHeaderRows, without accessing the source
238 // (button attribute must be present)
239 void RefreshAfterLoad();
240
241 void BuildAllDimensionMembers();
242
247 bool SyncAllDimensionMembers();
248
249 static bool HasRegisteredSources();
250 static std::vector<OUString> GetRegisteredSources();
251 static css::uno::Reference<css::sheet::XDimensionsSupplier>
252 CreateSource( const ScDPServiceDesc& rDesc );
253
254 static void ConvertOrientation(
255 ScDPSaveData& rSaveData,
256 const ScPivotFieldVector& rFields, css::sheet::DataPilotFieldOrientation nOrient,
257 const css::uno::Reference< css::sheet::XDimensionsSupplier>& xSource,
258 const ScDPLabelDataVector& rLabels,
259 const ScPivotFieldVector* pRefColFields = nullptr,
260 const ScPivotFieldVector* pRefRowFields = nullptr,
261 const ScPivotFieldVector* pRefPageFields = nullptr );
262
263 static bool IsOrientationAllowed( css::sheet::DataPilotFieldOrientation nOrient, sal_Int32 nDimFlags );
264
265 void PutInteropGrabBag(std::map<OUString, css::uno::Any>&& val)
266 {
267 maInteropGrabBag = std::move(val);
268 }
269 std::pair<bool, css::uno::Any> GetInteropGrabBagValue(const OUString& sName) const
270 {
271 if (const auto it = maInteropGrabBag.find(sName); it != maInteropGrabBag.end())
272 return { true, it->second };
273
274 return { false, css::uno::Any() };
275 }
276
277#if DUMP_PIVOT_TABLE
278 void Dump() const;
279 void DumpCache() const;
280#endif
281};
282
284{
285 friend class ScDPCache;
286public:
287
292 {
293 friend class ScDPCollection;
294 typedef std::map<size_t, std::unique_ptr<ScDPCache>> CachesType;
295 typedef std::vector<ScRange> RangeIndexType;
299 public:
300 SheetCaches(ScDocument& rDoc);
301 bool hasCache(const ScRange& rRange) const;
302 const ScDPCache* getCache(const ScRange& rRange, const ScDPDimensionSaveData* pDimData);
303 SC_DLLPUBLIC size_t size() const;
304
305 void updateReference(
306 UpdateRefMode eMode, const ScRange& r, SCCOL nDx, SCROW nDy, SCTAB nDz);
307
309 SC_DLLPUBLIC const ScDPCache* getExistingCache(const ScRange& rRange) const;
310
311 void updateCache(const ScRange& rRange, o3tl::sorted_vector<ScDPObject*>& rRefs);
312 bool remove(const ScDPCache* p);
313
314 SC_DLLPUBLIC const std::vector<ScRange>& getAllRanges() const;
315 };
316
321 {
322 friend class ScDPCollection;
323 typedef ::std::map<OUString, std::unique_ptr<ScDPCache>> CachesType;
326 public:
327 NameCaches(ScDocument& rDoc);
328 bool hasCache(const OUString& rName) const;
329 const ScDPCache* getCache(
330 const OUString& rName, const ScRange& rRange, const ScDPDimensionSaveData* pDimData);
331 size_t size() const;
332 private:
333 ScDPCache* getExistingCache(const OUString& rName);
334
335 void updateCache(
336 const OUString& rName, const ScRange& rRange, o3tl::sorted_vector<ScDPObject*>& rRefs);
337 bool remove(const ScDPCache* p);
338 };
339
344 struct DBType
345 {
346 sal_Int32 mnSdbType;
347 OUString maDBName;
348 OUString maCommand;
349 DBType(sal_Int32 nSdbType, OUString aDBName, OUString aCommand);
350
351 struct less
352 {
353 bool operator() (const DBType& left, const DBType& right) const;
354 };
355 };
356
361 {
362 friend class ScDPCollection;
363 typedef ::std::map<DBType, std::unique_ptr<ScDPCache>, DBType::less> CachesType;
366 public:
367 DBCaches(ScDocument& rDoc);
368 bool hasCache(sal_Int32 nSdbType, const OUString& rDBName, const OUString& rCommand) const;
369 const ScDPCache* getCache(
370 sal_Int32 nSdbType, const OUString& rDBName, const OUString& rCommand,
371 const ScDPDimensionSaveData* pDimData);
372
373 private:
375 sal_Int32 nSdbType, const OUString& rDBName, const OUString& rCommand);
376
377 static css::uno::Reference<css::sdbc::XRowSet> createRowSet(
378 sal_Int32 nSdbType, const OUString& rDBName, const OUString& rCommand);
379
380 void updateCache(
381 sal_Int32 nSdbType, const OUString& rDBName, const OUString& rCommand,
383 bool remove(const ScDPCache* p);
384 };
385
386 ScDPCollection(ScDocument& rDocument);
389
392 SC_DLLPUBLIC bool GetReferenceGroups(const ScDPObject& rDPObj, const ScDPDimensionSaveData** pGroups) const;
393
394 SC_DLLPUBLIC size_t GetCount() const;
395 SC_DLLPUBLIC ScDPObject& operator[](size_t nIndex);
396 SC_DLLPUBLIC const ScDPObject& operator[](size_t nIndex) const;
397
398 ScDPObject* GetByName(std::u16string_view rName) const;
399
400 void DeleteOnTab( SCTAB nTab );
401 void UpdateReference( UpdateRefMode eUpdateRefMode,
402 const ScRange& r, SCCOL nDx, SCROW nDy, SCTAB nDz );
403 void CopyToTab( SCTAB nOld, SCTAB nNew );
404 bool RefsEqual( const ScDPCollection& r ) const;
405 void WriteRefsTo( ScDPCollection& r ) const;
406
413 OUString CreateNewName() const;
414
415 void FreeTable(const ScDPObject* pDPObj);
416 SC_DLLPUBLIC ScDPObject* InsertNewTable(std::unique_ptr<ScDPObject> pDPObj);
417 SC_DLLPUBLIC bool HasTable(const ScDPObject* pDPObj) const;
418
424 SC_DLLPUBLIC const DBCaches& GetDBCaches() const;
425
426 ScRangeList GetAllTableRanges( SCTAB nTab ) const;
427 bool IntersectsTableByColumns( SCCOL nCol1, SCCOL nCol2, SCROW nRow, SCTAB nTab ) const;
428 bool IntersectsTableByRows( SCCOL nCol, SCROW nRow1, SCROW nRow2, SCTAB nTab ) const;
429 bool HasTable( const ScRange& rRange ) const;
430
431#if DEBUG_PIVOT_TABLE
432 void DumpTables() const;
433#endif
434
435private:
437 void RemoveCache(const ScDPCache* pCache);
438
439 void GetAllTables(const ScRange& rSrcRange, o3tl::sorted_vector<ScDPObject*>& rRefs) const;
440 void GetAllTables(std::u16string_view rSrcName, o3tl::sorted_vector<ScDPObject*>& rRefs) const;
441 void GetAllTables(
442 sal_Int32 nSdbType, std::u16string_view rDBName, std::u16string_view rCommand,
444
445private:
446 typedef std::vector< std::unique_ptr<ScDPObject> > TablesType;
447
453};
454
455bool operator<(const ScDPCollection::DBType& left, const ScDPCollection::DBType& right);
456
457/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
This class represents the cached data part of the datapilot cache table implementation.
Definition: dpcache.hxx:48
Data caches for external database sources.
Definition: dpobject.hxx:361
static css::uno::Reference< css::sdbc::XRowSet > createRowSet(sal_Int32 nSdbType, const OUString &rDBName, const OUString &rCommand)
Definition: dpobject.cxx:3262
const ScDPCache * getCache(sal_Int32 nSdbType, const OUString &rDBName, const OUString &rCommand, const ScDPDimensionSaveData *pDimData)
Definition: dpobject.cxx:3218
::std::map< DBType, std::unique_ptr< ScDPCache >, DBType::less > CachesType
Definition: dpobject.hxx:363
bool remove(const ScDPCache *p)
Definition: dpobject.cxx:3359
void updateCache(sal_Int32 nSdbType, const OUString &rDBName, const OUString &rCommand, o3tl::sorted_vector< ScDPObject * > &rRefs)
Definition: dpobject.cxx:3316
ScDPCache * getExistingCache(sal_Int32 nSdbType, const OUString &rDBName, const OUString &rCommand)
Definition: dpobject.cxx:3254
bool hasCache(sal_Int32 nSdbType, const OUString &rDBName, const OUString &rCommand) const
Definition: dpobject.cxx:3211
DBCaches(ScDocument &rDoc)
Definition: dpobject.cxx:3209
Data caches for range name based source data.
Definition: dpobject.hxx:321
::std::map< OUString, std::unique_ptr< ScDPCache > > CachesType
Definition: dpobject.hxx:323
bool hasCache(const OUString &rName) const
Definition: dpobject.cxx:3134
ScDPCache * getExistingCache(const OUString &rName)
Definition: dpobject.cxx:3157
const ScDPCache * getCache(const OUString &rName, const ScRange &rRange, const ScDPDimensionSaveData *pDimData)
Definition: dpobject.cxx:3139
void updateCache(const OUString &rName, const ScRange &rRange, o3tl::sorted_vector< ScDPObject * > &rRefs)
Definition: dpobject.cxx:3168
bool remove(const ScDPCache *p)
Definition: dpobject.cxx:3189
NameCaches(ScDocument &rDoc)
Definition: dpobject.cxx:3132
Stores and manages all caches from internal sheets.
Definition: dpobject.hxx:292
std::vector< ScRange > RangeIndexType
Definition: dpobject.hxx:295
SC_DLLPUBLIC const std::vector< ScRange > & getAllRanges() const
Definition: dpobject.cxx:3127
SC_DLLPUBLIC size_t size() const
Definition: dpobject.cxx:3046
bool hasCache(const ScRange &rRange) const
Definition: dpobject.cxx:2946
bool remove(const ScDPCache *p)
Definition: dpobject.cxx:3113
const ScDPCache * getCache(const ScRange &rRange, const ScDPDimensionSaveData *pDimData)
Definition: dpobject.cxx:2958
std::map< size_t, std::unique_ptr< ScDPCache > > CachesType
Definition: dpobject.hxx:294
SC_DLLPUBLIC ScDPCache * getExistingCache(const ScRange &rRange)
Definition: dpobject.cxx:3008
SheetCaches(ScDocument &rDoc)
Definition: dpobject.cxx:2915
void updateReference(UpdateRefMode eMode, const ScRange &r, SCCOL nDx, SCROW nDy, SCTAB nDz)
Definition: dpobject.cxx:3051
void updateCache(const ScRange &rRange, o3tl::sorted_vector< ScDPObject * > &rRefs)
Definition: dpobject.cxx:3082
bool RefsEqual(const ScDPCollection &r) const
Definition: dpobject.cxx:3666
ScDocument & mrDoc
Definition: dpobject.hxx:448
void WriteRefsTo(ScDPCollection &r) const
Definition: dpobject.cxx:3672
SC_DLLPUBLIC ScDPObject * InsertNewTable(std::unique_ptr< ScDPObject > pDPObj)
Definition: dpobject.cxx:3771
bool IntersectsTableByColumns(SCCOL nCol1, SCCOL nCol2, SCROW nRow, SCTAB nTab) const
Definition: dpobject.cxx:3829
SheetCaches maSheetCaches
Definition: dpobject.hxx:450
SC_DLLPUBLIC SheetCaches & GetSheetCaches()
Definition: dpobject.cxx:3794
void FreeTable(const ScDPObject *pDPObj)
Definition: dpobject.cxx:3756
void GetAllTables(const ScRange &rSrcRange, o3tl::sorted_vector< ScDPObject * > &rRefs) const
Definition: dpobject.cxx:3887
DBCaches & GetDBCaches()
Definition: dpobject.cxx:3814
SC_DLLPUBLIC size_t GetCount() const
Definition: dpobject.cxx:3717
void RemoveCache(const ScDPCache *pCache)
Only to be called from ScDPCache::RemoveReference().
Definition: dpobject.cxx:3872
DBCaches maDBCaches
Definition: dpobject.hxx:452
void CopyToTab(SCTAB nOld, SCTAB nNew)
Definition: dpobject.cxx:3643
ScDPObject * GetByName(std::u16string_view rName) const
Definition: dpobject.cxx:3732
SC_DLLPUBLIC ScDPObject & operator[](size_t nIndex)
Definition: dpobject.cxx:3722
TranslateId ReloadCache(const ScDPObject *pDPObj, o3tl::sorted_vector< ScDPObject * > &rRefs)
Definition: dpobject.cxx:3411
bool IntersectsTableByRows(SCCOL nCol, SCROW nRow1, SCROW nRow2, SCTAB nTab) const
Definition: dpobject.cxx:3834
ScDPCollection(ScDocument &rDocument)
Definition: dpobject.cxx:3371
ScRangeList GetAllTableRanges(SCTAB nTab) const
Definition: dpobject.cxx:3824
void DeleteOnTab(SCTAB nTab)
Definition: dpobject.cxx:3628
TablesType maTables
Definition: dpobject.hxx:449
void UpdateReference(UpdateRefMode eUpdateRefMode, const ScRange &r, SCCOL nDx, SCROW nDy, SCTAB nDz)
Definition: dpobject.cxx:3633
OUString CreateNewName() const
Create a new name that's not yet used by any existing data pilot objects.
Definition: dpobject.cxx:3743
SC_DLLPUBLIC bool GetReferenceGroups(const ScDPObject &rDPObj, const ScDPDimensionSaveData **pGroups) const
Definition: dpobject.cxx:3563
std::vector< std::unique_ptr< ScDPObject > > TablesType
Definition: dpobject.hxx:446
NameCaches & GetNameCaches()
Definition: dpobject.cxx:3804
bool ReloadGroupsInCache(const ScDPObject *pDPObj, o3tl::sorted_vector< ScDPObject * > &rRefs)
Definition: dpobject.cxx:3475
NameCaches maNameCaches
Definition: dpobject.hxx:451
SC_DLLPUBLIC bool HasTable(const ScDPObject *pDPObj) const
Definition: dpobject.cxx:3782
This class has to do with handling exclusively grouped dimensions? TODO: Find out what this class doe...
Definition: dpdimsave.hxx:164
OUString aTableTag
Definition: dpobject.hxx:90
const ScDPServiceDesc * GetDPServiceDesc() const
Definition: dpobject.hxx:158
bool GetMembersNA(sal_Int32 nDim, sal_Int32 nHier, css::uno::Reference< css::sheet::XMembersAccess > &xMembers)
ScDocument * pDoc
Definition: dpobject.hxx:86
std::unique_ptr< ScDPServiceDesc > pServDesc
Definition: dpobject.hxx:94
bool IsServiceData() const
Definition: dpobject.hxx:164
std::unique_ptr< ScImportSourceDesc > pImpDesc
Definition: dpobject.hxx:93
std::unique_ptr< ScDPOutput > pOutput
Definition: dpobject.hxx:98
bool GetHeaderLayout() const
Definition: dpobject.hxx:147
bool mbEnableGetPivotData
Definition: dpobject.hxx:108
std::shared_ptr< ScDPTableData > mpTableData
Definition: dpobject.hxx:95
std::pair< bool, css::uno::Any > GetInteropGrabBagValue(const OUString &sName) const
Definition: dpobject.hxx:269
css::uno::Reference< css::sheet::XDimensionsSupplier > xSource
Definition: dpobject.hxx:97
const ScSheetSourceDesc * GetSheetDesc() const
Definition: dpobject.hxx:156
std::unique_ptr< ScSheetSourceDesc > pSheetDesc
Definition: dpobject.hxx:92
void DumpCache() const
ScRange aOutRange
Definition: dpobject.hxx:91
bool GetMembersNA(sal_Int32 nDim, css::uno::Reference< css::sheet::XMembersAccess > &xMembers)
std::unique_ptr< ScDPSaveData > pSaveData
Definition: dpobject.hxx:88
ScDPSaveData * GetSaveData() const
Definition: dpobject.hxx:141
bool IsImportData() const
Definition: dpobject.hxx:163
bool bAllowMove
Definition: dpobject.hxx:106
sal_Int32 nHeaderRows
Definition: dpobject.hxx:104
void PutInteropGrabBag(std::map< OUString, css::uno::Any > &&val)
Definition: dpobject.hxx:265
const OUString & GetName() const
Definition: dpobject.hxx:167
bool bSettingsChanged
Definition: dpobject.hxx:107
const OUString & GetTag() const
Definition: dpobject.hxx:169
OUString aTableName
Definition: dpobject.hxx:89
void Dump() const
bool mbHeaderLayout
Definition: dpobject.hxx:105
std::map< OUString, css::uno::Any > maInteropGrabBag
Definition: dpobject.hxx:102
const ScImportSourceDesc * GetImportSourceDesc() const
Definition: dpobject.hxx:157
Base class that abstracts different data source types of a datapilot table.
Definition: dptabdat.hxx:57
This class contains authoritative information on the internal reference used as the data source for d...
Definition: dpshttab.hxx:40
bool operator<(const ScDPCollection::DBType &left, const ScDPCollection::DBType &right)
Definition: dpobject.cxx:3969
std::unordered_set< OUString > ScDPUniqueStringSet
Definition: dptypes.hxx:16
OString right
OUString sName
UpdateRefMode
Definition: global.hxx:301
void Clear(EHistoryType eHistory)
long Long
std::vector< std::unique_ptr< ScDPLabelData > > ScDPLabelDataVector
Definition: pivot.hxx:113
std::vector< ScPivotField > ScPivotFieldVector
Definition: pivot.hxx:129
QPRO_FUNC_TYPE nType
Definition: qproform.cxx:398
#define SC_DLLPUBLIC
Definition: scdllapi.h:27
bool operator()(const DBType &left, const DBType &right) const
Definition: dpobject.cxx:3204
Defines connection type to external data source.
Definition: dpobject.hxx:345
DBType(sal_Int32 nSdbType, OUString aDBName, OUString aCommand)
Definition: dpobject.cxx:3201
OUString aParName
Definition: dpobject.hxx:73
OUString aParPass
Definition: dpobject.hxx:75
bool operator==(const ScDPServiceDesc &rOther) const
Definition: dpobject.cxx:301
OUString aParSource
Definition: dpobject.hxx:72
OUString aParUser
Definition: dpobject.hxx:74
OUString aServiceName
Definition: dpobject.hxx:71
ScDPServiceDesc(OUString aServ, OUString aSrc, OUString aNam, OUString aUser, OUString aPass)
Definition: dpobject.cxx:292
sal_Int16 SCTAB
Definition: types.hxx:22
sal_Int16 SCCOL
Definition: types.hxx:21
sal_Int32 SCROW
Definition: types.hxx:17
sal_uInt64 left