summaryrefslogtreecommitdiff
path: root/sc/inc
diff options
context:
space:
mode:
Diffstat (limited to 'sc/inc')
-rw-r--r--sc/inc/dpdimsave.hxx22
-rw-r--r--sc/inc/dpgroup.hxx7
-rw-r--r--sc/inc/dptablecache.hxx9
-rw-r--r--sc/inc/dputil.hxx7
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