ICalendarDimensionClass.NineMonths

Синтаксис Fore

NineMonths(Calendar: IDimInstance; El: Integer): Integer;

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

NineMonths(Calendar: Prognoz.Platform.Interop.Dimensions.IDimInstance; El: uinteger): uinteger;

Параметры

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

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

Описание

Метод NineMonths возвращает индекс элемента, соответствующий периоду «9 месяцев», в который входит указанный элемент.

Комментарии

Для корректного расчёта календарный справочник должен содержать уровень «9 месяцев». Если уровень «Месяцы» отсутствует, то метод генерирует исключительную ситуацию.

Например, если календарный справочник содержит уровни годы, 9 месяцев, дни и расчёт выполняется для:

Пример Fore

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

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

Function NineMonths(T: Variant): Integer;
Var
    Cube: ICubeInstance;
    CubeDest: ICubeInstanceDestination;
    DimInsts: ICubeInstanceDimensions;
    DimInst: IDimInstance;
    i: Integer;
    Result: 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;
    // Выполняем вычисления
    If CalendarDimension.Level(DimInst, t) = DimCalendarLevel.Year Then
        Result := CalendarDimension.NineMonths(DimInst, t);
    Else
        Result := -1;
    End If;
    // Возвращаем результат
    Return Result;
End Function NineMonths;

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

Пример Fore.NET

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

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

Public Shared Function NineMonths(T: object): Integer;
Var
    cClass: CubeClassClass;
    Cube: ICubeInstance;
    CubeDest: ICubeInstanceDestination;
    DimInsts: ICubeInstanceDimensions;
    DimInst: IDimInstance;
    i: Integer;
    calendDim: CalendarDimension;
    el: 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());
    If calendDim.Level(DimInst, el) = DimCalendarLevel.dclYear Then
        Result := calendDim.NineMonths(DimInst, el) As integer;
    Else
        Result := -1;
    End If;
    // Возвращаем результат
    Return Result;
End Function NineMonths;

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

См. также:

ICalendarDimensionClass