ICalculatedCubeExecutor.Select_

Синтаксис Fore

Select_(Coord: IMatrixCoord; [Value: Boolean = True);

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

@Select(Coord: Prognoz.Platform.Interop.Matrix.IMatrixCoord; Value: Boolean);

Параметры

Coord. Координата в матрице, которую необходимо отметить для дальнейшего расчета значения по ней.

Value. Значение, определяющее состояние отметки координаты. True - координата отмечена, False - не отмечена.

Описание

Метод Select_ осуществляет отметку указанной координаты в матрице, для дальнейшего вычисления значения по данной координате.

Пример Fore

Для выполнения примера, предполагается наличие вычисляемого куба с идентификатором "Calc_Cube". В кубе имеется два измерения.

Sub UserProc;
Var
    MB: IMetabase;
    Cube: ICalculatedCubeInstance;
    Exe: ICalculatedCubeExecutor;
    Mat: IMatrix;
    Coord: IMatrixCoord;
    Ite: IMatrixIterator;
Begin
    MB := MetabaseClass.Active;
    Cube := Mb.ItemById("Calc_Cube").Open(NullAs ICalculatedCubeInstance;
    Exe := Cube.CreateExecutor(Null);
    (Exe As ICubeInstanceDestinationExecutor).PrepareExecute(Null);
    Mat := Exe.Matrix;
    Ite := Mat.CreateIterator;
    //Определяем координату
    Coord := Mat.CreateCoord;
    Coord.Item(0) := 0;
    Coord.Item(1) := 1;
    Exe.Select_(Coord); //Выделяем элемент по координате
    //Определяем координату
    Coord := Mat.CreateCoord;
    Coord.Item(0) := 1;
    Coord.Item(1) := 1;
    Exe.Select_(Coord); //Выделяем элемент по координате
    Exe.EvaluateOnly := EvaluateOnlyType.Selected; //Вычислять только выделенные координаты
    Exe.Execute;
    Ite.Move(IteratorDirection.First);
    While Ite.Valid Do
        Debug.WriteLine(Ite.Value);
        Ite.Move(IteratorDirection.Next);
    End While;
End Sub UserProc;

После выполнения примера у куба будут вычислены только выделенные координаты. Рассчитанные значения будут выведены в окно консоли.

Пример Fore.NET

Для выполнения примера, предполагается наличие вычисляемого куба с идентификатором "Calc_Cube". В кубе имеется два измерения.

Public Shared Sub Main(Params: StartParams);
Var
    MB: IMetabase;
    Cube: ICalculatedCubeInstance;
    Exe: ICalculatedCubeExecutor;
    Mat: IMatrix;
    Coord: IMatrixCoord;
    Ite: IMatrixIterator;
Begin
    MB := Params.Metabase;
    Cube := Mb.ItemById["Calc_Cube"].Open(NullAs ICalculatedCubeInstance;
    Exe := Cube.CreateExecutor(Null);
    (Exe As ICubeInstanceDestinationExecutor).PrepareExecute(Null);
    Mat := Exe.Matrix();
    Ite := Mat.CreateIterator();
    //Определяем координату
    Coord := Mat.CreateCoord();
    Coord.Item[0] := 0;
    Coord.Item[1] := 1;
    Exe.@Select(Coord, True); //Выделяем элемент по координате
    //Определяем координату
    Coord := Mat.CreateCoord();
    Coord.Item[0] := 1;
    Coord.Item[1] := 1;
    Exe.@Select(Coord, True); //Выделяем элемент по координате
    Exe.EvaluateOnly := EvaluateOnlyType.ceotSelected; //Вычислять только выделенные координаты
    Exe.Execute();
    Ite.Move(IteratorDirection.itdFirst);
    While Ite.Valid Do
        System.Diagnostics.Debug.WriteLine(Ite.Value);
        Ite.Move(IteratorDirection.itdNext);
    End While;
End Sub;

Указанная процедура является точкой входа для .NET-сборки. После выполнения примера у куба будут вычислены только выделенные координаты. Рассчитанные значения будут выведены в окно консоли.

См. также:

ICalculatedCubeExecutor