ICalculatedCubeFormulas.Item

Синтаксис

Item(Index: Integer): ICalculatedCubeFormula;

Параметры

Index. Индекс формулы.

Описание

Свойство Item возвращает формулу, индекс которой передается посредством параметра Index.

Комментарии

По каждой координате всегда имеется минимум одна формула. Если в кубе установлено измерение, которое управляет выбором периода действия формулы, то формулы для различных периодов добавляются с помощью метода Add.

Пример Fore

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

Sub UserProc;
Var
    MB: IMetabase;
    CubeInst: ICalculatedCubeInstance;
    Coord, SourceCoord: ICalculatedCubeInstanceCoord;
    Formulas: ICalculatedCubeFormulas;
    Formula: ICalculatedCubeFormula;
Begin
    MB := MetabaseClass.Active;
    CubeInst := MB.ItemById("Calc_Cube").Open(NullAs ICalculatedCubeInstance;
    //Получение координаты в вычисляемом кубе
    Coord := CubeInst.CreateCoord;
    Coord.MatrixCoord.Item(0) := 0;
    Coord.MatrixCoord.Item(1) := 0;
    //Получение координаты из источника
    SourceCoord := CubeInst.CreateSourceCoord(CubeInst.Sources.Item(0));
    SourceCoord.MatrixCoord.Item(0) := 0;
    SourceCoord.MatrixCoord.Item(1) := 0;
    //Получение формул
    Formulas := CubeInst.Formula(Coord);
    Formula := Formulas.Item(0);
    Formula.Expression.AsString := SourceCoord.AsTerm + "*3.14";
    Formulas.Save;
    CubeInst.SaveFormulas;
End Sub UserProc;

При выполнении примера по указанной координате куба будет задана формула. В выражении формулы будет использоваться терм, ссылающийся на соответствующую координату в кубе-источнике.

Пример Fore.NET

Необходимые требования и результат выполнения примера Fore.NET совпадают с примером Fore.

Imports Prognoz.Platform.Interop.Cubes;
Imports Prognoz.Platform.Interop.Metabase;

Public Shared Sub Main(Params: StartParams);
Var
    MB: IMetabase;
    CubeInst: ICalculatedCubeInstance;
    Coord, SourceCoord: ICalculatedCubeInstanceCoord;
    Formulas: ICalculatedCubeFormulas;
    Formula: ICalculatedCubeFormula;
Begin
    MB := Params.Metabase;
    CubeInst := MB.ItemById["Calc_Cube"].Open(NullAs ICalculatedCubeInstance;
    //Получение координаты в вычисляемом кубе
    Coord := CubeInst.CreateCoord();
    Coord.MatrixCoord.Item[0] := 0;
    Coord.MatrixCoord.Item[1] := 0;
    //Получение координаты из источника
    SourceCoord := CubeInst.CreateSourceCoord(CubeInst.Sources.Item[0]);
    SourceCoord.MatrixCoord.Item[0] := 0;
    SourceCoord.MatrixCoord.Item[0] := 0;
    //Получение формул
    Formulas := CubeInst.Formula[Coord];
    Formula := Formulas.Item[0];
    Formula.Expression.AsString := SourceCoord.AsTerm + "*3.14";
    Formulas.Save();
    CubeInst.SaveFormulas();
End Sub;

См. также:

ICalculatedCubeFormulas