ICubeExecuteSetupUnits.UnitOption

Синтаксис Fore

UnitOption: CubeExecuteSetupUnitOption;

Синтаксис Fore.NET

UnitOption: Prognoz.Platform.Interop.Cubes.CubeExecuteSetupUnitOption;

Описание

Свойство UnitOption определяет единицы измерения, в которых будет производиться расчет.

Пример Fore

Для выполнения примера предполагается наличие в репозитории базы данных временных рядов с идентификатором «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(NullAs 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.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(NullAs 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;

См. также:

ICubeExecuteSetupUnits