Mobile API Reference  MicroStrategy 2019
Dataset.h
Go to the documentation of this file.
1 //==============================================================================================
2 // FILENAME : Dataset.h
3 // AUTHOR : Dong Shi & Fangyao Ma
4 // CREATION : 2008-05-15
5 // Copyright (C) MicroStrategy Incorporated 2008
6 // All Rights Reserved
7 //==============================================================================================
8 #ifndef MsiChart_Dataset_h
9 #define MsiChart_Dataset_h
10 
11 #include "Base/Base/BaseString.h"
13 #include "Synch/Defines/SmartPtr.h"
14 #include "PDCHeader/PDCvector"
15 #include "PDCHeader/PDCset"
16 #include "PDCHeader/PDCmap"
17 #include "PDCHeader/PDCfstream"
18 #ifdef _VE_CE
19 #include "VisualizationEngine/ChartEngine/Chart/ChartEngine.h"
20 #include "VisualizationEngine/VECore/VEWidgets/GraphMatrix/DataModel/GMCEDataProvider.h"
21 #else
22 #define CHARTENGINE_API
23 #endif
24 
25 /*
26 #ifndef _Msi_Variant
27 #define _Msi_Variant
28 #endif
29 */
30 #ifndef _VE_CE
31 // AE Integration
32 #import "DSSRWGridIterator.h"
33 #import "DSSTemplate.h"
34 
35 class DSSRWGridIterator;
36 class DSSTemplateUnit;
37 class DSSTemplate;
38 #endif
39 
40 //extern const MBase::String gAttrFormsSeperator;
41 
42 namespace MsiChart
43 {
44 #ifndef _VE_CE
45  typedef unsigned char DSSDataFlag;
46 #endif
47  class DimTree; // forward declaration
48  struct ChartAdvFormat;
49  class DataPiece;
50  class TokenManager;
51  struct MetricUnitInfo;
52 
53  enum EnumDataMode // 3 access mode
54  {
55  DM_GENERIC = 1, //< Generic data.
56  DM_TEMPLATE, //< Data from template, with duplication.
57  DM_AE_ADAPTER, //< Wrapper of AE data table.
58  DM_AE_ADAPTER_REFORMED //< Reformed Table.
59  };
60 
61  typedef enum
62  {
68  }AGG_TYPE;
69 
70  typedef enum{
72  DRT_PERCENT, //ordinary value, but in percentage.
73  DRT_PERCENT_STACKED, //stacked value, in percentage.
74  DRT_STACKED, //stacked value
76 
77  typedef enum
78  {
79  SLICE_STEPWISE = 0, //Closely overlaped, used in collection.
80  SLICE_GROUPADJACENT = 1, //< adjust to others, used in collection
81  SLICE_INDEPENDENT = 2, //< With no overlap with others, used in collection
82  SLICE_STRIPPED =3, //< DE-ADJACENT one
83  SLICE_SPECIFY = 4, //< USER SET THE WINDOW SIZE AND POSITION
84  SLICE_MIXED_GROUP = 5, //< Group is continous but not the series
85  SLICE_MIXED_SERIES = 6, //< Series is continous but not the group
86  }SLICE_TYPE;
87 
88  typedef enum
89  {
93  SHUFFLE_BOTH = 0x11,
95 
96 
97  typedef enum
98  {
103 
104 
105  typedef enum
106  {
113 
114  typedef enum
115  {
116  LLO_NORMAL = 0, //normal case, use old chart engine logic
117  LLO_COMMON = 1, //Label piece from root node to the last but one.
118  LLO_SPECIFIC = 2, //Bottom level piece.
119  LLO_LINK = 3, //To Get the link part (always the lowest part), if it is indeed a linkable label
121 
125  typedef enum
126  {
134 
135  typedef enum
136  {
141 
143  {
148 
149  DataGroupInfo();
150  };
151 
152  struct DataSetReformInfo //< Used for iPad Graph Matrix in Dataset Reform.
153  {
154  bool mIsMetricGrouped; //< If the same metric needs to be grooped.
155  bool mIsDrawByRow; //< Draw row by row or col by col.
156  bool mIsShuffled; //< Does Suffle actually happend here.
157  bool mHasConsolidatedMetrics; //< To pass info to dataset, whether to draw multiple data metrics in one single chart.
158 
159  Int32 mSizeIndex; //< primary size index. for non-bubble chart.
160  Int32 mColorIndex; //< primary color index.
161  Int32 mDataGroup; //< original data group size without addition metrics
162  Int32 mBalancedGroupCount; //< cluster bar, empty dropzone with "MSIMetric" key, show metric labels. The Number of Metrics to be shown.
163 
164  std::vector<Int32> mDataMetricIndexSet; //< column indexs of those metric used as data metric, this should go along with the rendered sequence.
165  std::vector<Int32> mAdditionalMetricIndexSet; //< column indexs of those metric used as addtional metric
166  std::vector<Int32> mShuffledIndexSet; //< the shuffled index by inserting addtional metrics to each data group.
167 
168  bool mHasGroupbyMetrics; //< group by metrics or not.
169  bool mIsDataNeeded; //< is data part needed in data set population?
170  Int32 mSelectedMetricNumber; //< number of selected metrics.
171 
172  bool Shuffle(); //< compute mShuffledIndex @return ture if shuffle actually happens.
174 
175  //For pie chart
177  bool mIsNeedToBreakCol; //< for horizatial-category pie, need to break columns into groups.
178  bool mIsNeedToCombineCol; //< for category-pie, sometime need to combine groups to one group, several groups.
179  bool mIsNeedToCombineSlice; //< for horizontal-category pie, has slice, need to combine the slice to Row.
180  Int32 mGroupNumForCombine; //< number of groups to combine together : for multiple X/Y metric in one group, combine to row.
181  Int32 mSliceNumForCombine; //< number of slice to combile together : For horizontal categorypie, slice on the column, combine to row.
182  Int32 mColBreakDepth; //< columns'break starts from which depth.
183  Int32 mGroupNumAfterBreak; //< group number after col break.
184 
185 
186  private:
187  bool mInit;
188  };
189 
190 
191 
192  /*
193  * Dataset interface
194  */
195  class FormatManager;
196  class RGBColor;
197  struct GraphFillGradient;
198  class Dataset
199  {
200  public:
201  // Type definition
202  typedef Dataset* Ptr; // Since Dataset needs to be passed in from other module, we use raw pointer here for simplicity.
203 
204  // Common option
205  virtual void SetSeriesByColumn(bool iSeriesByColumn) = 0;
206  virtual bool GetSeriesByColumn() const = 0;
207  virtual void SetReverseGroup(bool iReverseGroup) = 0;
208  virtual bool GetReverseGroup() = 0;
209  virtual void SetReverseSeries(bool iRevereSeries) = 0;
210  virtual void SetForHistogram(bool iIsForHistogram) = 0;
211 
212  virtual float GetMemoryUsageEstimation() = 0;
213 
214  // DataSliceWindow
215  virtual bool GetSliceGroupRange(Int32& iBeginGroup, Int32& iEndGroup) = 0;
216  virtual bool PopulateOneSlice(Int32 iBeinSeries, Int32 iEndSeries, Int32 iBeginGroup, Int32 iEndGroup) = 0;
217  virtual bool GetOneSliceRange(Int32& iBeinSeries, Int32& iEndSeries, Int32& iBeginGroup, Int32& iEndGroup) = 0;
218  virtual bool PopulateOneSlice(const std::vector<Int32>& irSeriesIndex, const std::vector<Int32>& irGroupIndex, SLICE_TYPE iType = SLICE_STRIPPED) = 0;
219  virtual bool GetOneSliceRange(std::vector<Int32>& irSeriesIndex, std::vector<Int32>& irGroupIndex) = 0;
220 
221 
222  //Data Shuffle Window
223  virtual bool ShuffleIndex(bool iIsOnRow, const std::vector<Int32>& iShuffledIndexList) = 0;
224  virtual SHUFFLE_STATUS GetShuffledStatus() = 0;
225  virtual void RestoreFromShuffle() = 0;
226 
227  /*Populate one slice window, in which the groups are continous or the series are continuous
228  *@param iBegin : star index for the continuous axis
229  *@param iEnd : end index for the continuous axis
230  *@param irIndex: the index set for the uncontinuous axis
231  *@param iType: denote which axis is continuous.
232  */
233  virtual bool PopulateOneSlice(Int32 iBegin, Int32 iEnd, const std::vector<Int32>& irIndex, SLICE_TYPE iType = SLICE_MIXED_GROUP) = 0;
234  virtual bool GetSliceFlag() = 0;
235  virtual void EnableSlices(bool iUseSlice = true) = 0;
236  virtual bool IsSliced() = 0;
237  virtual bool SetActiveSliceIndex(Int32 iIndex = 0) = 0;
238  virtual Int32 GetActiveSliceIndex() = 0;
239  virtual bool AdjustGroupRange(Int32 iOffset) = 0;
240  virtual bool AdjustGroupRange(Int32 iBeginGroup, Int32 iEndGroup) = 0;
241 
242  //Data Group
243  virtual HRESULT SetDataGroup(Int32 iDataGroup, bool iIgnoreForNoSeriesOrGroup = true) = 0;
244 
245  // Used for rendering - by SeriesID&GroupID
246  virtual Int32 GetDataGroup() = 0;
247  virtual HRESULT GetData(Int32 iSeriesID, Int32 iGroupID, const double*& iorValue, Int32 iColumnOffset = 0, bool iIsForSlice = true) = 0;
248  virtual HRESULT GetTotalData(Int32 iIndex, bool iIsGroupTotal, Int32 iSpanStartIndex, Int32 iSpanEndIndex, double& iorValue, Int32 iColumnOffset, bool iIsUseAbsValue = false, bool iIsForSlice = true) = 0;
249  virtual HRESULT GetTotalData(Int32 iIndex, bool iIsGroupTotal, const std::vector<Int32>& iPickedIndexSet, double& iorValue, Int32 iColumnOffset, bool iIsUseAbsValue = false, bool iIsForSlice = true) = 0;
250  virtual HRESULT GetToolTipDataString(Int32 iSeriesID, Int32 iGroupID, MBase::String& orDataString, Int32 iOffset) = 0;
251  virtual HRESULT GetPieSubtotal(std::map<std::pair<Int32, Int32>, double> iPieSubtotalMap, Int32 iGroupId, const std::vector<Int32>& iPickedIndexSet, double& iorValue, Int32 iColumnOffset, bool iIsUseAbsValue = false, bool iIsForSlice = true) = 0;
252  virtual void GetSubTotalGlobalRowAndColumnIndex(Int32 iGroupId, const std::vector<Int32>& iPickedIndexSet, Int32 iColumnOffset, Int32 &iorRowOrdinal, Int32 &iorColOrdinal) = 0;
253  virtual HRESULT GetPrimaryData(Int32 iSeriesID,Int32 iGroupID, const double*& iorValue,Int32 iPrimaryIndex = 0, bool iIsForColor = false, bool iIsForSlice = true, int iAngleIndex = 0, int iSliceIndex = 0) = 0;
254  virtual HRESULT GetGMPieMaxMin(double& orMax, double& orMin, Int32 iColumnOffset, DATA_RETRIEVAL_TYPE iType = DRT_NORMAL) = 0;
255  virtual HRESULT GetGMPieSubtotalMaxMin(std::map<std::pair<Int32, Int32>, double> iPieSubtotalMap, double& orMax, double& orMin, Int32 iColumnOffset, DATA_RETRIEVAL_TYPE iType = DRT_NORMAL) = 0;
256 
257  virtual HRESULT GetSeriesCount(Int32& orSeriesCount) = 0;
258  virtual HRESULT GetGroupCount(Int32& orGroupCount) = 0;
259 
260  //Graph Matrix Pie Support, Data Info from widget level
261  virtual HRESULT GetPieAngleCount(Int32 iGroupId, Int32 iSeriesId, Int32& orAngleCount) = 0;
262  virtual HRESULT GetPieSliceCount(Int32 iGroupId, Int32 iSeriesId, Int32 iAngleId, Int32& orSliceCount) = 0;
263  virtual HRESULT GetPieSliceData(Int32 iGroupId, Int32 iSeriesId, Int32 iAngleId, Int32 iSliceId, const double*& iorValue, Int32 iColumnOffset = -1) = 0;
264  virtual HRESULT GetData(Int32 iGroupId, Int32 iSeriesId, EnumGraphMatrixDataIndexType iDataIndexType, const double*& iorValue, Int32 iAngleId = -3) = 0;
265  virtual HRESULT GetDataPositionPartSize(Int32& orDataPositionPartSize) = 0;
266  virtual HRESULT GetDataSizeByPartSize(Int32& orDataSizeByPartSize) = 0;
267  virtual HRESULT GetDataAdditionPartSize(Int32& orDataAdditionPartSize) = 0;
268 
269  virtual HRESULT GetSeriesLabel(Int32 iSeriesID,MBase::String& orSeriesLabel, bool iSubstitute = true, Int32 iColumnOffset = 0, bool iIsForSlice = true, LABEL_LEVEL_OPTION iOption = LLO_NORMAL, bool iIsForEmptyAxisWithTemplateMetrc = false) = 0;
270  virtual HRESULT GetGroupLabel(Int32 iGroupID, MBase::String& orGroupLabel, bool iSubstitute = true, Int32 iColumnOffset = 0, bool iIsForSlice = true, LABEL_LEVEL_OPTION iOption = LLO_NORMAL) = 0;
271  virtual HRESULT GetPeakValuesAcrossSeries(double& orMax, double& orMin, const std::vector<Int32>& irSereisSet, Int32 iColumnOffset = 0) = 0;
272  virtual HRESULT GetPeakValuesAcrossSeries(double& orMax, double& orMin, Int32 iBeginSeries, Int32 iEndSeries, Int32 iColumnOffset = 0) = 0;
273 
274  // For dimensional label - return the group's Dimensional Tree
275  virtual void GetGroupDimTree(DimTree*& iopDimTree) = 0;
276  virtual MBase::String GetTemplateUnitElementName(Int32 iDimLayer, Int32 iIndexInsideDim, bool iIsInRowTree = false, Int32 iFormIndex = 0, MBase::String iSeperator = L" ") = 0;
277  virtual MBase::String GetTemplateUnitName(Int32 iDimLayer, bool iIsInRowTree = false, bool iUseAlias = false) = 0;
278  virtual Int32 GetTreeWidth(Int32 iDimLayer, bool iIsInRowTree, bool iIsActualSize = false, bool iIsSqueezeHCG = true) = 0;
279  //virtual Int32 GetTreeDepth(bool iIsInRowTree) = 0;
280  virtual DimTree* GetRowTree() = 0;
281  virtual DimTree* GetColTree() = 0;
282 
283  // Get data format for ValueAxis /each data point /thresh hold color
291  virtual HRESULT GetValueAxisNumberFormat(ChartAdvFormat& orFormat, bool iConsiderThresholds = true, Int32 iStartIndex = 0, Int32 iStep = 0) = 0;
292  virtual HRESULT GetValueAxisNumberFormat(ChartAdvFormat& orFormat, const std::set<Int32>& irMetricSet) = 0;
293  virtual HRESULT GetGridDataFormat(ChartAdvFormat& orFormat, Int32 iSeriesId, Int32 iGroupId, Int32 iColumnOffset, Int32 iAngleId = -3, Int32 iSliceId = -3) = 0;
294  virtual HRESULT GetGridDataFormat(ChartAdvFormat& orFormat, Int32 iHostMetricIndex, bool iIsAngleMetricIndex = false, Int32 iGroupId = 0) = 0;
295 
296  virtual HRESULT GetThresholdFillColor(Int32 iSeriesId, Int32 iGroupId, CComVariant* opValue) = 0;
298  virtual bool GetReplacedText(Int32 iSeriesId, Int32 iGroupId, Int32 iColumnOffset,MBase::String& orReplacedText, Int32& orColor) = 0;
299 
300  // GM TrendLine Support
301  virtual std::vector<double> GetTrendLineValuesWithForecast(Int32 iSeriesId) = 0;
302  virtual std::vector<double> GetCoefficients(Int32 iSeriesId) = 0;
303  virtual bool IsExpomentialBaseNearOne(Int32 iSeriesId) = 0;
304 
305  // GM RefLine Support
306  virtual std::vector<double> GetRefLineValues(Int32 iSeriesId) = 0;
307  virtual std::vector<double> GetRefLineValuesForBubble(Int32 iIndex, Int32 iAxisIndex) = 0;
308  virtual void GetRefLineLable(Int32 iSeriesId, Int32 iRefLineIndex, std::string& iText, bool& orIsShowValue, double& orValue) = 0;
309 
310  // Manual set data
311  virtual HRESULT SetRowAndColumn(Int32 iRowNumber, Int32 iColumnNumber) = 0;
312  virtual HRESULT SetData(Int32 iRow, Int32 iCol, double iValue) = 0;
313  virtual HRESULT SetRowLabel(Int32 iRow, const wchar_t* ipRowLabel) = 0;
314  virtual HRESULT SetColumnLabel(Int32 iColumn, const wchar_t* ipColumnLabel) = 0;
315 
316  //Text as shape support
317  virtual bool GetTextValue(Int32 iSeriesId, Int32 iGroupId,double& orDataValue) = 0;
318 
319  //Getting Properties Support ============================================================================
320  /*
321  *find the 1st cell that has (or has not) individual formatting from either series or group.
322  *@param Target 0:generic 1:individual
323  */
324  virtual Int32 FindCell(bool iFromSeries,Int32 Index,Int32 Target) = 0;
325  virtual bool GetGenericFillFormatColor(RGBColor& orColor, Int32 iSeriesId ,Int32 iGroupId,Int32 iAngleId = -3 , Int32 iSliceId = -3) = 0;
326  virtual bool GetGenericFillFormatType(unsigned char& orFillType,Int32 iSeriesId ,Int32 iGroupId,Int32 iAngleId = -3 , Int32 iSliceId = -3) = 0;
327  virtual bool GetGenericFillFormatAlpha(unsigned char& orAlpha,Int32 iSeriesId ,Int32 iGroupId,Int32 iAngleId = -3 , Int32 iSliceId = -3) = 0;
328  virtual bool GetGenericFillFormatGradient(GraphFillGradient& irFillGradient,Int32 iSeriesId ,Int32 iGroupId ,Int32 iSliceId = -3) = 0;
329 
330  virtual bool GetTrendLineThickness(Int32& orLineThickness,Int32 iSeriesId,Int32 iGroupId) = 0;
331  virtual bool GetTrendLineStyle(unsigned char& orLineStyle,Int32 iSeriesId,Int32 iGroupId) = 0;
332  virtual bool GetTrendLineColor(RGBColor& orLineColor,Int32 iSeriesId,Int32 iGroupId) = 0;
333 
334  virtual bool GetReferenceLineThickness(Int32& orLineThickness,Int32 iSeriesId,Int32 iGroupId) = 0;
335  virtual bool GetReferenceLineStyle(unsigned char& orLineStyle,Int32 iSeriesId,Int32 iGroupId) = 0;
336  virtual bool GetReferenceLineColor(RGBColor& orLineColor,Int32 mSeriesId,Int32 iGroupId) = 0;
337 
338  virtual bool GetAxisOriginLineThickness(Int32& orLineThickness,Int32 iObjectID) = 0;
339  virtual bool GetAxisOriginLineStyle(unsigned char& orLineStyle,Int32 iObjectID) = 0;
340  virtual bool GetAxisOriginLineColor(RGBColor& orLineColor,Int32 iObjectID) = 0;
341 
342  virtual bool GetGenericLineThickness(Int32& orLineThickness,Int32 iSeriesId ,Int32 iGroupId,Int32 iAngleId = -3 , Int32 iSliceId = -3) = 0;
343  virtual bool GetGenericLineStyle(unsigned char& orLineStyle,Int32 iSeriesId ,Int32 iGroupId,Int32 iAngleId = -3 , Int32 iSliceId = -3) = 0;
344  virtual bool GetGenericLineColor(RGBColor& orLineColor,Int32 iSeriesId ,Int32 iGroupId,Int32 iAngleId = -3 , Int32 iSliceId = -3) = 0;
345 
346  virtual bool GetAxisLineThicknessFormat(Int32& orLineThickness) = 0;
347  virtual bool GetAxisLineStyleFormat(unsigned char& orLineStyle) = 0;
348  virtual bool GetAxisLineColorFormat(RGBColor& orLineColor) = 0;
349 
350  virtual bool GetAxisMajorTickLineThicknessFormat(Int32& orLineThickness,Int32 iObjectID) = 0;
351  virtual bool GetAxisMajorTickLineStyleFormat(unsigned char& orLineStyle,Int32 iObjectID) = 0;
352  virtual bool GetAxisMajorTickLineColorFormat(RGBColor& orLineColor,Int32 iObjectID) = 0;
353 
354  virtual bool GetAxisMinorTickLineThicknessFormat(Int32& orLineThickness,Int32 iObjectID) = 0;
355  virtual bool GetAxisMinorTickLineStyleFormat(unsigned char& orLineStyle,Int32 iObjectID) = 0;
356  virtual bool GetAxisMinorTickLineColorFormat(RGBColor& orLineColor,Int32 iObjectID) = 0;
357 
358  virtual bool GetReferenceLineFontColor(RGBColor& orFontColor,Int32 iSeriesId,Int32 iGroupId) = 0;
359  virtual bool GetReferenceLineFontSize(Int32& orFontSize,Int32 iSeriesId,Int32 iGroupId) = 0;
360  virtual bool GetReferenceLineFontStyle(unsigned char& orFontStyle,Int32 iSeriesId,Int32 iGroupId) = 0;
361  virtual bool GetReferenceLineFontName(MBase::String& orFontName,Int32 iSeriesId,Int32 iGroupId) = 0;
362 
363  virtual bool GetDataLableFontAlignment(unsigned char& orFontAlignment) = 0;
364  virtual bool GetDataLableFontSize(Int32& orFontSize) = 0;
365  virtual bool GetDataLableFontStyle(unsigned char& orFontStyle) = 0;
366  virtual bool GetDataLableFontName(MBase::String& orFontName) = 0;
367  virtual bool GetDataLableFontBox(unsigned char& orFontBox) = 0;
368  virtual bool GetDataLableFontAlpha(unsigned char& orFontAlpha) = 0;
369  virtual bool GetDataLabelFontColor(RGBColor& orFontColor) = 0;
370 
371  virtual bool GetAxisLabelFontSize(Int32& orFontSize ,Int32 iWhichAxis) = 0;
372  virtual bool GetAxisLabelFontName(MBase::String& orFontName ,Int32 iWhichAxis) = 0;
373  virtual bool GetAxisLabelFontStyle(unsigned char& orFontStyle ,Int32 iWhichAxis) = 0;
374  virtual bool GetAxisLabelFontRotation(unsigned char& orFontRotation ,Int32 iWhichAxis) = 0;
375  virtual bool GetAxisLabelFontColor(RGBColor& orFontColor ,Int32 iWhichAxis) = 0;
376 
377  virtual bool GetTextAsShapeFontSize(Int32& orFontSize,Int32 iSeriesId ,Int32 iGroupId) = 0;
378  virtual bool GetTextAsShapeFontColor(RGBColor& orFontColor,Int32 iSeriesId ,Int32 iGroupId) = 0;
379  virtual bool GetTextAsShapeFontName(MBase::String& orFontName,Int32 iSeriesId ,Int32 iGroupId) = 0;
380  virtual bool GetTextAsShapeFontStyle(unsigned char& orFontStyle,Int32 iSeriesId ,Int32 iGroupId) = 0;
381  virtual bool GetTextAsShapeAlignment(unsigned char& orFontAlignment,Int32 iSeriesId ,Int32 iGroupId) = 0;
382 
383  //@param iObjectId :DSSGraphUserLine1 - 4
384  virtual bool GetAxisOriginValue(double& orAxisOriginValue , Int32 iObjectId) = 0;
385 #ifndef _VE_CE
386  //============================================================================
387  //AE Integration
396  virtual HRESULT InitFromTemplateAndGrid(DSSTemplate* ipTemplate, DSSRWGridIterator* ipGridIterator, bool iIsParseTotals) = 0;
397 
407  virtual HRESULT InitFromTemplateSlice(DSSTemplate* ipTemplate, DSSRWGridIterator* ipGridIterator, Int32 iSliceID, bool iIsCacheData = false, bool iIncludeSubtotal = true) = 0;
408 #endif
409 
414  virtual bool IsHeaderTreeEmpty(bool iIsForGroup) = 0;
415 
419  virtual void Delete() = 0;
420 
421  //Populate one tree for client use with generic data input.
422  //This method should be used with extrem carefulness
423  /*We use this method to boot up Row tree and Column tree
424  */
425  virtual bool PopulateOneTree(std::wifstream& iFileStream, bool iIsForRow = true) = 0;
426  virtual void ConvertLocalAEIndexToGlobal(int& ioRowIndex, int& ioColIndex) = 0;
427 
430  // //
431  // //
432  // //
433  // Warning : this section is obsolete. //
434  // //
435  // //
436  // //
438 
439  public://[token manager]
440 
441  //Drill Support with preassumption that
442  //In Colmun tree, we put metric at the top level
443  virtual bool PopulateTokenManager(bool iEnableToken) = 0;
444  virtual bool GetTokenFlag() = 0;
445  virtual TokenManager* GetTokenManager() = 0;
446  virtual bool PopulateTotalValues(std::wifstream& iFileStream) = 0;
447  virtual bool Refresh() = 0;
448  virtual bool GetRowCount(Int32& orCount) = 0; //to delete
449  //virtual bool GetMetricsCount(Int32& orCount) = 0; //to delete
450  virtual bool GetRowLabel(Int32 iIndex, MBase::String& orLabel) = 0; //to delete
451  virtual bool GetMetricsLabel(Int32 iIndex, MBase::String& orLabel) = 0; //to delete
452 
454 
459  virtual MetricUnitInfo* GetMetricInfo() = 0;
460 
465  virtual bool IsMetricBySeries() = 0;
466 
473  virtual bool IsSubtotalAt(Int32 iRowIndex, Int32 iColIndex, bool& orIsTotal) = 0;
474 
478  virtual bool IsEmpty() = 0;
479 
480  //MSIMetric Selection Support
481  virtual Int32 GetMetricsCount(bool iIsAtTopLevel = false) = 0;//note, this is not the same as the TokenManager Version
482 
483  //Get Label Path for Graph Drill Path
484  virtual std::string GetLabelInDrillPath(bool iIsByRow, Int32 iIndex, const std::string& irCandiate, bool iIncludeAllForms = false) = 0;
485 public:
486  //Refactory into ligher component
487  virtual bool IsHeaderEmpty(bool iIsForRow = true) = 0;
488  virtual bool GetAvgValue(double& orValue, Int32 iIndex, Int32 iColumnOffset = 0, bool iIsForSeries = true, bool iIsForSlice = false) = 0;
489  virtual void SetTreeInstance(DimTree* ipTree, bool iIsForRowTree) = 0;
490  virtual Int32 GetThresholdIndex(Int32 iRowIndex, Int32 iColIndex) = 0;
491  virtual Int32 GetMetricIndex(Int32 iRowIndex, Int32 iColIndex) = 0;
492  virtual Int32 GetMetricIndex(Int32 iGroupId, Int32 iSeriesId, Int32 iAngleIndex, Int32 iSliceIndex) = 0;
493  virtual Int32 GetAESliceId() = 0;
494  virtual Int32 GetAggregationResult(double& orValue, Int32 iIndex, bool iIsForSeries = true, AGG_TYPE iAggType = AGG_TYPE_AVG) = 0; //return valide data cell.
495 
496  //virtual Int32 GetUnitWidth(Int32 iIndex, bool iIsInRow) = 0;
497 
498  //[status check up]
505  virtual DATASET_STATUS GetStatus(bool iIsGraph, bool iIsDummyGridChart = false) = 0;
506 
513  virtual bool NextSliceToDisplay(bool iIsPrevious, bool iIsStaring = false) = 0;
514 
519  virtual Int32 CurrentSliceNumberToDisplay() = 0;
520 
525  virtual bool IsDisplaySliceInvalid() = 0;
526 
532  virtual void CurrentSlicePosition(Int32& orRowIndex, Int32& orColIndex) = 0;
533 
538  virtual void SetFormatManager(FormatManager* ipFormatManager) = 0;
539 
540 
541  virtual void SeriesGroupIndexToRowColumnIndex(Int32 iSeriesID, Int32 iGroupID, Int32& orRowIndex, Int32& orColumnIndex, Int32 iColumnOffset, Int32 iAngleId = -3, Int32 iSliceId = -3, bool iIsConsiderSubtotal = true) = 0;
542  virtual void GetRowAndColumnIndexForMinMaxMetrixIndex(bool iIsForMax, std::vector<Int32> iMetricIndex, Int32& orRowIndex, Int32& orColumnIndex) = 0;
543 
544 
545  virtual bool GetSeriesGroupIdsFromIndex(std::vector<std::pair<Int32, Int32> >& iorSGPairs, const std::vector<Int32>& irRowIndexSet, const std::vector<Int32>& irColIndexSet) = 0;
546 
547  virtual Int32 GetColorStyleIndex(Int32 iLocalIndex) = 0;
548  virtual Int32 GetColorStyleIndex(Int32 iSeriesID, Int32 iGroupID, Int32 iColumnOffset = 0, bool iIsConsiderSubtotal = true) = 0;
549  virtual std::string GetGMColorByKey(std::vector<std::pair<Int32, Int32> > iColorByUnitsIndex, Int32 iSeriesID, Int32 iGroupID, Int32 iColumnOffset = 0, bool iIsConsiderSubtotal = true) = 0;
550  virtual int GetGMColorByIndex(Int32 iSeriesID, Int32 iGroupID, Int32 iAngleIndex = -3, Int32 iColumnOffset = 0) = 0;
551  virtual void getLineMarkerColorSetting(std::vector<int>& iSetting) = 0;
552  virtual MBase::String GetColorStyleLabel(Int32 iSeriesID, Int32 iGroupID, Int32 iColumnOffset, bool iIsConsiderSubtotal = true) = 0;
553  virtual MBase::String GetColorStyleLabel(Int32 iLocalColorIndex) = 0;
554  virtual Int32 GetColorStyleNumber() = 0;
555  virtual void SetColorSlices(std::vector<Int32>& irRowUnits, std::vector<Int32> irColumnUnits) = 0;
556 #ifndef _VE_CE
557  virtual void SetGlobalIterator(DSSRWGridIterator* ipIterator) = 0;
558 #endif
559  virtual void GetLabelCollection(Int32 iOrdinal, bool iIsForRow, std::vector<std::string>&orCollection) = 0;
560  virtual void GetDataTextLabel(Int32 iOrdinal, bool iIsForRow, MBase::String& orCollection, int iDepth) = 0;
561  virtual void GetBreakByLabel(Int32 iOrdinal, bool iIsForRow, MBase::String& orCollection) = 0; //< Data Label for GM, show Text
568  virtual void GetUnitNameCollection(bool iIsForRow, std::vector<std::string>&orCollection) = 0;
569  virtual void GetSliceLabel(Int32 iOrdinal, bool iIsForRow, MBase::String& orCollection) = 0; //< Data Label for GM in Pie chart, show Text
570  virtual void GetTextDataLabel(Int32 iGroupId, Int32 iSeriesId, std::string& orCollection, Int32 iAngleId = -3, Int32 iSliceId = -3) = 0;
571  virtual void GetTextDataLabel(Int32 iOrdinal, std::string& orCollection) = 0;
572 
573  // [GM Bullet Chart Suppor]
574  virtual void GetBandDivision(Int32 iGroupId, Int32 iVAIndex, std::vector<double>& iMetrics, std::vector<double>& iRatios) = 0;
575 
576  // [GM Partial Rendering Support]
577  virtual bool IsGroupOnScreen(Int32 iGroupId) = 0;
578  virtual bool IsSeriesOnScreen(Int32 iSeriesId) = 0;
579 
580  // [GM Combination Graph Support]
581  // This method to get the shape of each series, if not combination graph, all series have same shape!
582  virtual Int32 GetShapeBySeriesId(Int32 iSeriesId) = 0;
583 
584  // [GM Metric Level Data Label Support]
585  virtual bool IsDataLabelEnaled(Int32 iSeriesId, Int32 iGroupId, Int32 iAngleId = -3, Int32 iSliceId = -3) = 0;
586 
587  // [GM Dual Axis Graph Support]
588  // This method is used to get the series index belong to secondary value axis.
589  virtual std::set<int> GetSeriesInSecondaryAxis() = 0;
590 
591  // RSD Graph Value Axis data type check
592  virtual bool IsDataTimeType(Int32 iSeriesID, Int32 iGroupID) = 0;
593 
594  virtual HRESULT GetCumulatedData(Int32 iGroupId, Int32 iSeriesId, EnumGraphMatrixDataIndexType iDataIndexType, const double*& iorValue) = 0;
595  virtual std::pair<int, int> getOnScreenTextRange(bool isForGroup) = 0;
596  //[DataSet Reform]
597 #ifndef _VE_CE
598  virtual bool PopulateReformer(DSSRWGridIterator* ipGridIterator, DataSetReformInfo* ipReformInfo) = 0;
599 #endif
600  virtual bool IsReformed() = 0;
601  virtual Int32 GetMetricLabelCount() = 0;
602  virtual Int32 GetBalancedCount(bool iIsForGroup) = 0;
603  virtual const DataGroupInfo* GetDataGroupInfo() = 0;
604  virtual Int32 GetSeriesPieceStartIndex(Int32 iIndex) = 0;
605  virtual void SetDatagroupInfo(const DataGroupInfo& irInfo) = 0;
606  virtual const std::vector<int> GetAxisInfo() = 0;
607  virtual void SetAxisInfo(const std::vector<int> &irAxisInfo) = 0;
608  virtual void GetSeriesSplitVector(std::vector<Int32>& orVec) = 0;
609  virtual void SetSeriesSplitVector(const std::vector<Int32>& irVec) = 0;
610  virtual void SetPieGroupDetph(Int32 irDetph) = 0;
611  virtual void GetPieGroupDetph(Int32 &orDepth) = 0;
612  virtual void DumpDataSet(bool iIsNaive, bool isGlobalIterator = false) = 0;
613  virtual void SetGMDataSet(void *pDataSet = NULL) = 0;
614  virtual void PrepareIterator() = 0;
615  //virtual void DumpDataSet(bool iIsNaive, bool isGlobalIterator) = 0;
616  };
617 
618  // Export Function
620 
621 
622 
623 #ifndef _VE_CE
624  /*
625  * 3 input parameters stands for the template (to get the MSIHeader Info), the GridIterator(to get data cell),
626  * the flag to denote whether this dataset needs to get layered subtotal info (to support MiniGrid)
627  */
628  CHARTENGINE_API Dataset::Ptr CreateDataset(DSSTemplate* ipTemplate, DSSRWGridIterator* ipGridIterator, bool iIsParseTotals = true);
629 
630  CHARTENGINE_API Dataset::Ptr CreateDataset(DSSTemplate* ipTemplate, DSSRWGridIterator* ipGridIterator, bool iIsParseTotals, FormatManager* ipFormatManager);
631 
632  /*
633  * New workflow, make dataset a slice into AE datatable
634  *
635  */
636  CHARTENGINE_API Dataset::Ptr CreateDataset(DSSTemplate* ipTemplate, DSSRWGridIterator* ipGridIterator, Int32 iIntSliceID, bool iIsCacheData = false, bool iIncludeSubtotal = true);
637  CHARTENGINE_API Dataset::Ptr CreateDataset(DSSTemplate* ipTemplate, DSSRWGridIterator* ipGridIterator, Int32 iIntSliceID, DataSetReformInfo* ipReformInfo, bool iIsCacheData = false);
638  CHARTENGINE_API Dataset::Ptr CreateDatasetForGraphMatrix(void* iGraphMatrixDataSet);
639 #else
640  CHARTENGINE_API Dataset::Ptr CreateDatasetForGraphMatrix(MVE::GMCEDataProvider::Ptr iGraphMatrixDataSet);
641 #endif
642 };
643 
644 #endif
645 
virtual HRESULT GetDataSizeByPartSize(Int32 &orDataSizeByPartSize)=0
virtual std::vector< double > GetCoefficients(Int32 iSeriesId)=0
virtual void SetReverseSeries(bool iRevereSeries)=0
virtual HRESULT GetDataAdditionPartSize(Int32 &orDataAdditionPartSize)=0
virtual void GetDataTextLabel(Int32 iOrdinal, bool iIsForRow, MBase::String &orCollection, int iDepth)=0
virtual void SetPieGroupDetph(Int32 irDetph)=0
Definition: Dataset.h:128
EnumDataMode
Definition: Dataset.h:53
Int32 mDataGroup
Definition: Dataset.h:161
virtual bool GetDataLableFontAlpha(unsigned char &orFontAlpha)=0
virtual bool GetDataLableFontBox(unsigned char &orFontBox)=0
virtual const DataGroupInfo * GetDataGroupInfo()=0
virtual bool GetAxisOriginValue(double &orAxisOriginValue, Int32 iObjectId)=0
virtual HRESULT InitFromTemplateAndGrid(DSSTemplate *ipTemplate, DSSRWGridIterator *ipGridIterator, bool iIsParseTotals)=0
Int32 mDataAngleSetStartIndex
Definition: Dataset.h:146
virtual void GetUnitNameCollection(bool iIsForRow, std::vector< std::string > &orCollection)=0
virtual const std::vector< int > GetAxisInfo()=0
bool mIsDrawByRow
Definition: Dataset.h:155
Definition: Dataset.h:58
virtual Int32 FindCell(bool iFromSeries, Int32 Index, Int32 Target)=0
bool mIsDataNeeded
Definition: Dataset.h:169
virtual bool GetTextAsShapeAlignment(unsigned char &orFontAlignment, Int32 iSeriesId, Int32 iGroupId)=0
virtual void Delete()=0
virtual bool PopulateTokenManager(bool iEnableToken)=0
unsigned char DSSDataFlag
Definition: Dataset.h:45
virtual HRESULT SetRowAndColumn(Int32 iRowNumber, Int32 iColumnNumber)=0
virtual HRESULT GetGroupCount(Int32 &orGroupCount)=0
SHUFFLE_STATUS
Definition: Dataset.h:88
virtual bool GetAxisLabelFontColor(RGBColor &orFontColor, Int32 iWhichAxis)=0
virtual DATASET_STATUS GetStatus(bool iIsGraph, bool iIsDummyGridChart=false)=0
bool mIsMetricGrouped
Definition: Dataset.h:154
Definition: DatasetHelper.h:925
CHARTENGINE_API Dataset::Ptr CreateDataset(Int32 iDataType)
virtual bool GetGenericFillFormatGradient(GraphFillGradient &irFillGradient, Int32 iSeriesId, Int32 iGroupId, Int32 iSliceId=-3)=0
virtual HRESULT SetDataGroup(Int32 iDataGroup, bool iIgnoreForNoSeriesOrGroup=true)=0
virtual bool IsHeaderEmpty(bool iIsForRow=true)=0
virtual void SetColorSlices(std::vector< Int32 > &irRowUnits, std::vector< Int32 > irColumnUnits)=0
Definition: Dataset.h:74
Definition: Dataset.h:93
virtual bool IsSubtotalAt(Int32 iRowIndex, Int32 iColIndex, bool &orIsTotal)=0
Definition: Dataset.h:80
virtual bool GetAxisMinorTickLineColorFormat(RGBColor &orLineColor, Int32 iObjectID)=0
virtual bool GetGenericLineColor(RGBColor &orLineColor, Int32 iSeriesId, Int32 iGroupId, Int32 iAngleId=-3, Int32 iSliceId=-3)=0
virtual Int32 GetMetricIndex(Int32 iRowIndex, Int32 iColIndex)=0
virtual bool GetTextAsShapeFontName(MBase::String &orFontName, Int32 iSeriesId, Int32 iGroupId)=0
virtual bool PopulateOneTree(std::wifstream &iFileStream, bool iIsForRow=true)=0
virtual void SetFormatManager(FormatManager *ipFormatManager)=0
virtual bool GetSliceFlag()=0
virtual Int32 CurrentSliceNumberToDisplay()=0
virtual bool GetTextAsShapeFontSize(Int32 &orFontSize, Int32 iSeriesId, Int32 iGroupId)=0
virtual bool Refresh()=0
virtual std::pair< int, int > getOnScreenTextRange(bool isForGroup)=0
virtual void GetTextDataLabel(Int32 iGroupId, Int32 iSeriesId, std::string &orCollection, Int32 iAngleId=-3, Int32 iSliceId=-3)=0
virtual HRESULT InitFromTemplateSlice(DSSTemplate *ipTemplate, DSSRWGridIterator *ipGridIterator, Int32 iSliceID, bool iIsCacheData=false, bool iIncludeSubtotal=true)=0
Definition: Dataset.h:90
virtual bool NextSliceToDisplay(bool iIsPrevious, bool iIsStaring=false)=0
virtual bool GetAxisMajorTickLineColorFormat(RGBColor &orLineColor, Int32 iObjectID)=0
virtual std::vector< double > GetRefLineValues(Int32 iSeriesId)=0
Definition: Dataset.h:92
virtual bool GetSeriesByColumn() const =0
virtual Int32 GetBalancedCount(bool iIsForGroup)=0
This struct is from ChartCtrl.h.
Definition: NumberObject.h:38
virtual void GetRefLineLable(Int32 iSeriesId, Int32 iRefLineIndex, std::string &iText, bool &orIsShowValue, double &orValue)=0
Definition: Dataset.h:65
Definition: Dataset.h:110
virtual bool GetAxisLabelFontRotation(unsigned char &orFontRotation, Int32 iWhichAxis)=0
virtual HRESULT GetSeriesCount(Int32 &orSeriesCount)=0
virtual void GetSubTotalGlobalRowAndColumnIndex(Int32 iGroupId, const std::vector< Int32 > &iPickedIndexSet, Int32 iColumnOffset, Int32 &iorRowOrdinal, Int32 &iorColOrdinal)=0
Definition: DSSTemplateUnit.h:19
long HRESULT
Definition: FragmentedString.h:20
virtual bool GetReferenceLineColor(RGBColor &orLineColor, Int32 mSeriesId, Int32 iGroupId)=0
std::vector< Int32 > mAdditionalMetricIndexSet
Definition: Dataset.h:165
virtual bool GetTextAsShapeFontColor(RGBColor &orFontColor, Int32 iSeriesId, Int32 iGroupId)=0
Definition: Dataset.h:100
virtual void SetSeriesSplitVector(const std::vector< Int32 > &irVec)=0
#define CHARTENGINE_API
Definition: Dataset.h:22
virtual void SetDatagroupInfo(const DataGroupInfo &irInfo)=0
virtual void getLineMarkerColorSetting(std::vector< int > &iSetting)=0
virtual bool GetReverseGroup()=0
virtual bool GetReferenceLineFontSize(Int32 &orFontSize, Int32 iSeriesId, Int32 iGroupId)=0
virtual void GetBreakByLabel(Int32 iOrdinal, bool iIsForRow, MBase::String &orCollection)=0
virtual bool IsDataTimeType(Int32 iSeriesID, Int32 iGroupID)=0
Definition: Dataset.h:66
Definition: Dataset.h:127
bool mIsNeedToCombineCol
Definition: Dataset.h:178
Definition: DSSRWGridIterator.h:68
Definition: Dataset.h:111
Int32 Index
Definition: Matrix.H:3
virtual TokenManager * GetTokenManager()=0
virtual bool GetAvgValue(double &orValue, Int32 iIndex, Int32 iColumnOffset=0, bool iIsForSeries=true, bool iIsForSlice=false)=0
virtual HRESULT GetGMPieMaxMin(double &orMax, double &orMin, Int32 iColumnOffset, DATA_RETRIEVAL_TYPE iType=DRT_NORMAL)=0
virtual HRESULT GetValueAxisNumberFormat(ChartAdvFormat &orFormat, bool iConsiderThresholds=true, Int32 iStartIndex=0, Int32 iStep=0)=0
virtual HRESULT GetPieAngleCount(Int32 iGroupId, Int32 iSeriesId, Int32 &orAngleCount)=0
Definition: Dataset.h:138
Definition: DSSTemplate.h:29
Definition: Dataset.h:83
Definition: Dataset.h:130
std::vector< Int32 > mDataMetricIndexSet
Definition: Dataset.h:164
virtual bool GetGenericLineThickness(Int32 &orLineThickness, Int32 iSeriesId, Int32 iGroupId, Int32 iAngleId=-3, Int32 iSliceId=-3)=0
AGG_TYPE
Definition: Dataset.h:61
virtual bool GetTextAsShapeFontStyle(unsigned char &orFontStyle, Int32 iSeriesId, Int32 iGroupId)=0
SLICE_TYPE
Definition: Dataset.h:77
virtual SHUFFLE_STATUS GetShuffledStatus()=0
Definition: Dataset.h:142
virtual bool IsGroupOnScreen(Int32 iGroupId)=0
Definition: Dataset.h:198
Definition: Dataset.h:84
virtual bool IsMetricBySeries()=0
virtual HRESULT SetData(Int32 iRow, Int32 iCol, double iValue)=0
virtual bool GetAxisLabelFontSize(Int32 &orFontSize, Int32 iWhichAxis)=0
virtual HRESULT GetCumulatedData(Int32 iGroupId, Int32 iSeriesId, EnumGraphMatrixDataIndexType iDataIndexType, const double *&iorValue)=0
virtual bool PopulateOneSlice(Int32 iBeinSeries, Int32 iEndSeries, Int32 iBeginGroup, Int32 iEndGroup)=0
get the index for start & end group of one slice, valid for slice with continous group.
virtual HRESULT SetRowLabel(Int32 iRow, const wchar_t *ipRowLabel)=0
Int32 mColBreakDepth
Definition: Dataset.h:182
virtual bool GetTrendLineThickness(Int32 &orLineThickness, Int32 iSeriesId, Int32 iGroupId)=0
bool mHasGroupbyMetrics
Definition: Dataset.h:168
virtual HRESULT GetPieSliceCount(Int32 iGroupId, Int32 iSeriesId, Int32 iAngleId, Int32 &orSliceCount)=0
virtual bool GetAxisMinorTickLineStyleFormat(unsigned char &orLineStyle, Int32 iObjectID)=0
Definition: Dataset.h:56
Definition: Dataset.h:57
virtual bool GetGenericFillFormatColor(RGBColor &orColor, Int32 iSeriesId, Int32 iGroupId, Int32 iAngleId=-3, Int32 iSliceId=-3)=0
virtual bool GetDataLableFontAlignment(unsigned char &orFontAlignment)=0
virtual bool GetTextValue(Int32 iSeriesId, Int32 iGroupId, double &orDataValue)=0
virtual std::vector< double > GetTrendLineValuesWithForecast(Int32 iSeriesId)=0
virtual HRESULT GetTotalData(Int32 iIndex, bool iIsGroupTotal, Int32 iSpanStartIndex, Int32 iSpanEndIndex, double &iorValue, Int32 iColumnOffset, bool iIsUseAbsValue=false, bool iIsForSlice=true)=0
virtual Int32 GetMetricLabelCount()=0
virtual float GetMemoryUsageEstimation()=0
CHARTENGINE_API Dataset::Ptr CreateDatasetForGraphMatrix(void *iGraphMatrixDataSet)
DATASET_STATUS
Definition: Dataset.h:97
Int32 mDataAdditionStartIndex
Definition: Dataset.h:145
virtual bool GetAxisLabelFontName(MBase::String &orFontName, Int32 iWhichAxis)=0
virtual bool IsExpomentialBaseNearOne(Int32 iSeriesId)=0
virtual bool GetMetricsLabel(Int32 iIndex, MBase::String &orLabel)=0
virtual bool GetReplacedText(Int32 iSeriesId, Int32 iGroupId, Int32 iColumnOffset, MBase::String &orReplacedText, Int32 &orColor)=0
virtual bool GetTrendLineColor(RGBColor &orLineColor, Int32 iSeriesId, Int32 iGroupId)=0
#define Int32
Definition: BasicTypes.h:20
THRESHOLD_FILL_STYLE
Definition: Dataset.h:105
Definition: Dataset.h:137
bool mIsNeedToCombineSlice
Definition: Dataset.h:179
virtual void SetGMDataSet(void *pDataSet=NULL)=0
virtual DimTree * GetRowTree()=0
Get the number of dim node in one dim.
Definition: Dataset.h:117
virtual HRESULT GetPieSubtotal(std::map< std::pair< Int32, Int32 >, double > iPieSubtotalMap, Int32 iGroupId, const std::vector< Int32 > &iPickedIndexSet, double &iorValue, Int32 iColumnOffset, bool iIsUseAbsValue=false, bool iIsForSlice=true)=0
bool mIsShuffled
Definition: Dataset.h:156
Int32 mColorIndex
Definition: Dataset.h:160
virtual bool IsReformed()=0
virtual bool GetAxisLineThicknessFormat(Int32 &orLineThickness)=0
virtual bool GetRowCount(Int32 &orCount)=0
virtual bool IsDisplaySliceInvalid()=0
virtual bool GetSliceGroupRange(Int32 &iBeginGroup, Int32 &iEndGroup)=0
bool mIsNeedToBreakCol
Definition: Dataset.h:177
Definition: Dataset.h:91
virtual HRESULT GetData(Int32 iSeriesID, Int32 iGroupID, const double *&iorValue, Int32 iColumnOffset=0, bool iIsForSlice=true)=0
virtual bool GetSeriesGroupIdsFromIndex(std::vector< std::pair< Int32, Int32 > > &iorSGPairs, const std::vector< Int32 > &irRowIndexSet, const std::vector< Int32 > &irColIndexSet)=0
bool mIsForPieChart
Definition: Dataset.h:176
virtual bool GetGenericFillFormatAlpha(unsigned char &orAlpha, Int32 iSeriesId, Int32 iGroupId, Int32 iAngleId=-3, Int32 iSliceId=-3)=0
virtual bool GetAxisLineColorFormat(RGBColor &orLineColor)=0
virtual std::string GetLabelInDrillPath(bool iIsByRow, Int32 iIndex, const std::string &irCandiate, bool iIncludeAllForms=false)=0
Int32 mGroupNumForCombine
Definition: Dataset.h:180
virtual bool GetReferenceLineThickness(Int32 &orLineThickness, Int32 iSeriesId, Int32 iGroupId)=0
virtual bool GetDataLableFontName(MBase::String &orFontName)=0
Int32 mTotalSize
Definition: Dataset.h:147
Definition: Dataset.h:81
virtual void PrepareIterator()=0
virtual HRESULT GetPrimaryData(Int32 iSeriesID, Int32 iGroupID, const double *&iorValue, Int32 iPrimaryIndex=0, bool iIsForColor=false, bool iIsForSlice=true, int iAngleIndex=0, int iSliceIndex=0)=0
Definition: Dataset.h:131
virtual MBase::String GetColorStyleLabel(Int32 iSeriesID, Int32 iGroupID, Int32 iColumnOffset, bool iIsConsiderSubtotal=true)=0
virtual bool GetReferenceLineFontName(MBase::String &orFontName, Int32 iSeriesId, Int32 iGroupId)=0
Dataset * Ptr
Definition: Dataset.h:202
Definition: Dataset.h:119
virtual bool GetTrendLineStyle(unsigned char &orLineStyle, Int32 iSeriesId, Int32 iGroupId)=0
virtual void GetLabelCollection(Int32 iOrdinal, bool iIsForRow, std::vector< std::string > &orCollection)=0
virtual bool GetGenericFillFormatType(unsigned char &orFillType, Int32 iSeriesId, Int32 iGroupId, Int32 iAngleId=-3, Int32 iSliceId=-3)=0
virtual std::vector< double > GetRefLineValuesForBubble(Int32 iIndex, Int32 iAxisIndex)=0
Definition: Dataset.h:67
Int32 mBalancedGroupCount
Definition: Dataset.h:162
virtual Int32 GetActiveSliceIndex()=0
virtual void GetBandDivision(Int32 iGroupId, Int32 iVAIndex, std::vector< double > &iMetrics, std::vector< double > &iRatios)=0
Definition: Dataset.h:132
Definition: Dataset.h:116
Definition: DatasetHelper.h:608
virtual MBase::String GetTemplateUnitName(Int32 iDimLayer, bool iIsInRowTree=false, bool iUseAlias=false)=0
virtual bool GetReferenceLineStyle(unsigned char &orLineStyle, Int32 iSeriesId, Int32 iGroupId)=0
virtual bool IsEmpty()=0
virtual Int32 GetMetricsCount(bool iIsAtTopLevel=false)=0
virtual void SetForHistogram(bool iIsForHistogram)=0
virtual bool GetDataLabelFontColor(RGBColor &orFontColor)=0
virtual MetricUnitInfo * GetMetricInfo()=0
Definition: Dataset.h:73
std::basic_string< WCHAR, std::char_traits< WCHAR >, Allocator< WCHAR > > String
Definition: BaseString.h:26
virtual void SetSeriesByColumn(bool iSeriesByColumn)=0
virtual HRESULT GetGMPieSubtotalMaxMin(std::map< std::pair< Int32, Int32 >, double > iPieSubtotalMap, double &orMax, double &orMin, Int32 iColumnOffset, DATA_RETRIEVAL_TYPE iType=DRT_NORMAL)=0
virtual HRESULT SetColumnLabel(Int32 iColumn, const wchar_t *ipColumnLabel)=0
virtual HRESULT GetThresholdFillColor(Int32 iSeriesId, Int32 iGroupId, CComVariant *opValue)=0
Definition: Dataset.h:63
Definition: ABLPlot.h:21
virtual Int32 GetSeriesPieceStartIndex(Int32 iIndex)=0
virtual bool GetAxisOriginLineThickness(Int32 &orLineThickness, Int32 iObjectID)=0
virtual HRESULT GetToolTipDataString(Int32 iSeriesID, Int32 iGroupID, MBase::String &orDataString, Int32 iOffset)=0
Int32 mSliceNumForCombine
Definition: Dataset.h:181
virtual bool IsSeriesOnScreen(Int32 iSeriesId)=0
virtual bool IsDataLabelEnaled(Int32 iSeriesId, Int32 iGroupId, Int32 iAngleId=-3, Int32 iSliceId=-3)=0
Definition: Dataset.h:79
virtual bool GetOneSliceRange(Int32 &iBeinSeries, Int32 &iEndSeries, Int32 &iBeginGroup, Int32 &iEndGroup)=0
assume we are dealing with the simplest case
virtual HRESULT GetPieSliceData(Int32 iGroupId, Int32 iSeriesId, Int32 iAngleId, Int32 iSliceId, const double *&iorValue, Int32 iColumnOffset=-1)=0
virtual HRESULT GetSeriesLabel(Int32 iSeriesID, MBase::String &orSeriesLabel, bool iSubstitute=true, Int32 iColumnOffset=0, bool iIsForSlice=true, LABEL_LEVEL_OPTION iOption=LLO_NORMAL, bool iIsForEmptyAxisWithTemplateMetrc=false)=0
virtual bool IsHeaderTreeEmpty(bool iIsForGroup)=0
virtual HRESULT GetPeakValuesAcrossSeries(double &orMax, double &orMin, const std::vector< Int32 > &irSereisSet, Int32 iColumnOffset=0)=0
virtual Int32 GetTreeWidth(Int32 iDimLayer, bool iIsInRowTree, bool iIsActualSize=false, bool iIsSqueezeHCG=true)=0
virtual bool SetActiveSliceIndex(Int32 iIndex=0)=0
virtual Int32 GetAggregationResult(double &orValue, Int32 iIndex, bool iIsForSeries=true, AGG_TYPE iAggType=AGG_TYPE_AVG)=0
std::vector< Int32 > mShuffledIndexSet
Definition: Dataset.h:166
virtual void EnableSlices(bool iUseSlice=true)=0
virtual bool GetAxisOriginLineColor(RGBColor &orLineColor, Int32 iObjectID)=0
virtual int GetGMColorByIndex(Int32 iSeriesID, Int32 iGroupID, Int32 iAngleIndex=-3, Int32 iColumnOffset=0)=0
Int32 mDataPartEndIndex
Definition: Dataset.h:144
virtual void ConvertLocalAEIndexToGlobal(int &ioRowIndex, int &ioColIndex)=0
virtual Int32 GetAESliceId()=0
virtual Int32 GetThresholdIndex(Int32 iRowIndex, Int32 iColIndex)=0
virtual bool GetReferenceLineFontColor(RGBColor &orFontColor, Int32 iSeriesId, Int32 iGroupId)=0
Definition: Dataset.h:71
virtual void GetPieGroupDetph(Int32 &orDepth)=0
keep gradient options.
Definition: FormatFill.h:79
virtual void CurrentSlicePosition(Int32 &orRowIndex, Int32 &orColIndex)=0
virtual std::string GetGMColorByKey(std::vector< std::pair< Int32, Int32 > > iColorByUnitsIndex, Int32 iSeriesID, Int32 iGroupID, Int32 iColumnOffset=0, bool iIsConsiderSubtotal=true)=0
EnumGraphMatrixPiePlotType
Definition: Dataset.h:135
Definition: DatasetHelper.h:279
virtual bool PopulateTotalValues(std::wifstream &iFileStream)=0
Definition: Dataset.h:72
virtual DimTree * GetColTree()=0
virtual Int32 GetColorStyleNumber()=0
bool mHasConsolidatedMetrics
Definition: Dataset.h:157
virtual bool IsSliced()=0
virtual std::set< int > GetSeriesInSecondaryAxis()=0
virtual void GetSeriesSplitVector(std::vector< Int32 > &orVec)=0
Definition: Msi_ccomvariant.h:24
virtual bool GetAxisLabelFontStyle(unsigned char &orFontStyle, Int32 iWhichAxis)=0
virtual void DumpDataSet(bool iIsNaive, bool isGlobalIterator=false)=0
LABEL_LEVEL_OPTION
Definition: Dataset.h:114
virtual void SetGlobalIterator(DSSRWGridIterator *ipIterator)=0
virtual HRESULT GetGridDataFormat(ChartAdvFormat &orFormat, Int32 iSeriesId, Int32 iGroupId, Int32 iColumnOffset, Int32 iAngleId=-3, Int32 iSliceId=-3)=0
virtual bool GetAxisMajorTickLineStyleFormat(unsigned char &orLineStyle, Int32 iObjectID)=0
Definition: Dataset.h:64
Definition: Dataset.h:129
virtual void SetAxisInfo(const std::vector< int > &irAxisInfo)=0
virtual bool GetAxisLineStyleFormat(unsigned char &orLineStyle)=0
Definition: Dataset.h:109
virtual bool GetAxisOriginLineStyle(unsigned char &orLineStyle, Int32 iObjectID)=0
Definition: Dataset.h:99
Definition: Dataset.h:82
virtual void SetTreeInstance(DimTree *ipTree, bool iIsForRowTree)=0
virtual bool PopulateReformer(DSSRWGridIterator *ipGridIterator, DataSetReformInfo *ipReformInfo)=0
virtual bool ShuffleIndex(bool iIsOnRow, const std::vector< Int32 > &iShuffledIndexList)=0
virtual Int32 GetColorStyleIndex(Int32 iLocalIndex)=0
Definition: Dataset.h:108
Definition: DatasetHelper.h:490
virtual void GetSliceLabel(Int32 iOrdinal, bool iIsForRow, MBase::String &orCollection)=0
virtual void GetRowAndColumnIndexForMinMaxMetrixIndex(bool iIsForMax, std::vector< Int32 > iMetricIndex, Int32 &orRowIndex, Int32 &orColumnIndex)=0
virtual bool AdjustGroupRange(Int32 iOffset)=0
Definition: Dataset.h:101
virtual HRESULT GetDataPositionPartSize(Int32 &orDataPositionPartSize)=0
virtual bool GetReferenceLineFontStyle(unsigned char &orFontStyle, Int32 iSeriesId, Int32 iGroupId)=0
Definition: RGBColor.h:21
virtual Int32 GetDataGroup()=0
virtual void SetReverseGroup(bool iReverseGroup)=0
Definition: Dataset.h:118
virtual Int32 GetShapeBySeriesId(Int32 iSeriesId)=0
virtual bool GetGenericLineStyle(unsigned char &orLineStyle, Int32 iSeriesId, Int32 iGroupId, Int32 iAngleId=-3, Int32 iSliceId=-3)=0
Definition: Dataset.h:139
#define NULL
Definition: Null.h:10
virtual void GetGroupDimTree(DimTree *&iopDimTree)=0
virtual MBase::String GetTemplateUnitElementName(Int32 iDimLayer, Int32 iIndexInsideDim, bool iIsInRowTree=false, Int32 iFormIndex=0, MBase::String iSeperator=L" ")=0
virtual bool GetAxisMinorTickLineThicknessFormat(Int32 &orLineThickness, Int32 iObjectID)=0
virtual bool GetRowLabel(Int32 iIndex, MBase::String &orLabel)=0
Definition: Dataset.h:55
virtual bool GetDataLableFontSize(Int32 &orFontSize)=0
virtual bool GetDataLableFontStyle(unsigned char &orFontStyle)=0
Int32 mSizeIndex
Definition: Dataset.h:159
virtual bool GetAxisMajorTickLineThicknessFormat(Int32 &orLineThickness, Int32 iObjectID)=0
Int32 mGroupNumAfterBreak
Definition: Dataset.h:183
Definition: Dataset.h:85
Int32 mSelectedMetricNumber
Definition: Dataset.h:170
virtual void RestoreFromShuffle()=0
virtual void SeriesGroupIndexToRowColumnIndex(Int32 iSeriesID, Int32 iGroupID, Int32 &orRowIndex, Int32 &orColumnIndex, Int32 iColumnOffset, Int32 iAngleId=-3, Int32 iSliceId=-3, bool iIsConsiderSubtotal=true)=0
virtual THRESHOLD_FILL_STYLE GetCurrentTreshHoldFillType()=0
EnumGraphMatrixDataIndexType
Definition: Dataset.h:125
DATA_RETRIEVAL_TYPE
Definition: Dataset.h:70
Definition: Dataset.h:107
Definition: Dataset.h:152
virtual bool GetTokenFlag()=0
virtual HRESULT GetGroupLabel(Int32 iGroupID, MBase::String &orGroupLabel, bool iSubstitute=true, Int32 iColumnOffset=0, bool iIsForSlice=true, LABEL_LEVEL_OPTION iOption=LLO_NORMAL)=0
Definition: FormatManager.h:157