UnitOption: CubeExecuteSetupUnitOption;
UnitOption: Prognoz.Platform.Interop.Cubes.CubeExecuteSetupUnitOption;
Свойство UnitOption определяет единицы измерения, в которых будет производиться расчет.
Для выполнения примера предполагается наличие в репозитории базы данных временных рядов с идентификатором «FC_DEP». Единицы измерения являются необязательным атрибутом рядов.
Sub UserProc;
Var
Mb: IMetabase;
RubInst: IRubricatorInstance;
CubeInst: ICubeInstance;
Dest: ICubeInstanceDestination;
Sels: IDimSelectionSet;
Sel: IDimSelection;
ExecSetup: ICubeExecuteSetup;
DimSetup: ICubeExecuteDimSetup;
Executor: ICubeInstanceDestinationExecutor;
Result: IMatrix;
Begin
Mb := MetabaseClass.Active;
//Получение экземпляра БДВР
RubInst := Mb.ItemById("FC_DEP").Open(Null) As IRubricatorInstance;
CubeInst := RubInst As ICubeInstance;
Dest := CubeInst.Destinations.DefaultDestination;
//Создание отметки, по которой будет производиться вычисление
Sels := Dest.CreateDimSelectionSet;
For Each Sel In Sels Do
Sel.SelectAll;
End For;
//Добавление единиц измерения
Sels.Add(RubInst.UnitsDimension);
ExecSetup := Sels As ICubeExecuteSetup;
DimSetup := ExecSetup.FindByTag(CubeDimensionTag.Units);
//Указание единиц измерения, в которых будет производиться расчет
(DimSetup.Predefined As ICubeExecuteSetupUnits).UnitOption := CubeExecuteSetupUnitOption.Natural;
//Создание вычислителя
Executor := Dest.CreateExecutor;
Executor.WithoutScaling := True;
Executor.PrepareExecute(Sels);
Executor.PerformExecute;
//Получение результирующей матрицы
Result := Executor.Matrix;
End Sub UserProc;
При выполнении примера будет произведен расчет результирующей матрицы для рядов БДВР. Расчет будет производиться с использованием исходных данных. Результирующая матрица будет доступна в переменной Result.
Необходимые требования и результат выполнения примера Fore.NET совпадают с примером Fore.
Imports Prognoz.Platform.Interop.Cubes;
Imports Prognoz.Platform.Interop.Dimensions;
Imports Prognoz.Platform.Interop.Matrix;
Imports Prognoz.Platform.Interop.Metabase;
Public Shared Sub Main(Params: StartParams);
Var
Mb: IMetabase;
RubInst: IRubricatorInstance;
CubeInst: ICubeInstance;
Dest: ICubeInstanceDestination;
Sels: IDimSelectionSet;
Sel: IDimSelection;
ExecSetup: ICubeExecuteSetup;
DimSetup: ICubeExecuteDimSetup;
Executor: ICubeInstanceDestinationExecutor;
Result: IMatrix;
Begin
Mb := Params.Metabase;
//Получение экземпляра БДВР
RubInst := Mb.ItemById["FC_DEP"].Open(Null) As IRubricatorInstance;
CubeInst := RubInst As ICubeInstance;
Dest := CubeInst.Destinations.DefaultDestination;
//Создание отметки, по которой будет производиться вычисление
Sels := Dest.CreateDimSelectionSet();
For Each Sel In Sels Do
Sel.SelectAll();
End For;
//Добавление единиц измерения
Sels.Add(RubInst.UnitsDimension);
ExecSetup := Sels As ICubeExecuteSetup;
DimSetup := ExecSetup.FindByTag(CubeDimensionTag.cubdimtagUnits);
//Указание единиц измерения, в которых будет производиться расчет
(DimSetup.Predefined As ICubeExecuteSetupUnits).UnitOption := CubeExecuteSetupUnitOption.cubexesetunioptNormalized;
//Создание вычислителя
Executor := Dest.CreateExecutor();
Executor.WithoutScaling := True;
Executor.PrepareExecute(Sels);
Executor.PerformExecute(False);
//Получение результирующей матрицы
Result := Executor.Matrix;
End Sub;
См. также: