summaryrefslogtreecommitdiff
path: root/sc/inc/dptablecache.hxx
diff options
context:
space:
mode:
Diffstat (limited to 'sc/inc/dptablecache.hxx')
-rw-r--r--sc/inc/dptablecache.hxx25
1 files changed, 23 insertions, 2 deletions
diff --git a/sc/inc/dptablecache.hxx b/sc/inc/dptablecache.hxx
index 2a61b94b4f79..dac253768320 100644
--- a/sc/inc/dptablecache.hxx
+++ b/sc/inc/dptablecache.hxx
@@ -70,8 +70,18 @@ private:
*/
mutable ObjectSetType maRefObjects;
+ struct GroupItems : boost::noncopyable
+ {
+ DataListType maItems;
+ };
+
struct Field : boost::noncopyable
{
+ /**
+ * Optional items for grouped field.
+ */
+ boost::scoped_ptr<GroupItems> mpGroup;
+
DataListType maItems; /// Unique values in the field.
/**
@@ -97,14 +107,20 @@ private:
Field();
};
+ struct GroupField : boost::noncopyable
+ {
+ DataListType maItems; /// Unique values in the field.
+ };
+
typedef boost::ptr_vector<Field> FieldsType;
+ typedef boost::ptr_vector<GroupField> GroupFieldsType;
+
FieldsType maFields;
+ GroupFieldsType maGroupFields;
LabelsType maLabelNames; // Stores dimension names.
std::vector<bool> mbEmptyRow; // Keeps track of empty rows.
- boost::scoped_ptr<ScDPItemDataPool> mpAdditionalData;
-
bool mbDisposing;
public:
@@ -115,6 +131,10 @@ public:
SCROW GetIdByItemData(long nDim, const rtl::OUString& sItemData) const;
SCROW GetIdByItemData(long nDim, const ScDPItemData& rData) const;
+ void AppendGroupField();
+ void ResetGroupItems(long nDim);
+ SCROW SetGroupItem(long nDim, const ScDPItemData& rData);
+
SCROW GetAdditionalItemID( const ScDPItemData& rData ) const;
SCCOL GetDimensionIndex(const rtl::OUString& sName) const;
@@ -137,6 +157,7 @@ public:
ScDocument* GetDoc() const;//ms-cache-core
long GetColumnCount() const;
+ long GetGroupFieldCount() const;
const ScDPItemData* GetItemDataById( long nDim, SCROW nId ) const;