ICalendarDimension.OffsetDate

Синтаксис Fore

OffsetDate(Level: DimCalendarLevel): Integer;

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

OffsetDate[Level: Prognoz.Platform.Interop.Dimensions.DimCalendarLevel]: integer;

Параметры

Level. Уровень календаря.

Описание

Свойство OffsetDate определяет число дней, на которые будет смещена дата начала указанного уровня.

Комментарии

Смещение доступно для следующих уровней:

Если значение OffsetDate положительное, то смещение выполняется вперед, если отрицательное - назад. Наименование уровня календаря формируется с учетом смещения.

Если необходимо задать смещение от конца указанного периода, то установите значение ICalendarDimension.IsDateEnd в True.

Пример Fore

Для выполнения примера предполагается наличие календарного справочника с идентификатором «CALENDARSETUP», содержащего недельную динамику. Добавьте ссылки на системные сборки «Dimensions», «Metabase».

Sub UserProc;
Var
    mb: IMetabase;
    CalendarObj: IMetabaseObject;
    Calendar: ICalendarDimension;
Begin
    mb := MetabaseClass.Active;
    CalendarObj := mb.ItemById("CALENDARSETUP").Edit;
    Calendar := CalendarObj As ICalendarDimension;
    If Calendar.WeekLevel.RestDays = DayOfWeekSet.SaturdaySunday Then
        Calendar.OffsetDate(DimCalendarLevel.Week) := -2;
        Calendar.IsDateEnd(DimCalendarLevel.Week) := True;
    End If;
    Calendar.OffsetDate(DimCalendarLevel.Day) := 0;
    CalendarObj.Save;
End Sub UserProc;

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

Пример Fore.NET

Для выполнения примера предполагается наличие календарного справочника с идентификатором «CALENDARSETUP», содержащего недельную динамику.

Imports Prognoz.Platform.Interop.Dimensions;

Public Shared Sub Main(Params: StartParams);
Var
    mb: IMetabase;
    CalendarObj: IMetabaseObject;
    Calendar: ICalendarDimension;
Begin
    mb := Params.Metabase;
    CalendarObj := mb.ItemById["CALENDARSETUP"].Edit();
    Calendar := CalendarObj As ICalendarDimension;
    If Calendar.WeekLevel.RestDays = DayOfWeekSet.dowsSaturdaySunday Then
        Calendar.OffsetDate[DimCalendarLevel.dclWeek] := -2;
        Calendar.IsDateEnd[DimCalendarLevel.dclWeek] := True;
    End If;
    CalendarObj.Save();
End Sub;

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

См. также:

ICalendarDimension