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>
40 #include <cppuhelper/implbase.hxx>
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 
52 namespace com::sun::star {
53  namespace sheet {
54  struct DataPilotFieldFilter;
55  struct MemberResult;
56  }
57 }
58 
59 class ScDPResultMember;
60 class ScDPResultData;
61 class ScDPItemData;
62 class ScDPDimensions;
63 class ScDPDimension;
64 class ScDPHierarchies;
65 class ScDPHierarchy;
66 class ScDPLevels;
67 class ScDPLevel;
68 class ScDPMembers;
69 class ScDPMember;
70 enum class ScGeneralFunction;
71 
72 // implementation of DataPilotSource using ScDPTableData
73 
74 class 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 {
82 private:
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 
94  bool bRowGrand;
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 
139 public:
140  ScDPSource( ScDPTableData* pD );
141  virtual ~ScDPSource() override;
142 
143  ScDPTableData* GetData() { return pData; }
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 
224 class ScDPDimensions final : public cppu::WeakImplHelper<
225  css::container::XNameAccess,
226  css::lang::XServiceInfo >
227 {
228 private:
230  sal_Int32 nDimCount;
231  std::unique_ptr<rtl::Reference<ScDPDimension>[]>
233 
234 public:
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 
258 class 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"
276  OUString aSelectedPage;
277  std::unique_ptr<ScDPItemData>
278  pSelectedData; // internal, temporary, created from aSelectedPage
280 
281 public:
282  ScDPDimension( ScDPSource* pSrc, tools::Long nD );
283  virtual ~ScDPDimension() override;
284  ScDPDimension(const ScDPDimension&) = delete;
285  ScDPDimension& operator=(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; }
337  const ScDPItemData& GetSelectedData();
338 
339  const css::sheet::DataPilotFieldReference& GetReferenceValue() const { return aReferenceValue;}
340 };
341 
342 class ScDPHierarchies final : public cppu::WeakImplHelper<
343  css::container::XNameAccess,
344  css::lang::XServiceInfo >
345 {
346 private:
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 
355 public:
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 
377 class ScDPHierarchy final : public cppu::WeakImplHelper<
378  css::sheet::XLevelsSupplier,
379  css::container::XNamed,
380  css::lang::XServiceInfo >
381 {
382 private:
384  sal_Int32 nDim;
385  sal_Int32 nHier;
387 
388 public:
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 
408 class ScDPLevels final : public cppu::WeakImplHelper<
409  css::container::XNameAccess,
410  css::lang::XServiceInfo >
411 {
412 private:
414  sal_Int32 nDim;
415  sal_Int32 nHier;
416  sal_Int32 nLevCount;
417  std::unique_ptr<rtl::Reference<ScDPLevel>[]>
419 
420 public:
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 
442 class 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 {
449 private:
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
463  bool bShowEmpty:1;
464  bool bEnableLayout:1; // enabled only for row fields, not for the innermost one
466 
467 public:
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  }
534 
535  bool IsAddEmpty() const
536  {
537  return bEnableLayout && aLayoutInfo.AddEmptyLines;
538  }
539 
541 };
542 
543 // hash map from name to index in the member array, for fast name access
544 typedef std::unordered_map< OUString, sal_Int32 > ScDPMembersHashMap;
545 
546 class ScDPMembers final : public cppu::WeakImplHelper<
547  css::sheet::XMembersAccess,
548  css::lang::XServiceInfo >
549 {
550 private:
551  typedef std::vector<rtl::Reference<ScDPMember> > MembersType;
553  sal_Int32 nDim;
554  sal_Int32 nHier;
555  sal_Int32 nLev;
556  sal_Int32 nMbrCount;
557  mutable MembersType maMembers;
559 
560 public:
561  ScDPMembers( ScDPSource* pSrc, sal_Int32 nDim, sal_Int32 nHier, sal_Int32 nLev );
562  virtual ~ScDPMembers() override;
563 
564  // XMembersAccess
565  virtual css::uno::Sequence< OUString > SAL_CALL getLocaleIndependentElementNames() override;
566 
567  // XNameAccess
568  virtual css::uno::Any SAL_CALL getByName( const OUString& aName ) override;
569  virtual css::uno::Sequence< OUString > SAL_CALL getElementNames() override;
570  virtual sal_Bool SAL_CALL hasByName( const OUString& aName ) override;
571 
572  // XElementAccess
573  virtual css::uno::Type SAL_CALL getElementType() override;
574  virtual sal_Bool SAL_CALL hasElements() override;
575 
576  // XServiceInfo
577  virtual OUString SAL_CALL getImplementationName( ) override;
578  virtual sal_Bool SAL_CALL supportsService( const OUString& ServiceName ) override;
579  virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override;
580 
581  sal_Int32 getCount() const { return nMbrCount;}
582  ScDPMember* getByIndex(sal_Int32 nIndex) const;
583 
584  sal_Int32 getMinMembers() const;
585 
586  sal_Int32 GetIndexFromName( const OUString& rName ) const; // <0 if not found
587  const ScDPItemData* GetSrcItemDataByIndex( SCROW nIndex);
588 
589 private:
591  css::uno::Sequence< OUString > getElementNames( bool bLocaleIndependent ) const;
592 };
593 
594 class ScDPMember final : public cppu::WeakImplHelper<
595  css::container::XNamed,
596  css::beans::XPropertySet,
597  css::lang::XServiceInfo >
598 {
599 private:
601  sal_Int32 nDim;
602  sal_Int32 nHier;
603  sal_Int32 nLev;
604 
606  std::optional<OUString> mpLayoutName;
607 
608  sal_Int32 nPosition; // manual sorting
609  bool bVisible;
610  bool bShowDet;
611 
612 public:
613  ScDPMember(ScDPSource* pSrc, sal_Int32 nDim, sal_Int32 nHier, sal_Int32 nLev, SCROW nIndex);
614  virtual ~ScDPMember() override;
615  ScDPMember(const ScDPMember&) = delete;
616  ScDPMember& operator=(const ScDPMember&) = delete;
617 
618  OUString GetNameStr( bool bLocaleIndependent ) const;
619  ScDPItemData FillItemData() const;
620  const ScDPItemData* GetItemData() const;
621  SCROW GetItemDataId() const { return mnDataId; }
622  bool IsNamedItem(SCROW nIndex) const;
623 
624  const std::optional<OUString> & GetLayoutName() const;
625  tools::Long GetDim() const { return nDim;}
626 
627  sal_Int32 Compare( const ScDPMember& rOther ) const; // visible order
628 
629  // XNamed
630  virtual OUString SAL_CALL getName() override;
631  virtual void SAL_CALL setName( const OUString& aName ) override;
632 
633  // XPropertySet
634  virtual css::uno::Reference< css::beans::XPropertySetInfo >
635  SAL_CALL getPropertySetInfo( ) override;
636  virtual void SAL_CALL setPropertyValue( const OUString& aPropertyName,
637  const css::uno::Any& aValue ) override;
638  virtual css::uno::Any SAL_CALL getPropertyValue(
639  const OUString& PropertyName ) override;
640  virtual void SAL_CALL addPropertyChangeListener( const OUString& aPropertyName,
641  const css::uno::Reference< css::beans::XPropertyChangeListener >& xListener ) override;
642  virtual void SAL_CALL removePropertyChangeListener( const OUString& aPropertyName,
643  const css::uno::Reference< css::beans::XPropertyChangeListener >& aListener ) override;
644  virtual void SAL_CALL addVetoableChangeListener( const OUString& PropertyName,
645  const css::uno::Reference< css::beans::XVetoableChangeListener >& aListener ) override;
646  virtual void SAL_CALL removeVetoableChangeListener( const OUString& PropertyName,
647  const css::uno::Reference< css::beans::XVetoableChangeListener >& aListener ) override;
648 
649  // XServiceInfo
650  virtual OUString SAL_CALL getImplementationName( ) override;
651  virtual sal_Bool SAL_CALL supportsService( const OUString& ServiceName ) override;
652  virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override;
653 
654  bool isVisible() const { return bVisible;}
655  bool getShowDetails() const { return bShowDet;}
656 };
657 
658 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
void DumpResults() const
OUString getDataDescription()
Definition: dptabsrc.cxx:471
bool IsOutlineLayout() const
Definition: dptabsrc.hxx:521
virtual css::uno::Reference< css::beans::XPropertySetInfo > SAL_CALL getPropertySetInfo() override
Definition: dptabsrc.cxx:2536
ScDPTableData * GetData()
Definition: dptabsrc.hxx:143
virtual ~ScDPMember() override
Definition: dptabsrc.cxx:2453
sal_Int32 nLev
Definition: dptabsrc.hxx:453
void SetEnableLayout(bool bSet)
Definition: dptabsrc.cxx:1959
rtl::Reference< ScDPHierarchies > mxHierarchies
Definition: dptabsrc.hxx:267
void FillLevelList(css::sheet::DataPilotFieldOrientation nOrientation, std::vector< ScDPLevel * > &rList)
Definition: dptabsrc.cxx:947
const std::optional< OUString > & GetGrandTotalName() const
Definition: dptabsrc.cxx:119
sal_Int32 nPosition
Definition: dptabsrc.hxx:608
sal_Int32 getMinMembers() const
Definition: dptabsrc.cxx:2329
ScDPDimension * GetDataDimension(sal_Int32 nIndex)
Definition: dptabsrc.cxx:146
ScDPHierarchy * getByIndex(tools::Long nIndex) const
Definition: dptabsrc.cxx:1667
virtual ~ScDPLevel() override
Definition: dptabsrc.cxx:1897
virtual css::uno::Sequence< OUString > SAL_CALL getElementNames() override
Definition: dptabsrc.cxx:1792
ScDPSource * pSource
Definition: dptabsrc.hxx:229
const css::sheet::DataPilotFieldAutoShowInfo & GetAutoShow() const
Definition: dptabsrc.hxx:511
virtual OUString SAL_CALL getImplementationName() override
virtual void SAL_CALL removeVetoableChangeListener(const OUString &PropertyName, const css::uno::Reference< css::beans::XVetoableChangeListener > &aListener) override
ScDPLevels * GetLevelsObject()
Definition: dptabsrc.cxx:1704
virtual sal_Bool SAL_CALL hasByName(const OUString &aName) override
Definition: dptabsrc.cxx:1641
void EvaluateSortOrder()
Definition: dptabsrc.cxx:1902
virtual sal_Bool SAL_CALL hasElements() override
Definition: dptabsrc.cxx:1230
ScGeneralFunction nFunction
Definition: dptabsrc.hxx:268
void setFunction(ScGeneralFunction nNew)
Definition: dptabsrc.cxx:1329
std::optional< OUString > mpLayoutName
Definition: dptabsrc.hxx:270
std::optional< OUString > mpGrandTotalName
Definition: dptabsrc.hxx:111
sal_Int32 GetDimension() const
Definition: dptabsrc.hxx:287
The term 'measure' here roughly equals "data dimension" ?
Definition: dptabres.hxx:272
std::unique_ptr< ScDPResultMember > pRowResRoot
Definition: dptabsrc.hxx:103
virtual OUString SAL_CALL getImplementationName() override
ScDPTableData * pData
Definition: dptabsrc.hxx:83
OUString aName
Definition: dptabsrc.hxx:269
OUString GetDataDimName(sal_Int32 nIndex)
Definition: dptabsrc.cxx:155
virtual css::uno::Any SAL_CALL getPropertyValue(const OUString &PropertyName) override
Definition: dptabsrc.cxx:2112
bool mbHasHiddenMember
Definition: dptabsrc.hxx:279
long Long
virtual void SAL_CALL refresh() override
Definition: dptabsrc.cxx:415
std::unordered_map< OUString, sal_Int32 > ScDPMembersHashMap
Definition: dptabsrc.hxx:544
ScDPSource * pSource
Definition: dptabsrc.hxx:383
ScDPSource * pSource
Definition: dptabsrc.hxx:600
sal_Int32 getCount() const
Definition: dptabsrc.hxx:581
const css::sheet::DataPilotFieldReference & GetReferenceValue() const
Definition: dptabsrc.hxx:339
const ScDPCache * GetCache()
Definition: dptabsrc.cxx:2593
virtual css::uno::Any SAL_CALL getPropertyValue(const OUString &PropertyName) override
Definition: dptabsrc.cxx:1110
sal_Int32 nHier
Definition: dptabsrc.hxx:452
virtual void SAL_CALL addPropertyChangeListener(const OUString &aPropertyName, const css::uno::Reference< css::beans::XPropertyChangeListener > &xListener) override
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
ScDPMembers * GetMembersObject()
Definition: dptabsrc.cxx:1964
ScDPDimension * AddDuplicated(std::u16string_view rNewName)
move to ScDPResultData
Definition: dptabsrc.cxx:311
std::unique_ptr< css::uno::Sequence< css::sheet::MemberResult >[]> pColResults
Definition: dptabsrc.hxx:104
std::vector< sal_Int32 > maPageDims
Definition: dptabsrc.hxx:90
virtual css::uno::Sequence< OUString > SAL_CALL getElementNames() override
Definition: dptabsrc.cxx:1631
bool bPageFiltered
Definition: dptabsrc.hxx:109
This class represents the cached data part of the datapilot cache table implementation.
Definition: dpcache.hxx:47
css::sheet::DataPilotFieldLayoutInfo aLayoutInfo
Definition: dptabsrc.hxx:458
virtual void SAL_CALL setPropertyValue(const OUString &aPropertyName, const css::uno::Any &aValue) override
Definition: dptabsrc.cxx:2083
virtual sal_Bool SAL_CALL hasElements() override
Definition: dptabsrc.cxx:2293
sal_Int32 nDim
Definition: dptabsrc.hxx:348
bool IsAddEmpty() const
Definition: dptabsrc.hxx:535
virtual void SAL_CALL setName(const OUString &aName) override
Definition: dptabsrc.cxx:1313
const css::uno::Sequence< css::sheet::MemberResult > * GetMemberResults(const ScDPLevel *pLevel)
Definition: dptabsrc.cxx:1040
const ScDPItemData & GetSelectedData()
Definition: dptabsrc.cxx:1354
virtual void SAL_CALL removeVetoableChangeListener(const OUString &PropertyName, const css::uno::Reference< css::beans::XVetoableChangeListener > &aListener) override
virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override
exports com.sun.star. sheet
const ScDPItemData * GetSrcItemDataByIndex(SCROW nIndex)
Definition: dptabsrc.cxx:2611
virtual sal_Bool SAL_CALL hasByName(const OUString &aName) override
Definition: dptabsrc.cxx:1216
rtl::Reference< ScDPDimensions > pDimensions
Definition: dptabsrc.hxx:84
sal_Int32 nDim
Definition: dptabsrc.hxx:451
::std::vector< sal_Int32 > aGlobalOrder
Definition: dptabsrc.hxx:460
sal_Int32 nHier
Definition: dptabsrc.hxx:554
sal_Int32 nAutoMeasure
Definition: dptabsrc.hxx:462
const std::optional< OUString > & GetSubtotalName() const
Definition: dptabsrc.cxx:1295
sal_Int32 nDupCount
Definition: dptabsrc.hxx:98
virtual OUString SAL_CALL getName() override
Definition: dptabsrc.cxx:1987
virtual void SAL_CALL setPropertyValue(const OUString &aPropertyName, const css::uno::Any &aValue) override
Definition: dptabsrc.cxx:2553
bool HasSelectedPage() const
Definition: dptabsrc.hxx:336
virtual ~ScDPHierarchy() override
Definition: dptabsrc.cxx:1699
MembersType maMembers
Definition: dptabsrc.hxx:557
std::optional< OUString > mpSubtotalName
Definition: dptabsrc.hxx:271
ScDPDimensions * GetDimensionsObject()
Definition: dptabsrc.cxx:292
virtual void SAL_CALL addPropertyChangeListener(const OUString &aPropertyName, const css::uno::Reference< css::beans::XPropertyChangeListener > &xListener) override
ScDPDimensions(ScDPSource *pSrc)
Definition: dptabsrc.cxx:1154
virtual void SAL_CALL setPropertyValue(const OUString &aPropertyName, const css::uno::Any &aValue) override
Definition: dptabsrc.cxx:1087
ScDPSource(ScDPTableData *pD)
Definition: dptabsrc.cxx:94
ScDPSource * pSource
Definition: dptabsrc.hxx:265
bool bRowGrand
Definition: dptabsrc.hxx:94
ScGeneralFunction getFunction() const
Definition: dptabsrc.hxx:332
void SetOrientation(sal_Int32 nColumn, css::sheet::DataPilotFieldOrientation nNew)
Definition: dptabsrc.cxx:243
virtual void SAL_CALL removeVetoableChangeListener(const OUString &PropertyName, const css::uno::Reference< css::beans::XVetoableChangeListener > &aListener) override
std::vector< sal_Int32 > maColDims
Definition: dptabsrc.hxx:87
sal_Int32 GetSortMeasure() const
Definition: dptabsrc.hxx:518
SCROW mnDataId
Definition: dptabsrc.hxx:605
sal_Int32 GetAutoMeasure() const
Definition: dptabsrc.hxx:519
ScDPSource * pSource
Definition: dptabsrc.hxx:552
ScDPDimension * CreateCloneObject()
Definition: dptabsrc.cxx:1334
virtual OUString SAL_CALL getName() override
Definition: dptabsrc.cxx:1305
ScDPLevels(ScDPSource *pSrc, sal_Int32 nDim, sal_Int32 nHier)
Definition: dptabsrc.cxx:1744
virtual ~ScDPDimension() override
Definition: dptabsrc.cxx:1276
virtual css::uno::Type SAL_CALL getElementType() override
Definition: dptabsrc.cxx:2288
virtual ~ScDPDimensions() override
Definition: dptabsrc.cxx:1163
bool getShowEmpty() const
Definition: dptabsrc.hxx:507
std::vector< rtl::Reference< ScDPMember > > MembersType
Definition: dptabsrc.hxx:551
ScDPHierarchy(ScDPSource *pSrc, sal_Int32 nDim, sal_Int32 nHier)
Definition: dptabsrc.cxx:1691
virtual sal_Bool SAL_CALL supportsService(const OUString &ServiceName) override
virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override
ScDPMember & operator=(const ScDPMember &)=delete
virtual css::uno::Reference< css::container::XNameAccess > SAL_CALL getDimensions() override
Definition: dptabsrc.cxx:301
virtual css::uno::Sequence< OUString > SAL_CALL getElementNames() override
Definition: dptabsrc.cxx:2278
const ::std::vector< sal_Int32 > & GetGlobalOrder() const
Definition: dptabsrc.hxx:516
css::sheet::DataPilotFieldAutoShowInfo aAutoShowInfo
Definition: dptabsrc.hxx:457
void FillCalcInfo(bool bIsRow, ScDPTableData::CalcInfo &rInfo, bool &bHasAutoShow)
Definition: dptabsrc.cxx:590
sal_Int32 GetSourceDim(sal_Int32 nDim)
Definition: dptabsrc.cxx:334
This class maintains pivot table calculation result in a tree structure which represents the logical ...
Definition: dpresfilter.hxx:55
virtual void SAL_CALL setName(const OUString &aName) override
Definition: dptabsrc.cxx:2529
virtual sal_Bool SAL_CALL hasByName(const OUString &aName) override
Definition: dptabsrc.cxx:2283
ScDPHierarchies(ScDPSource *pSrc, tools::Long nD)
Definition: dptabsrc.cxx:1602
bool bShowDet
Definition: dptabsrc.hxx:610
virtual void SAL_CALL setName(const OUString &aName) override
Definition: dptabsrc.cxx:1739
css::sheet::DataPilotFieldOrientation GetDataLayoutOrientation()
Definition: dptabsrc.cxx:282
std::optional< OUString > mpLayoutName
Definition: dptabsrc.hxx:606
virtual css::uno::Reference< css::container::XNameAccess > SAL_CALL getLevels() override
Definition: dptabsrc.cxx:1713
virtual css::uno::Any SAL_CALL getByName(const OUString &aName) override
Definition: dptabsrc.cxx:1616
When assigning a string value, you can also assign an interned string whose life-cycle is managed by ...
Definition: dpitemdata.hxx:28
virtual ~ScDPLevels() override
Definition: dptabsrc.cxx:1770
std::unique_ptr< rtl::Reference< ScDPLevel >[]> ppLevs
Definition: dptabsrc.hxx:418
virtual void SAL_CALL addPropertyChangeListener(const OUString &aPropertyName, const css::uno::Reference< css::beans::XPropertyChangeListener > &xListener) override
ScDPDimension * getByIndex(tools::Long nIndex) const
Definition: dptabsrc.cxx:1244
This structure stores dimension information used when calculating results.
Definition: dptabdat.hxx:69
virtual ~ScDPHierarchies() override
Definition: dptabsrc.cxx:1609
sal_Int32 GetDupCount() const
Definition: dptabsrc.hxx:168
virtual OUString SAL_CALL getImplementationName() override
virtual css::uno::Reference< css::beans::XPropertySetInfo > SAL_CALL getPropertySetInfo() override
Definition: dptabsrc.cxx:2062
virtual css::uno::Type SAL_CALL getElementType() override
Definition: dptabsrc.cxx:1225
std::unique_ptr< ScDPResultMember > pColResRoot
Definition: dptabsrc.hxx:102
virtual css::uno::Any SAL_CALL getByName(const OUString &aName) override
Definition: dptabsrc.cxx:2264
std::unique_ptr< rtl::Reference< ScDPHierarchy >[]> ppHiers
Definition: dptabsrc.hxx:353
tools::Long getCount() const
Definition: dptabsrc.cxx:1237
void SetDupCount(tools::Long nNew)
Definition: dptabsrc.cxx:306
const ScDPItemData * GetItemDataById(sal_Int32 nDim, sal_Int32 nId)
Definition: dptabsrc.cxx:2606
::std::vector< sal_Int32 > & GetGlobalOrder()
Definition: dptabsrc.hxx:517
virtual OUString SAL_CALL getName() override
Definition: dptabsrc.cxx:2524
virtual OUString SAL_CALL getImplementationName() override
const css::sheet::DataPilotFieldSortInfo & GetSortInfo() const
Definition: dptabsrc.hxx:510
sal_Int32 nHier
Definition: dptabsrc.hxx:602
std::unique_ptr< css::uno::Sequence< css::sheet::MemberResult >[]> pRowResults
Definition: dptabsrc.hxx:105
const ScDPTableData * GetData() const
Definition: dptabsrc.hxx:144
sal_Int32 nHier
Definition: dptabsrc.hxx:415
sal_Int32 nDim
Definition: dptabsrc.hxx:414
virtual css::uno::Any SAL_CALL getByName(const OUString &aName) override
Definition: dptabsrc.cxx:1190
SCROW GetItemDataId() const
Definition: dptabsrc.hxx:621
unsigned char sal_Bool
bool bEnableLayout
Definition: dptabsrc.hxx:464
virtual sal_Bool SAL_CALL supportsService(const OUString &ServiceName) override
sal_Int32 nLev
Definition: dptabsrc.hxx:603
sal_Int32 GetPosition(sal_Int32 nColumn)
Definition: dptabsrc.cxx:164
void FilterCacheByPageDimensions()
Set visibilities of individual rows in the cache table based on the page field data.
Definition: dptabsrc.cxx:668
virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override
void FillMemberResults()
Definition: dptabsrc.cxx:997
void setIgnoreEmptyRows(bool bSet)
???
Definition: dptabsrc.cxx:487
sal_Int32 nHier
Definition: dptabsrc.hxx:385
virtual void SAL_CALL removeRefreshListener(const css::uno::Reference< css::util::XRefreshListener > &l) override
Definition: dptabsrc.cxx:425
bool SubTotalAllowed(sal_Int32 nColumn)
Definition: dptabsrc.cxx:232
sal_Int32 nDim
Definition: dptabsrc.hxx:601
sal_Int32 nDimCount
Definition: dptabsrc.hxx:230
virtual void SAL_CALL setPropertyValue(const OUString &aPropertyName, const css::uno::Any &aValue) override
Definition: dptabsrc.cxx:1420
ScDPItemData FillItemData() const
Definition: dptabsrc.cxx:2503
css::uno::Sequence< sal_Int16 > getSubTotals() const
Definition: dptabsrc.cxx:2049
static const tools::Long nHierCount
Definition: dptabsrc.hxx:351
css::sheet::DataPilotFieldReference aReferenceValue
Definition: dptabsrc.hxx:274
virtual OUString SAL_CALL getName() override
Definition: dptabsrc.cxx:1718
virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override
bool getShowDetails() const
Definition: dptabsrc.hxx:655
virtual css::uno::Any SAL_CALL getByName(const OUString &aName) override
Definition: dptabsrc.cxx:1777
virtual sal_Bool SAL_CALL supportsService(const OUString &ServiceName) override
virtual sal_Bool SAL_CALL hasByName(const OUString &aName) override
Definition: dptabsrc.cxx:1802
static tools::Long getUsedHierarchy()
Definition: dptabsrc.hxx:334
css::sheet::DataPilotFieldSortInfo aSortInfo
Definition: dptabsrc.hxx:456
std::vector< sal_Int32 > maDataDims
Definition: dptabsrc.hxx:89
virtual sal_Bool SAL_CALL supportsService(const OUString &ServiceName) override
ScDPDimension(ScDPSource *pSrc, tools::Long nD)
Definition: dptabsrc.cxx:1265
ScDPMembers(ScDPSource *pSrc, sal_Int32 nDim, sal_Int32 nHier, sal_Int32 nLev)
Definition: dptabsrc.cxx:2166
virtual sal_Bool SAL_CALL supportsService(const OUString &ServiceName) override
sal_Int32 nLev
Definition: dptabsrc.hxx:555
virtual void SAL_CALL removePropertyChangeListener(const OUString &aPropertyName, const css::uno::Reference< css::beans::XPropertyChangeListener > &aListener) override
std::unique_ptr< rtl::Reference< ScDPDimension >[]> ppDims
Definition: dptabsrc.hxx:232
std::vector< ScDPLevel * > aColLevelList
Definition: dptabsrc.hxx:106
ScDPMember(ScDPSource *pSrc, sal_Int32 nDim, sal_Int32 nHier, sal_Int32 nLev, SCROW nIndex)
Definition: dptabsrc.cxx:2439
virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override
virtual css::uno::Sequence< css::uno::Sequence< css::sheet::DataResult > > SAL_CALL getResults() override
Definition: dptabsrc.cxx:355
Base class that abstracts different data source types of a datapilot table.
Definition: dptabdat.hxx:56
sal_Int32 SCROW
Definition: types.hxx:17
void setRepeatIfEmpty(bool bSet)
Definition: dptabsrc.cxx:493
virtual css::uno::Sequence< double > SAL_CALL getFilteredResults(const css::uno::Sequence< css::sheet::DataPilotFieldFilter > &aFilters) override
Definition: dptabsrc.cxx:389
ScDPSource * pSource
Definition: dptabsrc.hxx:413
rtl::Reference< ScDPMembers > mxMembers
Definition: dptabsrc.hxx:454
virtual void SAL_CALL addPropertyChangeListener(const OUString &aPropertyName, const css::uno::Reference< css::beans::XPropertyChangeListener > &xListener) override
virtual sal_Bool SAL_CALL supportsService(const OUString &ServiceName) override
bool bRepeatItemLabels
Definition: dptabsrc.hxx:465
bool IsSubtotalsAtTop() const
Definition: dptabsrc.hxx:528
bool IsNamedItem(SCROW nIndex) const
Definition: dptabsrc.cxx:2458
sal_Int32 nSourceDim
Definition: dptabsrc.hxx:272
sal_Int32 Compare(const ScDPMember &rOther) const
Definition: dptabsrc.cxx:2478
bool bRepeatIfEmpty
Definition: dptabsrc.hxx:96
std::vector< ScDPLevel * > aRowLevelList
Definition: dptabsrc.hxx:107
virtual css::uno::Reference< css::beans::XPropertySetInfo > SAL_CALL getPropertySetInfo() override
Definition: dptabsrc.cxx:1392
virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override
std::vector< sal_Int32 > maRowDims
Definition: dptabsrc.hxx:88
bool bShowEmpty
Definition: dptabsrc.hxx:463
css::sheet::DataPilotFieldOrientation GetOrientation(sal_Int32 nColumn)
Definition: dptabsrc.cxx:124
ScDPLevel(ScDPSource *pSrc, sal_Int32 nDim, sal_Int32 nHier, sal_Int32 nLevel)
Definition: dptabsrc.cxx:1881
sal_Int32 GetIndexFromName(const OUString &rName) const
Definition: dptabsrc.cxx:2246
virtual sal_Bool SAL_CALL supportsService(const OUString &ServiceName) override
virtual void SAL_CALL setName(const OUString &aName) override
Definition: dptabsrc.cxx:2044
virtual sal_Bool SAL_CALL hasElements() override
Definition: dptabsrc.cxx:1655
virtual css::uno::Sequence< OUString > SAL_CALL getLocaleIndependentElementNames() override
Definition: dptabsrc.cxx:2302
ScGeneralFunction
the css::sheet::GeneralFunction enum is extended by constants in GeneralFunction2, which causes some type-safety issues.
static sal_Int32 getCount()
Definition: dptabsrc.cxx:1662
virtual void SAL_CALL addVetoableChangeListener(const OUString &PropertyName, const css::uno::Reference< css::beans::XVetoableChangeListener > &aListener) override
bool bResultOverflow
Definition: dptabsrc.hxx:108
virtual OUString SAL_CALL getImplementationName() override
sal_Int32 GetSourceDim() const
Definition: dptabsrc.hxx:288
sal_Int32 nDim
Definition: dptabsrc.hxx:266
virtual css::uno::Type SAL_CALL getElementType() override
Definition: dptabsrc.cxx:1811
sal_Int32 nDim
Definition: dptabsrc.hxx:384
virtual OUString SAL_CALL getImplementationName() override
ScDPSource * pSource
Definition: dptabsrc.hxx:347
virtual ~ScDPMembers() override
Definition: dptabsrc.cxx:2240
virtual css::uno::Any SAL_CALL getPropertyValue(const OUString &PropertyName) override
Definition: dptabsrc.cxx:2573
virtual css::uno::Reference< css::beans::XPropertySetInfo > SAL_CALL getPropertySetInfo() override
Definition: dptabsrc.cxx:1064
ScDPResultTree maResFilterSet
Definition: dptabsrc.hxx:91
virtual sal_Bool SAL_CALL hasElements() override
Definition: dptabsrc.cxx:1816
virtual css::uno::Reference< css::sheet::XMembersAccess > SAL_CALL getMembers() override
Definition: dptabsrc.cxx:1973
sal_Int32 nDim
Definition: dptabsrc.hxx:553
virtual OUString SAL_CALL getImplementationName() override
bool bColumnGrand
Definition: dptabsrc.hxx:93
tools::Long GetDim() const
Definition: dptabsrc.hxx:625
OUString GetNameStr(bool bLocaleIndependent) const
Definition: dptabsrc.cxx:2516
virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override
virtual void SAL_CALL addRefreshListener(const css::uno::Reference< css::util::XRefreshListener > &l) override
Definition: dptabsrc.cxx:420
sal_Int32 getCount() const
Definition: dptabsrc.cxx:1823
sal_Int32 nLevCount
Definition: dptabsrc.hxx:416
virtual OUString SAL_CALL getImplementationName() override
virtual css::uno::Sequence< OUString > SAL_CALL getElementNames() override
Definition: dptabsrc.cxx:1206
virtual void SAL_CALL removePropertyChangeListener(const OUString &aPropertyName, const css::uno::Reference< css::beans::XPropertyChangeListener > &aListener) override
sal_Int32 GetDataDimensionCount() const
Definition: dptabsrc.cxx:141
virtual ~ScDPSource() override
Definition: dptabsrc.cxx:107
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::uno::Sequence< sal_Int16 > aSubTotals
Definition: dptabsrc.hxx:455
virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override
bool getIsDataLayoutDimension() const
Definition: dptabsrc.cxx:1324
virtual void SAL_CALL addVetoableChangeListener(const OUString &PropertyName, const css::uno::Reference< css::beans::XVetoableChangeListener > &aListener) override
virtual sal_Bool SAL_CALL supportsService(const OUString &ServiceName) override
virtual css::uno::Any SAL_CALL getPropertyValue(const OUString &PropertyName) override
Definition: dptabsrc.cxx:1502
virtual sal_Bool SAL_CALL supportsService(const OUString &ServiceName) override
bool bIgnoreEmptyRows
Definition: dptabsrc.hxx:95
bool IsDateDimension(sal_Int32 nDim)
Definition: dptabsrc.cxx:287
virtual OUString SAL_CALL getImplementationName() override
virtual css::uno::Type SAL_CALL getElementType() override
Definition: dptabsrc.cxx:1650
ScDPLevel * getByIndex(sal_Int32 nIndex) const
Definition: dptabsrc.cxx:1828
ScDPHierarchies * GetHierarchiesObject()
Definition: dptabsrc.cxx:1281
sal_Int32 nMbrCount
Definition: dptabsrc.hxx:556
std::unique_ptr< ScDPItemData > pSelectedData
Definition: dptabsrc.hxx:278
rtl::Reference< ScDPLevels > mxLevels
Definition: dptabsrc.hxx:386
virtual void SAL_CALL removePropertyChangeListener(const OUString &aPropertyName, const css::uno::Reference< css::beans::XPropertyChangeListener > &aListener) override
const std::optional< OUString > & GetLayoutName() const
Definition: dptabsrc.cxx:2511
virtual void SAL_CALL addVetoableChangeListener(const OUString &PropertyName, const css::uno::Reference< css::beans::XVetoableChangeListener > &aListener) override
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
void CountChanged()
Definition: dptabsrc.cxx:1168
virtual css::uno::Reference< css::util::XCloneable > SAL_CALL createClone() override
Definition: dptabsrc.cxx:1349
ScDPDimension & operator=(const ScDPDimension &)=delete
void disposeData()
Definition: dptabsrc.cxx:499
bool bHasSelectedPage
Definition: dptabsrc.hxx:275
ScDPSource * pSource
Definition: dptabsrc.hxx:450
sal_Int32 nSortMeasure
Definition: dptabsrc.hxx:461
ScDPMembersHashMap aHashMap
Definition: dptabsrc.hxx:558
virtual void SAL_CALL removePropertyChangeListener(const OUString &aPropertyName, const css::uno::Reference< css::beans::XPropertyChangeListener > &aListener) override
virtual css::uno::Reference< css::container::XNameAccess > SAL_CALL getHierarchies() override
Definition: dptabsrc.cxx:1300
void CreateRes_Impl()
Definition: dptabsrc.cxx:732
css::sheet::DataPilotFieldOrientation getOrientation() const
Definition: dptabsrc.cxx:1319
const ScDPItemData * GetItemData() const
Definition: dptabsrc.cxx:2599
bool bVisible
Definition: dptabsrc.hxx:609
bool IsDataLayoutDimension(sal_Int32 nDim)
Definition: dptabsrc.cxx:277
OUString aSelectedPage
Definition: dptabsrc.hxx:276
ScDPMember * getByIndex(sal_Int32 nIndex) const
Definition: dptabsrc.cxx:2346
std::unique_ptr< ScDPResultData > pResData
Definition: dptabsrc.hxx:101
bool getRepeatItemLabels() const
Definition: dptabsrc.hxx:508
virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override
bool isVisible() const
Definition: dptabsrc.hxx:654
const std::optional< OUString > & GetLayoutName() const
Definition: dptabsrc.cxx:1290
virtual css::uno::Sequence< css::sheet::MemberResult > SAL_CALL getResults() override
Definition: dptabsrc.cxx:1978