LibreOffice Module sc (master) 1
dptabsrc.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 <com/sun/star/sheet/XDimensionsSupplier.hpp>
23#include <com/sun/star/sheet/XHierarchiesSupplier.hpp>
24#include <com/sun/star/sheet/XLevelsSupplier.hpp>
25#include <com/sun/star/sheet/XMembersSupplier.hpp>
26#include <com/sun/star/sheet/XDataPilotResults.hpp>
27#include <com/sun/star/sheet/XDataPilotMemberResults.hpp>
28#include <com/sun/star/sheet/DataPilotFieldAutoShowInfo.hpp>
29#include <com/sun/star/sheet/DataPilotFieldLayoutInfo.hpp>
30#include <com/sun/star/sheet/DataPilotFieldLayoutMode.hpp>
31#include <com/sun/star/sheet/DataPilotFieldReference.hpp>
32#include <com/sun/star/sheet/DataPilotFieldSortInfo.hpp>
33#include <com/sun/star/sheet/DataPilotFieldOrientation.hpp>
34#include <com/sun/star/util/XRefreshable.hpp>
35#include <com/sun/star/sheet/XDrillDownDataSupplier.hpp>
36#include <com/sun/star/util/XCloneable.hpp>
37#include <com/sun/star/beans/XPropertySet.hpp>
38#include <com/sun/star/lang/XServiceInfo.hpp>
39#include <com/sun/star/container/XNamed.hpp>
41#include <rtl/ref.hxx>
42
43#include "dptabdat.hxx"
44#include "dpresfilter.hxx"
45
46#include <memory>
47#include <unordered_map>
48#include <unordered_set>
49#include <vector>
50#include <optional>
51
52namespace com::sun::star {
53 namespace sheet {
54 struct DataPilotFieldFilter;
55 struct MemberResult;
56 }
57}
58
60class ScDPResultData;
61class ScDPItemData;
62class ScDPDimensions;
63class ScDPDimension;
64class ScDPHierarchies;
65class ScDPHierarchy;
66class ScDPLevels;
67class ScDPLevel;
68class ScDPMembers;
69class ScDPMember;
70enum class ScGeneralFunction;
71
72// implementation of DataPilotSource using ScDPTableData
73
74class ScDPSource final : public cppu::WeakImplHelper<
75 css::sheet::XDimensionsSupplier,
76 css::sheet::XDataPilotResults,
77 css::util::XRefreshable,
78 css::sheet::XDrillDownDataSupplier,
79 css::beans::XPropertySet,
80 css::lang::XServiceInfo >
81{
82private:
83 ScDPTableData* pData; // data source (ScDPObject manages its life time)
85 // settings:
86
87 std::vector<sal_Int32> maColDims;
88 std::vector<sal_Int32> maRowDims;
89 std::vector<sal_Int32> maDataDims;
90 std::vector<sal_Int32> maPageDims;
92
97
98 sal_Int32 nDupCount;
99
100 // results:
101 std::unique_ptr<ScDPResultData> pResData; // keep the rest in this!
102 std::unique_ptr<ScDPResultMember> pColResRoot;
103 std::unique_ptr<ScDPResultMember> pRowResRoot;
104 std::unique_ptr<css::uno::Sequence<css::sheet::MemberResult>[]> pColResults;
105 std::unique_ptr<css::uno::Sequence<css::sheet::MemberResult>[]> pRowResults;
106 std::vector<ScDPLevel*> aColLevelList;
107 std::vector<ScDPLevel*> aRowLevelList;
109 bool bPageFiltered; // set if page field filters have been applied to cache table
110
111 std::optional<OUString> mpGrandTotalName;
112
113 void CreateRes_Impl();
114 void FillMemberResults();
115 void FillLevelList( css::sheet::DataPilotFieldOrientation nOrientation, std::vector<ScDPLevel*> &rList );
116 void FillCalcInfo(bool bIsRow, ScDPTableData::CalcInfo& rInfo, bool &bHasAutoShow);
117
122 void GetCategoryDimensionIndices(std::unordered_set<sal_Int32>& rCatDims);
123
129
130 void SetDupCount( tools::Long nNew );
131
132 OUString getDataDescription();
133
134 void setIgnoreEmptyRows(bool bSet);
135 void setRepeatIfEmpty(bool bSet);
136
137 void disposeData();
138
139public:
141 virtual ~ScDPSource() override;
142
144 const ScDPTableData* GetData() const { return pData; }
145
146 const std::optional<OUString> &
147 GetGrandTotalName() const;
148
149 css::sheet::DataPilotFieldOrientation
150 GetOrientation(sal_Int32 nColumn);
151 void SetOrientation(sal_Int32 nColumn, css::sheet::DataPilotFieldOrientation nNew);
152 sal_Int32 GetPosition(sal_Int32 nColumn);
153
154 sal_Int32 GetDataDimensionCount() const;
155 ScDPDimension* GetDataDimension(sal_Int32 nIndex);
156 OUString GetDataDimName(sal_Int32 nIndex);
157 const ScDPCache* GetCache();
158 const ScDPItemData* GetItemDataById( sal_Int32 nDim, sal_Int32 nId );
159 bool IsDataLayoutDimension(sal_Int32 nDim);
160 css::sheet::DataPilotFieldOrientation
162
163 bool IsDateDimension(sal_Int32 nDim);
164
165 bool SubTotalAllowed(sal_Int32 nColumn);
166
167 ScDPDimension* AddDuplicated(std::u16string_view rNewName);
168 sal_Int32 GetDupCount() const { return nDupCount; }
169
170 sal_Int32 GetSourceDim(sal_Int32 nDim);
171
172 const css::uno::Sequence<css::sheet::MemberResult>*
173 GetMemberResults( const ScDPLevel* pLevel );
174
176
177 // XDimensionsSupplier
178 virtual css::uno::Reference< css::container::XNameAccess >
179 SAL_CALL getDimensions( ) override;
180
181 // XDataPilotResults
182 virtual css::uno::Sequence< css::uno::Sequence< css::sheet::DataResult > > SAL_CALL getResults( ) override;
183
184 virtual css::uno::Sequence<double> SAL_CALL
186 const css::uno::Sequence<css::sheet::DataPilotFieldFilter>& aFilters ) override;
187
188 // XRefreshable
189 virtual void SAL_CALL refresh() override;
190 virtual void SAL_CALL addRefreshListener( const css::uno::Reference< css::util::XRefreshListener >& l ) override;
191 virtual void SAL_CALL removeRefreshListener( const css::uno::Reference< css::util::XRefreshListener >& l ) override;
192
193 // XDrillDownDataSupplier
194 virtual css::uno::Sequence< css::uno::Sequence< css::uno::Any > >
195 SAL_CALL getDrillDownData(const css::uno::Sequence<
196 css::sheet::DataPilotFieldFilter >& aFilters ) override;
197
198 // XPropertySet
199 virtual css::uno::Reference< css::beans::XPropertySetInfo >
200 SAL_CALL getPropertySetInfo( ) override;
201 virtual void SAL_CALL setPropertyValue( const OUString& aPropertyName,
202 const css::uno::Any& aValue ) override;
203 virtual css::uno::Any SAL_CALL getPropertyValue(
204 const OUString& PropertyName ) override;
205 virtual void SAL_CALL addPropertyChangeListener( const OUString& aPropertyName,
206 const css::uno::Reference< css::beans::XPropertyChangeListener >& xListener ) override;
207 virtual void SAL_CALL removePropertyChangeListener( const OUString& aPropertyName,
208 const css::uno::Reference< css::beans::XPropertyChangeListener >& aListener ) override;
209 virtual void SAL_CALL addVetoableChangeListener( const OUString& PropertyName,
210 const css::uno::Reference< css::beans::XVetoableChangeListener >& aListener ) override;
211 virtual void SAL_CALL removeVetoableChangeListener( const OUString& PropertyName,
212 const css::uno::Reference< css::beans::XVetoableChangeListener >& aListener ) override;
213
214 // XServiceInfo
215 virtual OUString SAL_CALL getImplementationName( ) override;
216 virtual sal_Bool SAL_CALL supportsService( const OUString& ServiceName ) override;
217 virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override;
218
219#if DUMP_PIVOT_TABLE
220 void DumpResults() const;
221#endif
222};
223
224class ScDPDimensions final : public cppu::WeakImplHelper<
225 css::container::XNameAccess,
226 css::lang::XServiceInfo >
227{
228private:
230 sal_Int32 nDimCount;
231 std::unique_ptr<rtl::Reference<ScDPDimension>[]>
233
234public:
235 ScDPDimensions( ScDPSource* pSrc );
236 virtual ~ScDPDimensions() override;
237
238 void CountChanged();
239
240 // XNameAccess
241 virtual css::uno::Any SAL_CALL getByName( const OUString& aName ) override;
242 virtual css::uno::Sequence< OUString > SAL_CALL getElementNames() override;
243 virtual sal_Bool SAL_CALL hasByName( const OUString& aName ) override;
244
245 // XElementAccess
246 virtual css::uno::Type SAL_CALL getElementType() override;
247 virtual sal_Bool SAL_CALL hasElements() override;
248
249 // XServiceInfo
250 virtual OUString SAL_CALL getImplementationName( ) override;
251 virtual sal_Bool SAL_CALL supportsService( const OUString& ServiceName ) override;
252 virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override;
253
254 tools::Long getCount() const;
255 ScDPDimension* getByIndex(tools::Long nIndex) const;
256};
257
258class ScDPDimension final : public cppu::WeakImplHelper<
259 css::sheet::XHierarchiesSupplier,
260 css::container::XNamed,
261 css::util::XCloneable,
262 css::beans::XPropertySet,
263 css::lang::XServiceInfo >
264{
266 sal_Int32 nDim; // dimension index (== column ID)
269 OUString aName; // if empty, take from source
270 std::optional<OUString> mpLayoutName;
271 std::optional<OUString> mpSubtotalName;
272 sal_Int32 nSourceDim; // >=0 if dup'ed
273 css::sheet::DataPilotFieldReference
274 aReferenceValue; // settings for "show data as" / "displayed value"
277 std::unique_ptr<ScDPItemData>
278 pSelectedData; // internal, temporary, created from aSelectedPage
280
281public:
283 virtual ~ScDPDimension() override;
284 ScDPDimension(const ScDPDimension&) = delete;
286
287 sal_Int32 GetDimension() const { return nDim; } // dimension index in source
288 sal_Int32 GetSourceDim() const { return nSourceDim; } // >=0 if dup'ed
289
292
293 const std::optional<OUString> & GetLayoutName() const;
294 const std::optional<OUString> & GetSubtotalName() const;
295
296 // XNamed
297 virtual OUString SAL_CALL getName() override;
298 virtual void SAL_CALL setName( const OUString& aName ) override;
299
300 // XHierarchiesSupplier
301 virtual css::uno::Reference< css::container::XNameAccess > SAL_CALL
302 getHierarchies() override;
303
304 // XCloneable
305 virtual css::uno::Reference< css::util::XCloneable > SAL_CALL
306 createClone() override;
307
308 // XPropertySet
309 virtual css::uno::Reference< css::beans::XPropertySetInfo >
310 SAL_CALL getPropertySetInfo( ) override;
311 virtual void SAL_CALL setPropertyValue( const OUString& aPropertyName,
312 const css::uno::Any& aValue ) override;
313 virtual css::uno::Any SAL_CALL getPropertyValue(
314 const OUString& PropertyName ) override;
315 virtual void SAL_CALL addPropertyChangeListener( const OUString& aPropertyName,
316 const css::uno::Reference<
317 css::beans::XPropertyChangeListener >& xListener ) override;
318 virtual void SAL_CALL removePropertyChangeListener( const OUString& aPropertyName,
319 const css::uno::Reference< css::beans::XPropertyChangeListener >& aListener ) override;
320 virtual void SAL_CALL addVetoableChangeListener( const OUString& PropertyName,
321 const css::uno::Reference< css::beans::XVetoableChangeListener >& aListener ) override;
322 virtual void SAL_CALL removeVetoableChangeListener( const OUString& PropertyName,
323 const css::uno::Reference< css::beans::XVetoableChangeListener >& aListener ) override;
324
325 // XServiceInfo
326 virtual OUString SAL_CALL getImplementationName( ) override;
327 virtual sal_Bool SAL_CALL supportsService( const OUString& ServiceName ) override;
328 virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override;
329
330 css::sheet::DataPilotFieldOrientation getOrientation() const;
331 bool getIsDataLayoutDimension() const;
333 void setFunction(ScGeneralFunction nNew); // for data dimension
334 static tools::Long getUsedHierarchy() { return 0;}
335
336 bool HasSelectedPage() const { return bHasSelectedPage; }
338
339 const css::sheet::DataPilotFieldReference& GetReferenceValue() const { return aReferenceValue;}
340};
341
342class ScDPHierarchies final : public cppu::WeakImplHelper<
343 css::container::XNameAccess,
344 css::lang::XServiceInfo >
345{
346private:
348 sal_Int32 nDim;
349 // date columns have 3 hierarchies (flat/quarter/week), other columns only one
350 // #i52547# don't offer the incomplete date hierarchy implementation
351 static const tools::Long nHierCount = 1;
352 std::unique_ptr<rtl::Reference<ScDPHierarchy>[]>
354
355public:
357 virtual ~ScDPHierarchies() override;
358
359 // XNameAccess
360 virtual css::uno::Any SAL_CALL getByName( const OUString& aName ) override;
361 virtual css::uno::Sequence< OUString > SAL_CALL getElementNames() override;
362 virtual sal_Bool SAL_CALL hasByName( const OUString& aName ) override;
363
364 // XElementAccess
365 virtual css::uno::Type SAL_CALL getElementType() override;
366 virtual sal_Bool SAL_CALL hasElements() override;
367
368 // XServiceInfo
369 virtual OUString SAL_CALL getImplementationName( ) override;
370 virtual sal_Bool SAL_CALL supportsService( const OUString& ServiceName ) override;
371 virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override;
372
373 static sal_Int32 getCount();
374 ScDPHierarchy* getByIndex(tools::Long nIndex) const;
375};
376
377class ScDPHierarchy final : public cppu::WeakImplHelper<
378 css::sheet::XLevelsSupplier,
379 css::container::XNamed,
380 css::lang::XServiceInfo >
381{
382private:
384 sal_Int32 nDim;
385 sal_Int32 nHier;
387
388public:
389 ScDPHierarchy( ScDPSource* pSrc, sal_Int32 nDim, sal_Int32 nHier );
390 virtual ~ScDPHierarchy() override;
391
393
394 // XNamed
395 virtual OUString SAL_CALL getName() override;
396 virtual void SAL_CALL setName( const OUString& aName ) override;
397
398 // XLevelsSupplier
399 virtual css::uno::Reference< css::container::XNameAccess > SAL_CALL
400 getLevels() override;
401
402 // XServiceInfo
403 virtual OUString SAL_CALL getImplementationName( ) override;
404 virtual sal_Bool SAL_CALL supportsService( const OUString& ServiceName ) override;
405 virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override;
406};
407
408class ScDPLevels final : public cppu::WeakImplHelper<
409 css::container::XNameAccess,
410 css::lang::XServiceInfo >
411{
412private:
414 sal_Int32 nDim;
415 sal_Int32 nHier;
416 sal_Int32 nLevCount;
417 std::unique_ptr<rtl::Reference<ScDPLevel>[]>
419
420public:
421 ScDPLevels( ScDPSource* pSrc, sal_Int32 nDim, sal_Int32 nHier );
422 virtual ~ScDPLevels() override;
423
424 // XNameAccess
425 virtual css::uno::Any SAL_CALL getByName( const OUString& aName ) override;
426 virtual css::uno::Sequence< OUString > SAL_CALL getElementNames() override;
427 virtual sal_Bool SAL_CALL hasByName( const OUString& aName ) override;
428
429 // XElementAccess
430 virtual css::uno::Type SAL_CALL getElementType() override;
431 virtual sal_Bool SAL_CALL hasElements() override;
432
433 // XServiceInfo
434 virtual OUString SAL_CALL getImplementationName( ) override;
435 virtual sal_Bool SAL_CALL supportsService( const OUString& ServiceName ) override;
436 virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override;
437
438 sal_Int32 getCount() const;
439 ScDPLevel* getByIndex(sal_Int32 nIndex) const;
440};
441
442class ScDPLevel final : public cppu::WeakImplHelper<
443 css::sheet::XMembersSupplier,
444 css::container::XNamed,
445 css::sheet::XDataPilotMemberResults,
446 css::beans::XPropertySet,
447 css::lang::XServiceInfo >
448{
449private:
451 sal_Int32 nDim;
452 sal_Int32 nHier;
453 sal_Int32 nLev;
455 css::uno::Sequence<sal_Int16> aSubTotals;
456 css::sheet::DataPilotFieldSortInfo aSortInfo; // stored user settings
457 css::sheet::DataPilotFieldAutoShowInfo aAutoShowInfo; // stored user settings
458 css::sheet::DataPilotFieldLayoutInfo aLayoutInfo; // stored user settings
459 // valid only from result calculation:
460 ::std::vector<sal_Int32> aGlobalOrder; // result of sorting by name or position
461 sal_Int32 nSortMeasure; // measure (index of data dimension) to sort by
462 sal_Int32 nAutoMeasure; // measure (index of data dimension) for AutoShow
464 bool bEnableLayout:1; // enabled only for row fields, not for the innermost one
466
467public:
468 ScDPLevel( ScDPSource* pSrc, sal_Int32 nDim, sal_Int32 nHier, sal_Int32 nLevel );
469 virtual ~ScDPLevel() override;
470
472
473 // XNamed
474 virtual OUString SAL_CALL getName() override;
475 virtual void SAL_CALL setName( const OUString& aName ) override;
476
477 // XMembersSupplier
478 virtual css::uno::Reference< css::sheet::XMembersAccess > SAL_CALL
479 getMembers() override;
480
481 // XDataPilotMemberResults
482 virtual css::uno::Sequence< css::sheet::MemberResult > SAL_CALL
483 getResults() override;
484
485 // XPropertySet
486 virtual css::uno::Reference< css::beans::XPropertySetInfo >
487 SAL_CALL getPropertySetInfo( ) override;
488 virtual void SAL_CALL setPropertyValue( const OUString& aPropertyName,
489 const css::uno::Any& aValue ) override;
490 virtual css::uno::Any SAL_CALL getPropertyValue(
491 const OUString& PropertyName ) override;
492 virtual void SAL_CALL addPropertyChangeListener( const OUString& aPropertyName,
493 const css::uno::Reference< css::beans::XPropertyChangeListener >& xListener ) override;
494 virtual void SAL_CALL removePropertyChangeListener( const OUString& aPropertyName,
495 const css::uno::Reference< css::beans::XPropertyChangeListener >& aListener ) override;
496 virtual void SAL_CALL addVetoableChangeListener( const OUString& PropertyName,
497 const css::uno::Reference< css::beans::XVetoableChangeListener >& aListener ) override;
498 virtual void SAL_CALL removeVetoableChangeListener( const OUString& PropertyName,
499 const css::uno::Reference< css::beans::XVetoableChangeListener >& aListener ) override;
500
501 // XServiceInfo
502 virtual OUString SAL_CALL getImplementationName( ) override;
503 virtual sal_Bool SAL_CALL supportsService( const OUString& ServiceName ) override;
504 virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override;
505
506 css::uno::Sequence<sal_Int16> getSubTotals() const;
507 bool getShowEmpty() const { return bShowEmpty;}
508 bool getRepeatItemLabels() const { return bRepeatItemLabels; }
509
510 const css::sheet::DataPilotFieldSortInfo& GetSortInfo() const { return aSortInfo; }
511 const css::sheet::DataPilotFieldAutoShowInfo& GetAutoShow() const { return aAutoShowInfo; }
512
513 void EvaluateSortOrder();
514 void SetEnableLayout(bool bSet);
515
516 const ::std::vector<sal_Int32>& GetGlobalOrder() const { return aGlobalOrder; }
517 ::std::vector<sal_Int32>& GetGlobalOrder() { return aGlobalOrder; }
518 sal_Int32 GetSortMeasure() const { return nSortMeasure; }
519 sal_Int32 GetAutoMeasure() const { return nAutoMeasure; }
520
521 bool IsOutlineLayout() const
522 {
523 return bEnableLayout &&
524 aLayoutInfo.LayoutMode !=
525 css::sheet::DataPilotFieldLayoutMode::TABULAR_LAYOUT;
526 }
527
528 bool IsSubtotalsAtTop() const
529 {
530 return bEnableLayout &&
531 (aLayoutInfo.LayoutMode ==
532 css::sheet::DataPilotFieldLayoutMode::OUTLINE_SUBTOTALS_TOP ||
533 aLayoutInfo.LayoutMode ==
534 css::sheet::DataPilotFieldLayoutMode::COMPACT_LAYOUT);
535 }
536
537 bool IsAddEmpty() const
538 {
539 return bEnableLayout && aLayoutInfo.AddEmptyLines;
540 }
541
543};
544
545// hash map from name to index in the member array, for fast name access
546typedef std::unordered_map< OUString, sal_Int32 > ScDPMembersHashMap;
547
548class ScDPMembers final : public cppu::WeakImplHelper<
549 css::sheet::XMembersAccess,
550 css::lang::XServiceInfo >
551{
552private:
553 typedef std::vector<rtl::Reference<ScDPMember> > MembersType;
555 sal_Int32 nDim;
556 sal_Int32 nHier;
557 sal_Int32 nLev;
558 sal_Int32 nMbrCount;
561
562public:
563 ScDPMembers( ScDPSource* pSrc, sal_Int32 nDim, sal_Int32 nHier, sal_Int32 nLev );
564 virtual ~ScDPMembers() override;
565
566 // XMembersAccess
567 virtual css::uno::Sequence< OUString > SAL_CALL getLocaleIndependentElementNames() override;
568
569 // XNameAccess
570 virtual css::uno::Any SAL_CALL getByName( const OUString& aName ) override;
571 virtual css::uno::Sequence< OUString > SAL_CALL getElementNames() override;
572 virtual sal_Bool SAL_CALL hasByName( const OUString& aName ) override;
573
574 // XElementAccess
575 virtual css::uno::Type SAL_CALL getElementType() override;
576 virtual sal_Bool SAL_CALL hasElements() override;
577
578 // XServiceInfo
579 virtual OUString SAL_CALL getImplementationName( ) override;
580 virtual sal_Bool SAL_CALL supportsService( const OUString& ServiceName ) override;
581 virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override;
582
583 sal_Int32 getCount() const { return nMbrCount;}
584 ScDPMember* getByIndex(sal_Int32 nIndex) const;
585
586 sal_Int32 getMinMembers() const;
587
588 sal_Int32 GetIndexFromName( const OUString& rName ) const; // <0 if not found
590
591private:
593 css::uno::Sequence< OUString > getElementNames( bool bLocaleIndependent ) const;
594};
595
596class ScDPMember final : public cppu::WeakImplHelper<
597 css::container::XNamed,
598 css::beans::XPropertySet,
599 css::lang::XServiceInfo >
600{
601private:
603 sal_Int32 nDim;
604 sal_Int32 nHier;
605 sal_Int32 nLev;
606
608 std::optional<OUString> mpLayoutName;
609
610 sal_Int32 nPosition; // manual sorting
613
614public:
615 ScDPMember(ScDPSource* pSrc, sal_Int32 nDim, sal_Int32 nHier, sal_Int32 nLev, SCROW nIndex);
616 virtual ~ScDPMember() override;
617 ScDPMember(const ScDPMember&) = delete;
618 ScDPMember& operator=(const ScDPMember&) = delete;
619
620 OUString GetNameStr( bool bLocaleIndependent ) const;
622 const ScDPItemData* GetItemData() const;
623 SCROW GetItemDataId() const { return mnDataId; }
624 bool IsNamedItem(SCROW nIndex) const;
625
626 const std::optional<OUString> & GetLayoutName() const;
627 tools::Long GetDim() const { return nDim;}
628
629 sal_Int32 Compare( const ScDPMember& rOther ) const; // visible order
630
631 // XNamed
632 virtual OUString SAL_CALL getName() override;
633 virtual void SAL_CALL setName( const OUString& aName ) override;
634
635 // XPropertySet
636 virtual css::uno::Reference< css::beans::XPropertySetInfo >
637 SAL_CALL getPropertySetInfo( ) override;
638 virtual void SAL_CALL setPropertyValue( const OUString& aPropertyName,
639 const css::uno::Any& aValue ) override;
640 virtual css::uno::Any SAL_CALL getPropertyValue(
641 const OUString& PropertyName ) override;
642 virtual void SAL_CALL addPropertyChangeListener( const OUString& aPropertyName,
643 const css::uno::Reference< css::beans::XPropertyChangeListener >& xListener ) override;
644 virtual void SAL_CALL removePropertyChangeListener( const OUString& aPropertyName,
645 const css::uno::Reference< css::beans::XPropertyChangeListener >& aListener ) override;
646 virtual void SAL_CALL addVetoableChangeListener( const OUString& PropertyName,
647 const css::uno::Reference< css::beans::XVetoableChangeListener >& aListener ) override;
648 virtual void SAL_CALL removeVetoableChangeListener( const OUString& PropertyName,
649 const css::uno::Reference< css::beans::XVetoableChangeListener >& aListener ) override;
650
651 // XServiceInfo
652 virtual OUString SAL_CALL getImplementationName( ) override;
653 virtual sal_Bool SAL_CALL supportsService( const OUString& ServiceName ) override;
654 virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override;
655
656 bool isVisible() const { return bVisible;}
657 bool getShowDetails() const { return bShowDet;}
658};
659
660/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
This class represents the cached data part of the datapilot cache table implementation.
Definition: dpcache.hxx:48
virtual ~ScDPDimension() override
Definition: dptabsrc.cxx:1274
ScDPDimension(const ScDPDimension &)=delete
virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override
virtual css::uno::Reference< css::beans::XPropertySetInfo > SAL_CALL getPropertySetInfo() override
Definition: dptabsrc.cxx:1390
ScDPHierarchies * GetHierarchiesObject()
Definition: dptabsrc.cxx:1279
ScDPSource * pSource
Definition: dptabsrc.hxx:265
virtual void SAL_CALL removeVetoableChangeListener(const OUString &PropertyName, const css::uno::Reference< css::beans::XVetoableChangeListener > &aListener) override
virtual css::uno::Reference< css::util::XCloneable > SAL_CALL createClone() override
Definition: dptabsrc.cxx:1347
virtual void SAL_CALL removePropertyChangeListener(const OUString &aPropertyName, const css::uno::Reference< css::beans::XPropertyChangeListener > &aListener) override
ScGeneralFunction getFunction() const
Definition: dptabsrc.hxx:332
ScDPDimension(ScDPSource *pSrc, tools::Long nD)
Definition: dptabsrc.cxx:1263
std::optional< OUString > mpSubtotalName
Definition: dptabsrc.hxx:271
bool mbHasHiddenMember
Definition: dptabsrc.hxx:279
const std::optional< OUString > & GetLayoutName() const
Definition: dptabsrc.cxx:1288
void setFunction(ScGeneralFunction nNew)
Definition: dptabsrc.cxx:1327
virtual OUString SAL_CALL getImplementationName() override
css::sheet::DataPilotFieldReference aReferenceValue
Definition: dptabsrc.hxx:274
ScDPDimension * CreateCloneObject()
Definition: dptabsrc.cxx:1332
bool HasSelectedPage() const
Definition: dptabsrc.hxx:336
static tools::Long getUsedHierarchy()
Definition: dptabsrc.hxx:334
OUString aName
Definition: dptabsrc.hxx:269
sal_Int32 nSourceDim
Definition: dptabsrc.hxx:272
virtual void SAL_CALL setName(const OUString &aName) override
Definition: dptabsrc.cxx:1311
virtual void SAL_CALL addPropertyChangeListener(const OUString &aPropertyName, const css::uno::Reference< css::beans::XPropertyChangeListener > &xListener) override
sal_Int32 GetSourceDim() const
Definition: dptabsrc.hxx:288
std::unique_ptr< ScDPItemData > pSelectedData
Definition: dptabsrc.hxx:278
virtual void SAL_CALL setPropertyValue(const OUString &aPropertyName, const css::uno::Any &aValue) override
Definition: dptabsrc.cxx:1415
virtual OUString SAL_CALL getName() override
Definition: dptabsrc.cxx:1303
std::optional< OUString > mpLayoutName
Definition: dptabsrc.hxx:270
bool getIsDataLayoutDimension() const
Definition: dptabsrc.cxx:1322
css::sheet::DataPilotFieldOrientation getOrientation() const
Definition: dptabsrc.cxx:1317
const css::sheet::DataPilotFieldReference & GetReferenceValue() const
Definition: dptabsrc.hxx:339
const ScDPItemData & GetSelectedData()
Definition: dptabsrc.cxx:1352
virtual void SAL_CALL addVetoableChangeListener(const OUString &PropertyName, const css::uno::Reference< css::beans::XVetoableChangeListener > &aListener) override
rtl::Reference< ScDPHierarchies > mxHierarchies
Definition: dptabsrc.hxx:267
ScGeneralFunction nFunction
Definition: dptabsrc.hxx:268
virtual sal_Bool SAL_CALL supportsService(const OUString &ServiceName) override
OUString aSelectedPage
Definition: dptabsrc.hxx:276
virtual css::uno::Reference< css::container::XNameAccess > SAL_CALL getHierarchies() override
Definition: dptabsrc.cxx:1298
bool bHasSelectedPage
Definition: dptabsrc.hxx:275
virtual css::uno::Any SAL_CALL getPropertyValue(const OUString &PropertyName) override
Definition: dptabsrc.cxx:1497
sal_Int32 GetDimension() const
Definition: dptabsrc.hxx:287
const std::optional< OUString > & GetSubtotalName() const
Definition: dptabsrc.cxx:1293
sal_Int32 nDim
Definition: dptabsrc.hxx:266
ScDPDimension & operator=(const ScDPDimension &)=delete
std::unique_ptr< rtl::Reference< ScDPDimension >[]> ppDims
Definition: dptabsrc.hxx:232
virtual css::uno::Any SAL_CALL getByName(const OUString &aName) override
Definition: dptabsrc.cxx:1188
virtual css::uno::Sequence< OUString > SAL_CALL getElementNames() override
Definition: dptabsrc.cxx:1204
ScDPDimensions(ScDPSource *pSrc)
Definition: dptabsrc.cxx:1152
tools::Long getCount() const
Definition: dptabsrc.cxx:1235
void CountChanged()
Definition: dptabsrc.cxx:1166
virtual ~ScDPDimensions() override
Definition: dptabsrc.cxx:1161
ScDPSource * pSource
Definition: dptabsrc.hxx:229
sal_Int32 nDimCount
Definition: dptabsrc.hxx:230
virtual css::uno::Type SAL_CALL getElementType() override
Definition: dptabsrc.cxx:1223
ScDPDimension * getByIndex(tools::Long nIndex) const
Definition: dptabsrc.cxx:1242
virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override
virtual OUString SAL_CALL getImplementationName() override
virtual sal_Bool SAL_CALL hasByName(const OUString &aName) override
Definition: dptabsrc.cxx:1214
virtual sal_Bool SAL_CALL supportsService(const OUString &ServiceName) override
virtual sal_Bool SAL_CALL hasElements() override
Definition: dptabsrc.cxx:1228
static const tools::Long nHierCount
Definition: dptabsrc.hxx:351
static sal_Int32 getCount()
Definition: dptabsrc.cxx:1657
virtual css::uno::Any SAL_CALL getByName(const OUString &aName) override
Definition: dptabsrc.cxx:1611
ScDPHierarchy * getByIndex(tools::Long nIndex) const
Definition: dptabsrc.cxx:1662
virtual sal_Bool SAL_CALL hasByName(const OUString &aName) override
Definition: dptabsrc.cxx:1636
virtual OUString SAL_CALL getImplementationName() override
virtual ~ScDPHierarchies() override
Definition: dptabsrc.cxx:1604
sal_Int32 nDim
Definition: dptabsrc.hxx:348
std::unique_ptr< rtl::Reference< ScDPHierarchy >[]> ppHiers
Definition: dptabsrc.hxx:353
virtual css::uno::Sequence< OUString > SAL_CALL getElementNames() override
Definition: dptabsrc.cxx:1626
ScDPHierarchies(ScDPSource *pSrc, tools::Long nD)
Definition: dptabsrc.cxx:1597
ScDPSource * pSource
Definition: dptabsrc.hxx:347
virtual sal_Bool SAL_CALL supportsService(const OUString &ServiceName) override
virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override
virtual sal_Bool SAL_CALL hasElements() override
Definition: dptabsrc.cxx:1650
virtual css::uno::Type SAL_CALL getElementType() override
Definition: dptabsrc.cxx:1645
virtual OUString SAL_CALL getImplementationName() override
ScDPSource * pSource
Definition: dptabsrc.hxx:383
ScDPLevels * GetLevelsObject()
Definition: dptabsrc.cxx:1699
virtual ~ScDPHierarchy() override
Definition: dptabsrc.cxx:1694
sal_Int32 nDim
Definition: dptabsrc.hxx:384
rtl::Reference< ScDPLevels > mxLevels
Definition: dptabsrc.hxx:386
virtual void SAL_CALL setName(const OUString &aName) override
Definition: dptabsrc.cxx:1734
virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override
sal_Int32 nHier
Definition: dptabsrc.hxx:385
ScDPHierarchy(ScDPSource *pSrc, sal_Int32 nDim, sal_Int32 nHier)
Definition: dptabsrc.cxx:1686
virtual css::uno::Reference< css::container::XNameAccess > SAL_CALL getLevels() override
Definition: dptabsrc.cxx:1708
virtual OUString SAL_CALL getName() override
Definition: dptabsrc.cxx:1713
virtual sal_Bool SAL_CALL supportsService(const OUString &ServiceName) override
When assigning a string value, you can also assign an interned string whose life-cycle is managed by ...
Definition: dpitemdata.hxx:29
ScDPMembers * GetMembersObject()
Definition: dptabsrc.cxx:1959
::std::vector< sal_Int32 > & GetGlobalOrder()
Definition: dptabsrc.hxx:517
bool IsSubtotalsAtTop() const
Definition: dptabsrc.hxx:528
sal_Int32 nDim
Definition: dptabsrc.hxx:451
const css::sheet::DataPilotFieldAutoShowInfo & GetAutoShow() const
Definition: dptabsrc.hxx:511
sal_Int32 nAutoMeasure
Definition: dptabsrc.hxx:462
virtual void SAL_CALL setName(const OUString &aName) override
Definition: dptabsrc.cxx:2039
css::sheet::DataPilotFieldAutoShowInfo aAutoShowInfo
Definition: dptabsrc.hxx:457
virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override
sal_Int32 nLev
Definition: dptabsrc.hxx:453
virtual void SAL_CALL removeVetoableChangeListener(const OUString &PropertyName, const css::uno::Reference< css::beans::XVetoableChangeListener > &aListener) override
virtual void SAL_CALL addVetoableChangeListener(const OUString &PropertyName, const css::uno::Reference< css::beans::XVetoableChangeListener > &aListener) override
css::sheet::DataPilotFieldSortInfo aSortInfo
Definition: dptabsrc.hxx:456
sal_Int32 GetAutoMeasure() const
Definition: dptabsrc.hxx:519
bool bEnableLayout
Definition: dptabsrc.hxx:464
bool IsAddEmpty() const
Definition: dptabsrc.hxx:537
virtual ~ScDPLevel() override
Definition: dptabsrc.cxx:1892
const css::sheet::DataPilotFieldSortInfo & GetSortInfo() const
Definition: dptabsrc.hxx:510
sal_Int32 GetSortMeasure() const
Definition: dptabsrc.hxx:518
void SetEnableLayout(bool bSet)
Definition: dptabsrc.cxx:1954
const ::std::vector< sal_Int32 > & GetGlobalOrder() const
Definition: dptabsrc.hxx:516
ScDPSource * pSource
Definition: dptabsrc.hxx:450
bool bRepeatItemLabels
Definition: dptabsrc.hxx:465
void EvaluateSortOrder()
Definition: dptabsrc.cxx:1897
virtual sal_Bool SAL_CALL supportsService(const OUString &ServiceName) override
virtual css::uno::Sequence< css::sheet::MemberResult > SAL_CALL getResults() override
Definition: dptabsrc.cxx:1973
bool getShowEmpty() const
Definition: dptabsrc.hxx:507
sal_Int32 nSortMeasure
Definition: dptabsrc.hxx:461
virtual OUString SAL_CALL getName() override
Definition: dptabsrc.cxx:1982
css::uno::Sequence< sal_Int16 > getSubTotals() const
Definition: dptabsrc.cxx:2044
virtual void SAL_CALL setPropertyValue(const OUString &aPropertyName, const css::uno::Any &aValue) override
Definition: dptabsrc.cxx:2075
css::sheet::DataPilotFieldLayoutInfo aLayoutInfo
Definition: dptabsrc.hxx:458
bool bShowEmpty
Definition: dptabsrc.hxx:463
ScDPLevel(ScDPSource *pSrc, sal_Int32 nDim, sal_Int32 nHier, sal_Int32 nLevel)
Definition: dptabsrc.cxx:1876
virtual void SAL_CALL addPropertyChangeListener(const OUString &aPropertyName, const css::uno::Reference< css::beans::XPropertyChangeListener > &xListener) override
virtual void SAL_CALL removePropertyChangeListener(const OUString &aPropertyName, const css::uno::Reference< css::beans::XPropertyChangeListener > &aListener) override
virtual css::uno::Reference< css::beans::XPropertySetInfo > SAL_CALL getPropertySetInfo() override
Definition: dptabsrc.cxx:2057
sal_Int32 nHier
Definition: dptabsrc.hxx:452
virtual css::uno::Any SAL_CALL getPropertyValue(const OUString &PropertyName) override
Definition: dptabsrc.cxx:2104
css::uno::Sequence< sal_Int16 > aSubTotals
Definition: dptabsrc.hxx:455
virtual OUString SAL_CALL getImplementationName() override
virtual css::uno::Reference< css::sheet::XMembersAccess > SAL_CALL getMembers() override
Definition: dptabsrc.cxx:1968
::std::vector< sal_Int32 > aGlobalOrder
Definition: dptabsrc.hxx:460
rtl::Reference< ScDPMembers > mxMembers
Definition: dptabsrc.hxx:454
bool IsOutlineLayout() const
Definition: dptabsrc.hxx:521
bool getRepeatItemLabels() const
Definition: dptabsrc.hxx:508
virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override
sal_Int32 nDim
Definition: dptabsrc.hxx:414
ScDPLevel * getByIndex(sal_Int32 nIndex) const
Definition: dptabsrc.cxx:1823
virtual sal_Bool SAL_CALL hasElements() override
Definition: dptabsrc.cxx:1811
sal_Int32 nLevCount
Definition: dptabsrc.hxx:416
virtual OUString SAL_CALL getImplementationName() override
virtual sal_Bool SAL_CALL supportsService(const OUString &ServiceName) override
ScDPSource * pSource
Definition: dptabsrc.hxx:413
virtual ~ScDPLevels() override
Definition: dptabsrc.cxx:1765
sal_Int32 nHier
Definition: dptabsrc.hxx:415
virtual css::uno::Sequence< OUString > SAL_CALL getElementNames() override
Definition: dptabsrc.cxx:1787
virtual sal_Bool SAL_CALL hasByName(const OUString &aName) override
Definition: dptabsrc.cxx:1797
ScDPLevels(ScDPSource *pSrc, sal_Int32 nDim, sal_Int32 nHier)
Definition: dptabsrc.cxx:1739
sal_Int32 getCount() const
Definition: dptabsrc.cxx:1818
std::unique_ptr< rtl::Reference< ScDPLevel >[]> ppLevs
Definition: dptabsrc.hxx:418
virtual css::uno::Any SAL_CALL getByName(const OUString &aName) override
Definition: dptabsrc.cxx:1772
virtual css::uno::Type SAL_CALL getElementType() override
Definition: dptabsrc.cxx:1806
SCROW mnDataId
Definition: dptabsrc.hxx:607
virtual void SAL_CALL removePropertyChangeListener(const OUString &aPropertyName, const css::uno::Reference< css::beans::XPropertyChangeListener > &aListener) override
virtual void SAL_CALL setPropertyValue(const OUString &aPropertyName, const css::uno::Any &aValue) override
Definition: dptabsrc.cxx:2542
ScDPMember & operator=(const ScDPMember &)=delete
virtual OUString SAL_CALL getName() override
Definition: dptabsrc.cxx:2516
sal_Int32 nPosition
Definition: dptabsrc.hxx:610
sal_Int32 nDim
Definition: dptabsrc.hxx:603
sal_Int32 Compare(const ScDPMember &rOther) const
Definition: dptabsrc.cxx:2470
virtual void SAL_CALL removeVetoableChangeListener(const OUString &PropertyName, const css::uno::Reference< css::beans::XVetoableChangeListener > &aListener) override
virtual void SAL_CALL addPropertyChangeListener(const OUString &aPropertyName, const css::uno::Reference< css::beans::XPropertyChangeListener > &xListener) override
virtual OUString SAL_CALL getImplementationName() override
virtual css::uno::Reference< css::beans::XPropertySetInfo > SAL_CALL getPropertySetInfo() override
Definition: dptabsrc.cxx:2528
ScDPSource * pSource
Definition: dptabsrc.hxx:602
bool isVisible() const
Definition: dptabsrc.hxx:656
ScDPMember(ScDPSource *pSrc, sal_Int32 nDim, sal_Int32 nHier, sal_Int32 nLev, SCROW nIndex)
Definition: dptabsrc.cxx:2431
bool getShowDetails() const
Definition: dptabsrc.hxx:657
sal_Int32 nHier
Definition: dptabsrc.hxx:604
ScDPMember(const ScDPMember &)=delete
virtual void SAL_CALL setName(const OUString &aName) override
Definition: dptabsrc.cxx:2521
virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override
bool bVisible
Definition: dptabsrc.hxx:611
SCROW GetItemDataId() const
Definition: dptabsrc.hxx:623
sal_Int32 nLev
Definition: dptabsrc.hxx:605
std::optional< OUString > mpLayoutName
Definition: dptabsrc.hxx:608
virtual css::uno::Any SAL_CALL getPropertyValue(const OUString &PropertyName) override
Definition: dptabsrc.cxx:2562
bool IsNamedItem(SCROW nIndex) const
Definition: dptabsrc.cxx:2450
tools::Long GetDim() const
Definition: dptabsrc.hxx:627
virtual sal_Bool SAL_CALL supportsService(const OUString &ServiceName) override
ScDPItemData FillItemData() const
Definition: dptabsrc.cxx:2495
bool bShowDet
Definition: dptabsrc.hxx:612
const ScDPItemData * GetItemData() const
Definition: dptabsrc.cxx:2588
OUString GetNameStr(bool bLocaleIndependent) const
Definition: dptabsrc.cxx:2508
virtual ~ScDPMember() override
Definition: dptabsrc.cxx:2445
const std::optional< OUString > & GetLayoutName() const
Definition: dptabsrc.cxx:2503
virtual void SAL_CALL addVetoableChangeListener(const OUString &PropertyName, const css::uno::Reference< css::beans::XVetoableChangeListener > &aListener) override
virtual css::uno::Sequence< OUString > SAL_CALL getElementNames() override
Definition: dptabsrc.cxx:2270
virtual sal_Bool SAL_CALL supportsService(const OUString &ServiceName) override
sal_Int32 getCount() const
Definition: dptabsrc.hxx:583
sal_Int32 nHier
Definition: dptabsrc.hxx:556
ScDPSource * pSource
Definition: dptabsrc.hxx:554
MembersType maMembers
Definition: dptabsrc.hxx:559
sal_Int32 nDim
Definition: dptabsrc.hxx:555
virtual ~ScDPMembers() override
Definition: dptabsrc.cxx:2232
sal_Int32 getMinMembers() const
Definition: dptabsrc.cxx:2321
std::vector< rtl::Reference< ScDPMember > > MembersType
Definition: dptabsrc.hxx:553
sal_Int32 GetIndexFromName(const OUString &rName) const
Definition: dptabsrc.cxx:2238
const ScDPItemData * GetSrcItemDataByIndex(SCROW nIndex)
Definition: dptabsrc.cxx:2600
virtual OUString SAL_CALL getImplementationName() override
sal_Int32 nMbrCount
Definition: dptabsrc.hxx:558
ScDPMembersHashMap aHashMap
Definition: dptabsrc.hxx:560
ScDPMembers(ScDPSource *pSrc, sal_Int32 nDim, sal_Int32 nHier, sal_Int32 nLev)
Definition: dptabsrc.cxx:2158
virtual sal_Bool SAL_CALL hasElements() override
Definition: dptabsrc.cxx:2285
virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override
ScDPMember * getByIndex(sal_Int32 nIndex) const
Definition: dptabsrc.cxx:2338
virtual css::uno::Any SAL_CALL getByName(const OUString &aName) override
Definition: dptabsrc.cxx:2256
sal_Int32 nLev
Definition: dptabsrc.hxx:557
virtual css::uno::Sequence< OUString > SAL_CALL getLocaleIndependentElementNames() override
Definition: dptabsrc.cxx:2294
virtual css::uno::Type SAL_CALL getElementType() override
Definition: dptabsrc.cxx:2280
virtual sal_Bool SAL_CALL hasByName(const OUString &aName) override
Definition: dptabsrc.cxx:2275
The term 'measure' here roughly equals "data dimension" ?
Definition: dptabres.hxx:272
This class maintains pivot table calculation result in a tree structure which represents the logical ...
Definition: dpresfilter.hxx:56
sal_Int32 GetSourceDim(sal_Int32 nDim)
Definition: dptabsrc.cxx:334
std::vector< sal_Int32 > maDataDims
Definition: dptabsrc.hxx:89
virtual void SAL_CALL addRefreshListener(const css::uno::Reference< css::util::XRefreshListener > &l) override
Definition: dptabsrc.cxx:420
void setRepeatIfEmpty(bool bSet)
Definition: dptabsrc.cxx:493
std::vector< ScDPLevel * > aRowLevelList
Definition: dptabsrc.hxx:107
ScDPDimensions * GetDimensionsObject()
Definition: dptabsrc.cxx:292
virtual css::uno::Sequence< css::uno::Sequence< css::uno::Any > > SAL_CALL getDrillDownData(const css::uno::Sequence< css::sheet::DataPilotFieldFilter > &aFilters) override
Definition: dptabsrc.cxx:430
virtual OUString SAL_CALL getImplementationName() override
void SetDupCount(tools::Long nNew)
Definition: dptabsrc.cxx:306
bool bPageFiltered
Definition: dptabsrc.hxx:109
virtual sal_Bool SAL_CALL supportsService(const OUString &ServiceName) override
bool SubTotalAllowed(sal_Int32 nColumn)
Definition: dptabsrc.cxx:232
sal_Int32 GetDupCount() const
Definition: dptabsrc.hxx:168
bool bIgnoreEmptyRows
Definition: dptabsrc.hxx:95
virtual css::uno::Any SAL_CALL getPropertyValue(const OUString &PropertyName) override
Definition: dptabsrc.cxx:1108
virtual void SAL_CALL addVetoableChangeListener(const OUString &PropertyName, const css::uno::Reference< css::beans::XVetoableChangeListener > &aListener) override
virtual void SAL_CALL removePropertyChangeListener(const OUString &aPropertyName, const css::uno::Reference< css::beans::XPropertyChangeListener > &aListener) override
void setIgnoreEmptyRows(bool bSet)
???
Definition: dptabsrc.cxx:487
virtual css::uno::Sequence< css::uno::Sequence< css::sheet::DataResult > > SAL_CALL getResults() override
Definition: dptabsrc.cxx:355
ScDPTableData * GetData()
Definition: dptabsrc.hxx:143
std::unique_ptr< ScDPResultMember > pColResRoot
Definition: dptabsrc.hxx:102
const css::uno::Sequence< css::sheet::MemberResult > * GetMemberResults(const ScDPLevel *pLevel)
Definition: dptabsrc.cxx:1040
virtual ~ScDPSource() override
Definition: dptabsrc.cxx:107
void disposeData()
Definition: dptabsrc.cxx:499
virtual void SAL_CALL removeRefreshListener(const css::uno::Reference< css::util::XRefreshListener > &l) override
Definition: dptabsrc.cxx:425
OUString GetDataDimName(sal_Int32 nIndex)
Definition: dptabsrc.cxx:155
const std::optional< OUString > & GetGrandTotalName() const
Definition: dptabsrc.cxx:119
std::vector< ScDPLevel * > aColLevelList
Definition: dptabsrc.hxx:106
ScDPSource(ScDPTableData *pD)
Definition: dptabsrc.cxx:94
const ScDPItemData * GetItemDataById(sal_Int32 nDim, sal_Int32 nId)
Definition: dptabsrc.cxx:2595
bool bColumnGrand
Definition: dptabsrc.hxx:93
sal_Int32 GetDataDimensionCount() const
Definition: dptabsrc.cxx:141
bool bResultOverflow
Definition: dptabsrc.hxx:108
virtual void SAL_CALL setPropertyValue(const OUString &aPropertyName, const css::uno::Any &aValue) override
Definition: dptabsrc.cxx:1085
std::optional< OUString > mpGrandTotalName
Definition: dptabsrc.hxx:111
virtual void SAL_CALL addPropertyChangeListener(const OUString &aPropertyName, const css::uno::Reference< css::beans::XPropertyChangeListener > &xListener) override
const ScDPCache * GetCache()
Definition: dptabsrc.cxx:2582
virtual void SAL_CALL refresh() override
Definition: dptabsrc.cxx:415
bool bRepeatIfEmpty
Definition: dptabsrc.hxx:96
css::sheet::DataPilotFieldOrientation GetOrientation(sal_Int32 nColumn)
Definition: dptabsrc.cxx:124
std::unique_ptr< css::uno::Sequence< css::sheet::MemberResult >[]> pRowResults
Definition: dptabsrc.hxx:105
void GetCategoryDimensionIndices(std::unordered_set< sal_Int32 > &rCatDims)
Compile a list of dimension indices that are either, column, row or page dimensions (i....
Definition: dptabsrc.cxx:656
std::vector< sal_Int32 > maPageDims
Definition: dptabsrc.hxx:90
void FillMemberResults()
Definition: dptabsrc.cxx:997
virtual css::uno::Reference< css::beans::XPropertySetInfo > SAL_CALL getPropertySetInfo() override
Definition: dptabsrc.cxx:1064
sal_Int32 nDupCount
Definition: dptabsrc.hxx:98
bool bRowGrand
Definition: dptabsrc.hxx:94
bool IsDateDimension(sal_Int32 nDim)
Definition: dptabsrc.cxx:287
virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override
OUString getDataDescription()
Definition: dptabsrc.cxx:471
void FillCalcInfo(bool bIsRow, ScDPTableData::CalcInfo &rInfo, bool &bHasAutoShow)
Definition: dptabsrc.cxx:590
std::vector< sal_Int32 > maRowDims
Definition: dptabsrc.hxx:88
rtl::Reference< ScDPDimensions > pDimensions
Definition: dptabsrc.hxx:84
void DumpResults() const
void FilterCacheByPageDimensions()
Set visibilities of individual rows in the cache table based on the page field data.
Definition: dptabsrc.cxx:668
ScDPDimension * AddDuplicated(std::u16string_view rNewName)
move to ScDPResultData
Definition: dptabsrc.cxx:311
void FillLevelList(css::sheet::DataPilotFieldOrientation nOrientation, std::vector< ScDPLevel * > &rList)
Definition: dptabsrc.cxx:947
virtual void SAL_CALL removeVetoableChangeListener(const OUString &PropertyName, const css::uno::Reference< css::beans::XVetoableChangeListener > &aListener) override
sal_Int32 GetPosition(sal_Int32 nColumn)
Definition: dptabsrc.cxx:164
void SetOrientation(sal_Int32 nColumn, css::sheet::DataPilotFieldOrientation nNew)
Definition: dptabsrc.cxx:243
const ScDPTableData * GetData() const
Definition: dptabsrc.hxx:144
std::unique_ptr< css::uno::Sequence< css::sheet::MemberResult >[]> pColResults
Definition: dptabsrc.hxx:104
void CreateRes_Impl()
Definition: dptabsrc.cxx:732
virtual css::uno::Sequence< double > SAL_CALL getFilteredResults(const css::uno::Sequence< css::sheet::DataPilotFieldFilter > &aFilters) override
Definition: dptabsrc.cxx:389
ScDPTableData * pData
Definition: dptabsrc.hxx:83
ScDPResultTree maResFilterSet
Definition: dptabsrc.hxx:91
virtual css::uno::Reference< css::container::XNameAccess > SAL_CALL getDimensions() override
Definition: dptabsrc.cxx:301
std::unique_ptr< ScDPResultData > pResData
Definition: dptabsrc.hxx:101
ScDPDimension * GetDataDimension(sal_Int32 nIndex)
Definition: dptabsrc.cxx:146
std::vector< sal_Int32 > maColDims
Definition: dptabsrc.hxx:87
std::unique_ptr< ScDPResultMember > pRowResRoot
Definition: dptabsrc.hxx:103
css::sheet::DataPilotFieldOrientation GetDataLayoutOrientation()
Definition: dptabsrc.cxx:282
bool IsDataLayoutDimension(sal_Int32 nDim)
Definition: dptabsrc.cxx:277
Base class that abstracts different data source types of a datapilot table.
Definition: dptabdat.hxx:57
std::unordered_map< OUString, sal_Int32 > ScDPMembersHashMap
Definition: dptabsrc.hxx:546
ScGeneralFunction
the css::sheet::GeneralFunction enum is extended by constants in GeneralFunction2,...
long Long
This structure stores dimension information used when calculating results.
Definition: dptabdat.hxx:70
unsigned char sal_Bool
sal_Int32 SCROW
Definition: types.hxx:17