diff options
Diffstat (limited to 'sc/inc/dptablecache.hxx')
-rw-r--r-- | sc/inc/dptablecache.hxx | 25 |
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; |