SaveCache(
DestKey: Integer;
ParamValues: IMetabaseObjectParamValues;
Selections: IDimSelectionSet;
Value: IMatrix);
SaveCache(
DestKey: UInteger;
ParamValues: Prognoz.Platform.Interop.Metabase.IMetabaseObjectParamValues;
Selections: Prognoz.Platform.Interop.Dimensions.IDimSelectionSet;
Value: Prognoz.Platform.Interop.Matrix.IMatrix);
DestKey. Ключ необходимого варианта отображения куба.
ParamValues. Параметры указанного объекта кэширования.
Selections. Коллекция отметок в указанном варианте отображения куба.
Value. Матрица значений куба.
Метод SaveCache выполняет сохранение кэша для заданного варианта отображения куба по заданным параметрам.
Для выполнения примера понадобится база данных с идентификатором «DB», а также куб с идентификатором «D_SEP».
Sub UserProc;
Var
MB: IMetabase;
MObj: IMetabaseObjectDescriptor;
CacheSaver: ICubeCacheSaver;
CrInfo: IMetabaseObjectCreateInfo;
CubIn: ICubeInstance;
Dest: ICubeInstanceDestination;
SelSet: IDimSelectionSet;
i: Integer;
Sel: IDimSelection;
Mat: IMatrix;
Begin
MB := MetabaseClass.Active;
MObj := MB.ItemById("D_SEP");
CrInfo := MB.CreateCreateInfo;
CrInfo.ClassId := MetabaseObjectClass.KE_CLASS_CUBE_CACHE_SAVER;
CrInfo.Parent := MObj;
CrInfo.Permanent := True;
CacheSaver := MB.CreateObject(CrInfo).Edit As ICubeCacheSaver;
CacheSaver.Database := MB.ItemById("DB").Bind As IDatabase;
(CacheSaver As IMetabaseObject).Save;
CubIn := MObj.Open(Null) As ICubeInstance;
Dest := CubIn.Destinations.DefaultDestination;
SelSet := Dest.CreateDimSelectionSet;
For Each Sel In SelSet Do
Sel.SelectAll;
End For;
Mat := Dest.Execute(SelSet);
CacheSaver.SaveCache(Dest.Key, Null, SelSet, Mat);
End Sub UserProc;
После выполнения примера будет в базе данных с идентификатором «DB» будет создано хранилище кэша для куба с идентификатором «D_SEP».
Для выполнения примера понадобится база данных с идентификатором «DB», а также куб с идентификатором «D_SEP».
Imports Prognoz.Platform.Interop.Metabase;
Imports Prognoz.Platform.Interop.Cubes;
Imports Prognoz.Platform.Interop.Db;
Imports Prognoz.Platform.Interop.Dimensions;
Imports Prognoz.Platform.Interop.Matrix;
Public Sub Main(Params: StartParams);
Var
MB: IMetabase;
MObj: IMetabaseObjectDescriptor;
CacheSaver: ICubeCacheSaver;
CrInfo: IMetabaseObjectCreateInfo;
CubIn: ICubeInstance;
Dest: ICubeInstanceDestination;
SelSet: IDimSelectionSet;
i: Integer;
Sel: IDimSelection;
Mat: IMatrix;
Begin
MB := Params.Metabase;
MObj := MB.ItemById["D_SEP"];
CrInfo := MB.CreateCreateInfo();
CrInfo.ClassId := MetabaseObjectClass.KE_CLASS_CUBE_CACHE_SAVER As Int32;
CrInfo.Parent := MObj;
CrInfo.Permanent := True;
CacheSaver := MB.CreateObject(CrInfo).Edit() As ICubeCacheSaver;
CacheSaver.Database := MB.ItemById["DB"].Bind() As IDatabase;
(CacheSaver As IMetabaseObject).Save();
CubIn := MObj.Open(Null) As ICubeInstance;
Dest := CubIn.Destinations.DefaultDestination;
SelSet := Dest.CreateDimSelectionSet();
For Each Sel In SelSet Do
Sel.SelectAll();
End For;
Mat := Dest.Execute(SelSet, UInteger.MaxValue);
CacheSaver.SaveCache(Dest.Key, Null, SelSet, Mat);
End Sub;
После выполнения примера будет в базе данных с идентификатором «DB» будет создано хранилище кэша для куба с идентификатором «D_SEP».
См. также: