diff options
Diffstat (limited to 'sc/inc')
-rw-r--r-- | sc/inc/dpdimsave.hxx | 22 | ||||
-rw-r--r-- | sc/inc/dpgroup.hxx | 7 | ||||
-rw-r--r-- | sc/inc/dptablecache.hxx | 9 | ||||
-rw-r--r-- | sc/inc/dputil.hxx | 7 |
4 files changed, 28 insertions, 17 deletions
diff --git a/sc/inc/dpdimsave.hxx b/sc/inc/dpdimsave.hxx index 6858e8bf0f78..925cb9425918 100644 --- a/sc/inc/dpdimsave.hxx +++ b/sc/inc/dpdimsave.hxx @@ -52,13 +52,14 @@ class ScDPSaveGroupDimension; class SC_DLLPUBLIC ScDPSaveGroupItem { rtl::OUString aGroupName; // name of group - ::std::vector<rtl::OUString> aElements; // names of items in original dimension + std::vector<rtl::OUString> aElements; // names of items in original dimension + mutable std::vector<ScDPItemData> maItems; // items converted from the strings. public: ScDPSaveGroupItem( const rtl::OUString& rName ); ~ScDPSaveGroupItem(); - void AddToData( ScDPGroupDimension& rDataDim, SvNumberFormatter* pFormatter ) const; + void AddToData(ScDPGroupDimension& rDataDim) const; void AddElement( const rtl::OUString& rName ); void AddElementsFromGroup( const ScDPSaveGroupItem& rGroup ); @@ -74,6 +75,9 @@ public: // remove this group's elements from their groups in rDimension // (rDimension must be a different dimension from the one which contains this) void RemoveElementsFromGroups( ScDPSaveGroupDimension& rDimension ) const; + + void ConvertElementsToItems(SvNumberFormatter* pFormatter) const; + bool HasInGroup(const ScDPItemData& rItem) const; }; typedef ::std::vector<ScDPSaveGroupItem> ScDPSaveGroupItemVec; @@ -87,7 +91,7 @@ class SC_DLLPUBLIC ScDPSaveGroupDimension rtl::OUString aSourceDim; // always the real source from the original data rtl::OUString aGroupDimName; ScDPSaveGroupItemVec aGroups; - ScDPNumGroupInfo aDateInfo; + mutable ScDPNumGroupInfo aDateInfo; sal_Int32 nDatePart; public: @@ -96,7 +100,7 @@ public: ~ScDPSaveGroupDimension(); void AddToData( ScDPGroupTableData& rData ) const; - + void AddToCache(ScDPCache& rCache) const; void SetDateInfo( const ScDPNumGroupInfo& rInfo, sal_Int32 nPart ); void AddGroupItem( const ScDPSaveGroupItem& rItem ); @@ -119,18 +123,21 @@ public: ScDPSaveGroupItem* GetGroupAccByIndex( long nIndex ); void Rename( const rtl::OUString& rNewName ); + +private: + bool IsInGroup(const ScDPItemData& rItem) const; }; /** * Represents a group dimension that introduces a new hierarchy for an * existing dimension. Unlike the ScDPSaveGroupDimension counterpart, it - * re-uses the source dimension. + * re-uses the source dimension name and ID. */ class SC_DLLPUBLIC ScDPSaveNumGroupDimension { rtl::OUString aDimensionName; - ScDPNumGroupInfo aGroupInfo; - ScDPNumGroupInfo aDateInfo; + mutable ScDPNumGroupInfo aGroupInfo; + mutable ScDPNumGroupInfo aDateInfo; sal_Int32 nDatePart; public: @@ -139,6 +146,7 @@ public: ~ScDPSaveNumGroupDimension(); void AddToData( ScDPGroupTableData& rData ) const; + void AddToCache(ScDPCache& rCache) const; const rtl::OUString& GetDimensionName() const { return aDimensionName; } const ScDPNumGroupInfo& GetInfo() const { return aGroupInfo; } diff --git a/sc/inc/dpgroup.hxx b/sc/inc/dpgroup.hxx index b90c667b7387..5340b70d392b 100644 --- a/sc/inc/dpgroup.hxx +++ b/sc/inc/dpgroup.hxx @@ -60,9 +60,7 @@ public: sal_Int32 GetDatePart() const { return nDatePart; } const ScDPNumGroupInfo& GetNumInfo() const { return aNumInfo; } - void FillColumnEntries( - SCCOL nSourceDim, ScDPCache* pCahe , std::vector<SCROW>& rEntries, - const std::vector<SCROW>& rOriginal) const; + void FillColumnEntries(const ScDPCache* pCache, std::vector<SCROW>& rEntries) const; }; typedef ::std::vector<ScDPItemData> ScDPItemDataVec; @@ -143,8 +141,7 @@ public: const ScDPDateGroupHelper* GetDateHelper() const { return pDateHelper; } - const std::vector<SCROW>& GetNumEntries( - SCCOL nSourceDim, ScDPCache* pCache, const std::vector<SCROW>& rOriginal) const; + const std::vector<SCROW>& GetNumEntries(SCCOL nSourceDim, const ScDPCache* pCache) const; void MakeDateHelper( const ScDPNumGroupInfo& rInfo, long nDim, sal_Int32 nPart ); diff --git a/sc/inc/dptablecache.hxx b/sc/inc/dptablecache.hxx index b87713028543..8a322843dd92 100644 --- a/sc/inc/dptablecache.hxx +++ b/sc/inc/dptablecache.hxx @@ -131,15 +131,16 @@ public: SCROW GetIdByItemData(long nDim, const rtl::OUString& sItemData) const; SCROW GetIdByItemData(long nDim, const ScDPItemData& rItem) const; rtl::OUString GetFormattedString(long nDim, const ScDPItemData& rItem) const; - void AppendGroupField(); + long AppendGroupField(); void ResetGroupItems(long nDim, const ScDPNumGroupInfo& rNumInfo); SCROW SetGroupItem(long nDim, const ScDPItemData& rData); + const DataListType* GetGroupDimMemberValues(long nDim) const; + void GetGroupDimMemberIds(long nDim, std::vector<SCROW>& rIds) const; void ClearGroupFields(); SCROW GetAdditionalItemID( const ScDPItemData& rData ) const; SCCOL GetDimensionIndex(const rtl::OUString& sName) const; - sal_uLong GetNumType ( sal_uLong nFormat ) const; sal_uLong GetNumberFormat( long nDim ) const; bool IsDateDimension( long nDim ) const ; SCROW GetDimMemberCount( SCCOL nDim ) const; @@ -151,12 +152,12 @@ public: SCROW GetRowCount() const; SCROW GetItemDataId( sal_uInt16 nDim, SCROW nRow, bool bRepeatIfEmpty ) const; - rtl::OUString GetDimensionName( sal_uInt16 nColumn ) const; + rtl::OUString GetDimensionName(long nDim) const; bool IsRowEmpty( SCROW nRow ) const; bool IsValid() const; bool ValidQuery(SCROW nRow, const ScQueryParam& rQueryParam) const; - ScDocument* GetDoc() const;//ms-cache-core + ScDocument* GetDoc() const; long GetColumnCount() const; long GetGroupFieldCount() const; diff --git a/sc/inc/dputil.hxx b/sc/inc/dputil.hxx index 68414f3a45bf..4ed4e5c679ea 100644 --- a/sc/inc/dputil.hxx +++ b/sc/inc/dputil.hxx @@ -51,7 +51,12 @@ public: static double getNumGroupStartValue(double fValue, const ScDPNumGroupInfo& rInfo); static rtl::OUString getNumGroupName( - double fValue, const ScDPNumGroupInfo& rInfo, sal_Unicode cDecSep, SvNumberFormatter* pFormatter); + double fValue, const ScDPNumGroupInfo& rInfo, sal_Unicode cDecSep, + SvNumberFormatter* pFormatter); + + static sal_Int32 getDatePartValue( + double fValue, const ScDPNumGroupInfo& rInfo, sal_Int32 nDatePart, + SvNumberFormatter* pFormatter); }; #endif |