23#include <unordered_set>
103 const std::vector<SCROW>& GetNumEntries(
SCCOL nSourceDim,
const ScDPCache* pCache)
const;
105 void SetDateDimension();
118 std::vector<ScDPGroupDimension>
120 std::unique_ptr<ScDPNumGroupDimension[]>
124 void FillGroupValues(std::vector<SCROW>& rItems,
const std::vector<sal_Int32>& rDims);
125 virtual sal_Int32
GetSourceDim( sal_Int32 nDim )
override;
145 virtual const std::vector< SCROW >&
GetColumnEntries( sal_Int32 nColumn )
override ;
147 virtual sal_Int32
Compare( sal_Int32 nDim, sal_Int32 nDataId1, sal_Int32 nDataId2)
override;
154 virtual void SetEmptyFlags(
bool bIgnoreEmptyRows,
bool bRepeatIfEmpty )
override;
159 virtual void FilterCacheTable(std::vector<ScDPFilteredCache::Criterion>&& rCriteria, std::unordered_set<sal_Int32>&& rDataDims)
override;
160 virtual void GetDrillDownData(std::vector<ScDPFilteredCache::Criterion>&& rCriteria,
161 std::unordered_set<sal_Int32>&& rCatDims,
162 css::uno::Sequence< css::uno::Sequence< css::uno::Any > >& rData)
override;
163 virtual void CalcResults(CalcInfo& rInfo,
bool bAutoShow)
override;
168 virtual sal_Int32
GetGroupBase(sal_Int32 nGroupDim)
const override;
171 const ScDPItemData& rBaseData, sal_Int32 nBaseIndex )
const override;
173 const ScDPItemData& rSecondData, sal_Int32 nSecondIndex )
const override;
176 virtual void Dump()
const override;
This class represents the cached data part of the datapilot cache table implementation.
multi-item (group) filter.
This class is only a wrapper to the actual cache, to provide filtering on the raw data based on the q...
tools::Long GetSourceDim() const
ScDPGroupDimension & operator=(const ScDPGroupDimension &rOther)
ScDPGroupDimension(tools::Long nSource, OUString aNewName)
const ScDPGroupItem * GetGroupByIndex(size_t nIndex) const
bool IsDateDimension() const
const ScDPGroupItem * GetGroupForData(const ScDPItemData &rData) const
tools::Long GetGroupDim() const
const OUString & GetName() const
size_t GetItemCount() const
const ScDPGroupItem * GetGroupForName(const ScDPItemData &rName) const
std::vector< SCROW > maMemberEntries
std::vector< ScDPGroupItem > aItems
const std::vector< SCROW > & GetColumnEntries(const ScDPFilteredCache &rCacheTable) const
void SetGroupDim(tools::Long nDim)
void AddItem(const ScDPGroupItem &rItem)
ScDPItemDataVec aElements
void AddElement(const ScDPItemData &rName)
bool HasElement(const ScDPItemData &rData) const
void FillGroupFilter(ScDPFilteredCache::GroupFilter &rFilter) const
ScDPGroupItem(const ScDPItemData &rName)
const ScDPItemData & GetName() const
bool HasCommonElement(const ScDPGroupItem &rOther) const
virtual sal_Int32 GetSourceDim(sal_Int32 nDim) override
virtual const ScDPItemData * GetMemberById(sal_Int32 nDim, sal_Int32 nId) override
virtual sal_Int32 GetMembersCount(sal_Int32 nDim) override
virtual bool IsNumOrDateGroup(sal_Int32 nDim) const override
virtual bool HasCommonElement(const ScDPItemData &rFirstData, sal_Int32 nFirstIndex, const ScDPItemData &rSecondData, sal_Int32 nSecondIndex) const override
virtual void FilterCacheTable(std::vector< ScDPFilteredCache::Criterion > &&rCriteria, std::unordered_set< sal_Int32 > &&rDataDims) override
sal_Int32 GetDimensionIndex(std::u16string_view rName)
std::shared_ptr< ScDPTableData > pSourceData
virtual void CalcResults(CalcInfo &rInfo, bool bAutoShow) override
const std::shared_ptr< ScDPTableData > & GetSourceTableData() const
virtual void SetEmptyFlags(bool bIgnoreEmptyRows, bool bRepeatIfEmpty) override
virtual void DisposeData() override
virtual void CreateCacheTable() override
virtual bool IsDateDimension(sal_Int32 nDim) override
virtual sal_Int32 GetGroupBase(sal_Int32 nGroupDim) const override
virtual bool getIsDataLayoutDimension(sal_Int32 nColumn) override
void FillGroupValues(std::vector< SCROW > &rItems, const std::vector< sal_Int32 > &rDims)
virtual sal_uInt32 GetNumberFormat(sal_Int32 nDim) override
virtual bool IsRepeatIfEmpty() override
virtual bool IsBaseForGroup(sal_Int32 nDim) const override
void GetNumGroupInfo(tools::Long nDimension, ScDPNumGroupInfo &rInfo)
virtual void Dump() const override
bool IsNumGroupDimension(tools::Long nDimension) const
void SetNumGroupDimension(sal_Int32 nIndex, const ScDPNumGroupDimension &rGroup)
virtual const std::vector< SCROW > & GetColumnEntries(sal_Int32 nColumn) override
virtual const ScDPFilteredCache & GetCacheTable() const override
void AddGroupDimension(const ScDPGroupDimension &rGroup)
virtual ~ScDPGroupTableData() override
std::unique_ptr< ScDPNumGroupDimension[]> pNumGroups
virtual bool IsInGroup(const ScDPItemData &rGroupData, sal_Int32 nGroupIndex, const ScDPItemData &rBaseData, sal_Int32 nBaseIndex) const override
virtual void GetDrillDownData(std::vector< ScDPFilteredCache::Criterion > &&rCriteria, std::unordered_set< sal_Int32 > &&rCatDims, css::uno::Sequence< css::uno::Sequence< css::uno::Any > > &rData) override
void ModifyFilterCriteria(::std::vector< ScDPFilteredCache::Criterion > &rCriteria)
virtual void ReloadCacheTable() override
ScDPGroupTableData(const std::shared_ptr< ScDPTableData > &pSource, ScDocument *pDocument)
std::vector< ScDPGroupDimension > aGroups
virtual OUString getDimensionName(sal_Int32 nColumn) override
virtual sal_Int32 GetColumnCount() override
use (new) typed collection instead of ScStrCollection or separate Str and ValueCollection
virtual sal_Int32 Compare(sal_Int32 nDim, sal_Int32 nDataId1, sal_Int32 nDataId2) override
When assigning a string value, you can also assign an interned string whose life-cycle is managed by ...
std::vector< SCROW > maMemberEntries
ScDPNumGroupInfo aGroupInfo
bool IsDateDimension() const
const ScDPNumGroupInfo & GetInfo() const
Base class that abstracts different data source types of a datapilot table.
::std::vector< ScDPItemData > ScDPItemDataVec