CreateStorage([Options: CubeInstanceStorageOptions = 0]): ICubeInstanceStorage;
Options - параметр определяющий, режим сохранения данных в куб.
Метод CreateStorage создает объект, осуществляющий сохранение данных в куб.
Class CubeCallback: Object, ICubeCallback
Public Sub OnCallback(Argument: ICubeCallbackArgument);
Begin
Debug.WriteLine("Ошибка: " + Argument.Error.Message);
Debug.WriteLine("Идентификатор ошибки: " + Argument.Error.MessageID.ToString);
Debug.WriteLine("Источник: " + Argument.Error.Source);
Argument.IgnoreError := True;
End Sub OnCallback;
Public Function get_Argument: ICubeCallbackArgument;
Begin
Return Null;
End Function get_Argument;
End Class CubeCallback;
Sub Main;
Var
MB: IMetabase;
CubInst: ICubeInstance;
Des: ICubeInstanceDestination;
Sels: IDimSelectionSet;
Mat: IMatrix;
Coord: IMatrixCoord;
Sto: ICubeInstanceStorage;
i: Integer;
Begin
MB := MetabaseClass.Active;
CubInst := MB.ItemById("CUBE_1").Open(Null) As ICubeInstance;
Des := CubInst.Destinations.DefaultDestination;
Sels := Des.CreateDimSelectionSet;
For i := 0 To Sels.Count - 1 Do
Sels.Item(i).SelectElement(0, False);
End For;
Mat := Des.Execute(Sels);
Mat.ValueFlag := Mat.ValueFlag + 1;
Sels := Mat.Dimensions;
Coord := Mat.CreateCoord;
For i := 0 To Sels.Count - 1 Do
Coord.Item(i) := 0;
End For;
Mat.Item(Coord) := (Mat.Item(Coord) As Integer) + 1;
Sto := Des.CreateStorage(CubeInstanceStorageOptions.NoCheckDuplicates);
Sto.Callback := New CubeCallback.Create;
Sto.SaveMatrix(Mat, Mat.ValueFlag);
End Sub Main;
После выполнения примера будет получена матрица с данными из куба с идентификатором "CUBE_1". По некоторой координате будет изменено значение, после чего обновленная матрица сохраняется обратно в куб. При сохранении проверка на наличие дубликатов осуществляться не будет. Ошибки, которые могут возникнуть, будут обрабатываться в пользовательском классе "CubeCallback".
См. также: