ICalendarDimensionClass.IifLevel

Синтаксис Fore

IifLevel(

Calendar: IDimInstance;

El: Integer;

Level: DimCalendarLevel;

El1: Integer;

El2: Integer): Integer;

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

IifLevel(

Calendar: Prognoz.Platform.Interop.Dimensions.IDimInstance;

El: uinteger;

Level: Prognoz.Platform.Interop.Dimensions.DimCalendarLevel;

El1: uinteger;

El2: uinteger): uinteger;

Параметры

Calendar. Данные календарного справочника, по которым выполняется расчет;

El. Индекс элемента, относительно которого выполняется расчет;

Level. Уровень, на принадлежность к которому проверяется элемент El;

El1. Индекс элемента, возвращаемый, если элемент El расположен на уровне Level;

El2. Индекс элемента, возвращаемый, если элемент El не расположен на уровне Level.

Описание

Метод IifLevel проверяет: принадлежит ли указанный элемент заданному уровню справочника.

Комментарии

Если элемент El принадлежит уровню Level, то метод возвращает индекс элемента El1, иначе - El2.

Пример Fore

Пример является функцией, используемой для расчёта отношения в стандартном кубе.

Для выполнения примера добавьте ссылки на системные сборки «Cubes», «Dimensions».

Function IifLevel(T: Variant): Integer;
Var
    Cube: ICubeInstance;
    CubeDest: ICubeInstanceDestination;
    DimInsts: ICubeInstanceDimensions;
    DimInst: IDimInstance;
    i: Integer;
    Result: Integer;
    el1: Integer;
Begin
    // Получаем текущий куб
    Cube := CubeClass.CurrentCube;
    CubeDest := Cube.Destinations.DefaultDestination;
    // Получаем календарное измерение
    DimInsts := CubeDest.Dimensions;
    For i := 0 To DimInsts.Count - 1 Do
        If (DimInsts.Item(i).Dimension Is ICalendarDimension) Then
            DimInst := DimInsts.Item(i);
        End If;
    End For;
    // Выполняем вычисления
    el1 := CalendarDimension.DownLevel(DimInst, t);
    Result := CalendarDimension.IifLevel(DimInst, t, DimCalendarLevel.Quarter, el1, t);
    // Возвращаем результат
    Return Result;
End Function IifLevel;

Результат использования отношения в формуле вычисляемого факта: значение для элементов квартальной динамики будет браться из соответствующих элементов годовой динамики.

Пример Fore.NET

Пример является функцией, используемой для расчёта отношения в стандартном кубе.

Imports Prognoz.Platform.Interop.Cubes;
Imports Prognoz.Platform.Interop.Dimensions;

Shared Function IifLevel(T: object): Integer;
Var
    cClass: CubeClassClass;
    Cube: ICubeInstance;
    CubeDest: ICubeInstanceDestination;
    DimInsts: ICubeInstanceDimensions;
    DimInst: IDimInstance;
    i: Integer;
    calendDim: CalendarDimension;
    el, el1: uinteger;
    Result: Integer;
Begin
    // Получаем текущий куб
    cClass := New CubeClassClass.Create();
    Cube := cClass.CurrentCube[Null];
    CubeDest := Cube.Destinations.DefaultDestination;
    // Получаем календарное измерение
    DimInsts := CubeDest.Dimensions;
    For i := 0 To DimInsts.Count - 1 Do
        If (DimInsts.Item[i].Dimension Is ICalendarDimension) Then
            DimInst := DimInsts.Item[i];
        End If;
    End For;
    // Выполняем вычисления
    calendDim := New CalendarDimension.Create();
    el := uinteger.Parse(t.ToString());
    el1 := calendDim.DownLevel(DimInst, el);
    Result := calendDim.IifLevel(DimInst, el, DimCalendarLevel.dclQuarter, el1, el) As integer;
    // Возвращаем результат
    Return Result;
End Function IifLevel;

Результат использования отношения в формуле вычисляемого факта: значение для элементов квартальной динамики будет браться из соответствующих элементов годовой динамики.

См. также:

ICalendarDimensionClass