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 bool GetHierarchiesNA( sal_Int32 nDim, css::uno::Reference< css::container::XNameAccess >& xHiers );
210 void GetHierarchies( sal_Int32 nDim, css::uno::Sequence< OUString >& rHiers );
211
212 sal_Int32 GetUsedHierarchy( sal_Int32 nDim );
213
214 bool GetMembersNA( sal_Int32 nDim, css::uno::Reference< css::sheet::XMembersAccess >& xMembers );
215 bool GetMembersNA( sal_Int32 nDim, sal_Int32 nHier, css::uno::Reference< css::sheet::XMembersAccess >& xMembers );
216
217 bool GetMemberNames( sal_Int32 nDim, css::uno::Sequence< OUString >& rNames );
218 bool GetMembers( sal_Int32 nDim, sal_Int32 nHier, ::std::vector<ScDPLabelData::Member>& rMembers );
219
220 void UpdateReference( UpdateRefMode eUpdateRefMode,
221 const ScRange& r, SCCOL nDx, SCROW nDy, SCTAB nDz );
222 bool RefsEqual( const ScDPObject& r ) const;
223 void WriteRefsTo( ScDPObject& r ) const;
224
225 void GetPositionData(const ScAddress& rPos, css::sheet::DataPilotTablePositionData& rPosData);
226
227 bool GetDataFieldPositionData(const ScAddress& rPos,
228 css::uno::Sequence<
229 css::sheet::DataPilotFieldFilter >& rFilters);
230
231 void GetDrillDownData(const ScAddress& rPos,
232 css::uno::Sequence< css::uno::Sequence< css::uno::Any > >& rTableData);
233
234 // apply drop-down attribute, initialize nHeaderRows, without accessing the source
235 // (button attribute must be present)
236 void RefreshAfterLoad();
237
238 void BuildAllDimensionMembers();
239
244 bool SyncAllDimensionMembers();
245
246 static bool HasRegisteredSources();
247 static std::vector<OUString> GetRegisteredSources();
248 static css::uno::Reference<css::sheet::XDimensionsSupplier>
249 CreateSource( const ScDPServiceDesc& rDesc );
250
251 static void ConvertOrientation(
252 ScDPSaveData& rSaveData,
253 const ScPivotFieldVector& rFields, css::sheet::DataPilotFieldOrientation nOrient,
254 const css::uno::Reference< css::sheet::XDimensionsSupplier>& xSource,
255 const ScDPLabelDataVector& rLabels,
256 const ScPivotFieldVector* pRefColFields = nullptr,
257 const ScPivotFieldVector* pRefRowFields = nullptr,
258 const ScPivotFieldVector* pRefPageFields = nullptr );
259
260 static bool IsOrientationAllowed( css::sheet::DataPilotFieldOrientation nOrient, sal_Int32 nDimFlags );
261
262 void PutInteropGrabBag(std::map<OUString, css::uno::Any>&& val)
263 {
264 maInteropGrabBag = std::move(val);
265 }
266 std::pair<bool, css::uno::Any> GetInteropGrabBagValue(const OUString& sName) const
267 {
268 if (const auto it = maInteropGrabBag.find(sName); it != maInteropGrabBag.end())
269 return { true, it->second };
270
271 return { false, css::uno::Any() };
272 }
273
274#if DUMP_PIVOT_TABLE
275 void Dump() const;
276 void DumpCache() const;
277#endif
278};
279
281{
282 friend class ScDPCache;
283public:
284
289 {
290 friend class ScDPCollection;
291 typedef std::map<size_t, std::unique_ptr<ScDPCache>> CachesType;
292 typedef std::vector<ScRange> RangeIndexType;
296 public:
297 SheetCaches(ScDocument& rDoc);
298 bool hasCache(const ScRange& rRange) const;
299 const ScDPCache* getCache(const ScRange& rRange, const ScDPDimensionSaveData* pDimData);
300 SC_DLLPUBLIC size_t size() const;
301
302 void updateReference(
303 UpdateRefMode eMode, const ScRange& r, SCCOL nDx, SCROW nDy, SCTAB nDz);
304
306 SC_DLLPUBLIC const ScDPCache* getExistingCache(const ScRange& rRange) const;
307
308 void updateCache(const ScRange& rRange, o3tl::sorted_vector<ScDPObject*>& rRefs);
309 bool remove(const ScDPCache* p);
310
311 SC_DLLPUBLIC const std::vector<ScRange>& getAllRanges() const;
312 };
313
318 {
319 friend class ScDPCollection;
320 typedef ::std::map<OUString, std::unique_ptr<ScDPCache>> CachesType;
323 public:
324 NameCaches(ScDocument& rDoc);
325 bool hasCache(const OUString& rName) const;
326 const ScDPCache* getCache(
327 const OUString& rName, const ScRange& rRange, const ScDPDimensionSaveData* pDimData);
328 size_t size() const;
329 private:
330 ScDPCache* getExistingCache(const OUString& rName);
331
332 void updateCache(
333 const OUString& rName, const ScRange& rRange, o3tl::sorted_vector<ScDPObject*>& rRefs);
334 bool remove(const ScDPCache* p);
335 };
336
341 struct DBType
342 {
343 sal_Int32 mnSdbType;
344 OUString maDBName;
345 OUString maCommand;
346 DBType(sal_Int32 nSdbType, OUString aDBName, OUString aCommand);
347
348 struct less
349 {
350 bool operator() (const DBType& left, const DBType& right) const;
351 };
352 };
353
358 {
359 friend class ScDPCollection;
360 typedef ::std::map<DBType, std::unique_ptr<ScDPCache>, DBType::less> CachesType;
363 public:
364 DBCaches(ScDocument& rDoc);
365 bool hasCache(sal_Int32 nSdbType, const OUString& rDBName, const OUString& rCommand) const;
366 const ScDPCache* getCache(
367 sal_Int32 nSdbType, const OUString& rDBName, const OUString& rCommand,
368 const ScDPDimensionSaveData* pDimData);
369
370 private:
372 sal_Int32 nSdbType, const OUString& rDBName, const OUString& rCommand);
373
374 static css::uno::Reference<css::sdbc::XRowSet> createRowSet(
375 sal_Int32 nSdbType, const OUString& rDBName, const OUString& rCommand);
376
377 void updateCache(
378 sal_Int32 nSdbType, const OUString& rDBName, const OUString& rCommand,
380 bool remove(const ScDPCache* p);
381 };
382
383 ScDPCollection(ScDocument& rDocument);
386
389 SC_DLLPUBLIC bool GetReferenceGroups(const ScDPObject& rDPObj, const ScDPDimensionSaveData** pGroups) const;
390
391 SC_DLLPUBLIC size_t GetCount() const;
392 SC_DLLPUBLIC ScDPObject& operator[](size_t nIndex);
393 SC_DLLPUBLIC const ScDPObject& operator[](size_t nIndex) const;
394
395 ScDPObject* GetByName(std::u16string_view rName) const;
396
397 void DeleteOnTab( SCTAB nTab );
398 void UpdateReference( UpdateRefMode eUpdateRefMode,
399 const ScRange& r, SCCOL nDx, SCROW nDy, SCTAB nDz );
400 void CopyToTab( SCTAB nOld, SCTAB nNew );
401 bool RefsEqual( const ScDPCollection& r ) const;
402 void WriteRefsTo( ScDPCollection& r ) const;
403
410 OUString CreateNewName() const;
411
412 void FreeTable(const ScDPObject* pDPObj);
413 SC_DLLPUBLIC ScDPObject* InsertNewTable(std::unique_ptr<ScDPObject> pDPObj);
414 SC_DLLPUBLIC bool HasTable(const ScDPObject* pDPObj) const;
415
421 SC_DLLPUBLIC const DBCaches& GetDBCaches() const;
422
423 ScRangeList GetAllTableRanges( SCTAB nTab ) const;
424 bool IntersectsTableByColumns( SCCOL nCol1, SCCOL nCol2, SCROW nRow, SCTAB nTab ) const;
425 bool IntersectsTableByRows( SCCOL nCol, SCROW nRow1, SCROW nRow2, SCTAB nTab ) const;
426 bool HasTable( const ScRange& rRange ) const;
427
428#if DEBUG_PIVOT_TABLE
429 void DumpTables() const;
430#endif
431
432private:
434 void RemoveCache(const ScDPCache* pCache);
435
436 void GetAllTables(const ScRange& rSrcRange, o3tl::sorted_vector<ScDPObject*>& rRefs) const;
437 void GetAllTables(std::u16string_view rSrcName, o3tl::sorted_vector<ScDPObject*>& rRefs) const;
438 void GetAllTables(
439 sal_Int32 nSdbType, std::u16string_view rDBName, std::u16string_view rCommand,
441
442private:
443 typedef std::vector< std::unique_ptr<ScDPObject> > TablesType;
444
450};
451
452bool operator<(const ScDPCollection::DBType& left, const ScDPCollection::DBType& right);
453
454/* 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:358
static css::uno::Reference< css::sdbc::XRowSet > createRowSet(sal_Int32 nSdbType, const OUString &rDBName, const OUString &rCommand)
Definition: dpobject.cxx:3234
const ScDPCache * getCache(sal_Int32 nSdbType, const OUString &rDBName, const OUString &rCommand, const ScDPDimensionSaveData *pDimData)
Definition: dpobject.cxx:3190
::std::map< DBType, std::unique_ptr< ScDPCache >, DBType::less > CachesType
Definition: dpobject.hxx:360
bool remove(const ScDPCache *p)
Definition: dpobject.cxx:3331
void updateCache(sal_Int32 nSdbType, const OUString &rDBName, const OUString &rCommand, o3tl::sorted_vector< ScDPObject * > &rRefs)
Definition: dpobject.cxx:3288
ScDPCache * getExistingCache(sal_Int32 nSdbType, const OUString &rDBName, const OUString &rCommand)
Definition: dpobject.cxx:3226
bool hasCache(sal_Int32 nSdbType, const OUString &rDBName, const OUString &rCommand) const
Definition: dpobject.cxx:3183
DBCaches(ScDocument &rDoc)
Definition: dpobject.cxx:3181
Data caches for range name based source data.
Definition: dpobject.hxx:318
::std::map< OUString, std::unique_ptr< ScDPCache > > CachesType
Definition: dpobject.hxx:320
bool hasCache(const OUString &rName) const
Definition: dpobject.cxx:3106
ScDPCache * getExistingCache(const OUString &rName)
Definition: dpobject.cxx:3129
const ScDPCache * getCache(const OUString &rName, const ScRange &rRange, const ScDPDimensionSaveData *pDimData)
Definition: dpobject.cxx:3111
void updateCache(const OUString &rName, const ScRange &rRange, o3tl::sorted_vector< ScDPObject * > &rRefs)
Definition: dpobject.cxx:3140
bool remove(const ScDPCache *p)
Definition: dpobject.cxx:3161
NameCaches(ScDocument &rDoc)
Definition: dpobject.cxx:3104
Stores and manages all caches from internal sheets.
Definition: dpobject.hxx:289
std::vector< ScRange > RangeIndexType
Definition: dpobject.hxx:292
SC_DLLPUBLIC const std::vector< ScRange > & getAllRanges() const
Definition: dpobject.cxx:3099
SC_DLLPUBLIC size_t size() const
Definition: dpobject.cxx:3018
bool hasCache(const ScRange &rRange) const
Definition: dpobject.cxx:2918
bool remove(const ScDPCache *p)
Definition: dpobject.cxx:3085
const ScDPCache * getCache(const ScRange &rRange, const ScDPDimensionSaveData *pDimData)
Definition: dpobject.cxx:2930
std::map< size_t, std::unique_ptr< ScDPCache > > CachesType
Definition: dpobject.hxx:291
SC_DLLPUBLIC ScDPCache * getExistingCache(const ScRange &rRange)
Definition: dpobject.cxx:2980
SheetCaches(ScDocument &rDoc)
Definition: dpobject.cxx:2887
void updateReference(UpdateRefMode eMode, const ScRange &r, SCCOL nDx, SCROW nDy, SCTAB nDz)
Definition: dpobject.cxx:3023
void updateCache(const ScRange &rRange, o3tl::sorted_vector< ScDPObject * > &rRefs)
Definition: dpobject.cxx:3054
bool RefsEqual(const ScDPCollection &r) const
Definition: dpobject.cxx:3638
ScDocument & mrDoc
Definition: dpobject.hxx:445
void WriteRefsTo(ScDPCollection &r) const
Definition: dpobject.cxx:3644
SC_DLLPUBLIC ScDPObject * InsertNewTable(std::unique_ptr< ScDPObject > pDPObj)
Definition: dpobject.cxx:3743
bool IntersectsTableByColumns(SCCOL nCol1, SCCOL nCol2, SCROW nRow, SCTAB nTab) const
Definition: dpobject.cxx:3801
SheetCaches maSheetCaches
Definition: dpobject.hxx:447
SC_DLLPUBLIC SheetCaches & GetSheetCaches()
Definition: dpobject.cxx:3766
void FreeTable(const ScDPObject *pDPObj)
Definition: dpobject.cxx:3728
void GetAllTables(const ScRange &rSrcRange, o3tl::sorted_vector< ScDPObject * > &rRefs) const
Definition: dpobject.cxx:3859
DBCaches & GetDBCaches()
Definition: dpobject.cxx:3786
SC_DLLPUBLIC size_t GetCount() const
Definition: dpobject.cxx:3689
void RemoveCache(const ScDPCache *pCache)
Only to be called from ScDPCache::RemoveReference().
Definition: dpobject.cxx:3844
DBCaches maDBCaches
Definition: dpobject.hxx:449
void CopyToTab(SCTAB nOld, SCTAB nNew)
Definition: dpobject.cxx:3615
ScDPObject * GetByName(std::u16string_view rName) const
Definition: dpobject.cxx:3704
SC_DLLPUBLIC ScDPObject & operator[](size_t nIndex)
Definition: dpobject.cxx:3694
TranslateId ReloadCache(const ScDPObject *pDPObj, o3tl::sorted_vector< ScDPObject * > &rRefs)
Definition: dpobject.cxx:3383
bool IntersectsTableByRows(SCCOL nCol, SCROW nRow1, SCROW nRow2, SCTAB nTab) const
Definition: dpobject.cxx:3806
ScDPCollection(ScDocument &rDocument)
Definition: dpobject.cxx:3343
ScRangeList GetAllTableRanges(SCTAB nTab) const
Definition: dpobject.cxx:3796
void DeleteOnTab(SCTAB nTab)
Definition: dpobject.cxx:3600
TablesType maTables
Definition: dpobject.hxx:446
void UpdateReference(UpdateRefMode eUpdateRefMode, const ScRange &r, SCCOL nDx, SCROW nDy, SCTAB nDz)
Definition: dpobject.cxx:3605
OUString CreateNewName() const
Create a new name that's not yet used by any existing data pilot objects.
Definition: dpobject.cxx:3715
SC_DLLPUBLIC bool GetReferenceGroups(const ScDPObject &rDPObj, const ScDPDimensionSaveData **pGroups) const
Definition: dpobject.cxx:3535
std::vector< std::unique_ptr< ScDPObject > > TablesType
Definition: dpobject.hxx:443
NameCaches & GetNameCaches()
Definition: dpobject.cxx:3776
bool ReloadGroupsInCache(const ScDPObject *pDPObj, o3tl::sorted_vector< ScDPObject * > &rRefs)
Definition: dpobject.cxx:3447
NameCaches maNameCaches
Definition: dpobject.hxx:448
SC_DLLPUBLIC bool HasTable(const ScDPObject *pDPObj) const
Definition: dpobject.cxx:3754
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:266
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:262
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:3941
std::unordered_set< OUString > ScDPUniqueStringSet
Definition: dptypes.hxx:16
OString right
UpdateRefMode
Definition: global.hxx:300
const char * sName
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:3176
Defines connection type to external data source.
Definition: dpobject.hxx:342
DBType(sal_Int32 nSdbType, OUString aDBName, OUString aCommand)
Definition: dpobject.cxx:3173
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