Move(IndexFrom: Integer; IndexTo: Integer);
IndexFrom - dimension index that must be moved.
IndexTo - position index, in which dimension must be moved.
The Move method moves dimensions in the automatic cube list.
NOTE. When dimension are rearranged, the corresponding transformation is required, otherwise, data will be lost. See also: IAutoCubeTransform.
Executing the example requires that the repository contains an automatic cube with AUTO_CUBE identifier. There are more than one dimension in the cube.
Sub Main;
Var
MB: IMetabase;
MObj: IMetabaseObject;
AutoCub: IAutoCube;
Dims: IAutoCubeDimensions;
Dim: IAutoCubeDimension;
Transf: IAutoCubeTransform;
b: Boolean;
Begin
MB := MetabaseClass.Active;
MObj := MB.ItemById("AUTO_CUBE").Edit;
AutoCub := MObj As IAutoCube;
Dims := AutoCub.Dimensions;
Dims.Move(0, 1);
Transf := AutoCub.Transform;
Debug.WriteLine(Initial dimensions list);
For Each Dim In Transf.MapDimensions Do
Debug.WriteLine((Dim.Dimension As IMetabaseObject).Name)
End For;
Debug.WriteLine("Dimensions list after rearrangement");
For Each Dim In Transf.Dimensions Do
Debug.WriteLine((Dim.Dimension As IMetabaseObject).Name)
End For;
If Transf.GetChanged(b) Then
Transf.Execute;
End If;
MObj.Save;
End Sub Main;
After executing the example the first two dimensions are rearranged in the dimensions list of automatic cube. If changes have relations to dimensions with data, the corresponding cube data rearrangement will be applied.
See also: