ToLevel(Calendar: IDimInstance;
El: Integer;
Level: DimCalendarLevel): Integer;
ToLevel(Calendar: Prognoz.Platform.Interop.Dimensions.IDimInstance;
El: uinteger;
Level: Prognoz.Platform.Interop.Dimensions.DimCalendarLevel): uinteger;
Calendar. Данные календарного справочника, по которым выполняется расчет;
El. Индекс элемента, относительно которого выполняется расчет;
Level. Уровень календаря, на котором выполняется расчёт.
Метод ToLevel возвращает индекс элемента, соответствующего указанному элементу на заданном уровне.
Если уровень Level отсутствует в календарном справочнике, то метод вернет значение «-1».
Например, если календарный справочник содержит уровни годы, полугодия, кварталы и расчёт выполняется по уровню полугодия для:
элемента годовой динамики, то метод ToLevel возвращает элемент, соответствующий первому полугодию года;
элемента квартальной динамики, то метод ToLevel возвращает элемент, соответствующий полугодию, в которое входит квартал.
Пример Fore
Пример является функцией, используемой для расчёта отношения в стандартном кубе.
Для выполнения примера добавьте ссылки на системные сборки «Cubes», «Dimensions».
Public Function ToLevel(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;
Result := CalendarDimension.ToLevel(DimInst, t, DimCalendarLevel.Quarter);
Return Result;
End Function ToLevel;
Результат использования отношения в формуле вычисляемого факта: значение для всех элементов будет браться из соответствующих элементов квартальной динамики.
Пример является функцией, используемой для расчёта отношения в стандартном кубе.
Imports Prognoz.Platform.Interop.Cubes;
Imports Prognoz.Platform.Interop.Dimensions;
…
Public Shared Function ToLevel(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());
Result := calendDim.ToLevel(DimInst, el, DimCalendarLevel.dclQuarter) As integer;
Return Result;
End Function ToLevel;
Результат использования отношения в формуле вычисляемого факта: значение для всех элементов будет браться из соответствующих элементов квартальной динамики.
См. также: