IsDateEnd(Level:DimCalendarLevel): Boolean;
IsDateEnd[Level: Prognoz.Platform.Interop.Dimensions.DimCalendarLevel]: boolean;
Level. Уровень календаря.
Свойство IsDateEnd определяет, заменять ли дату начала периода датой конца периода для указанного уровня календаря.
Возможные значения IsDateEnd:
True. Датой начала периода является дата конца периода. Смещение выполняется от конца периода;
False. Дата начала периода не изменяется. Смещение выполняется от начала периода.
Смещение доступно для следующих уровней:
годы. Level = DimCalendarLevel.Year;
кварталы. Level = DimCalendarLevel.Quarter;
месяцы. Level = DimCalendarLevel.Month;
недели. Level = DimCalendarLevel.Week.
Для указания количества дней, на которое будет выполнено смещение даты начала периода используйте свойство ITsCalendarSettings.OffsetDate.
В данном примере приведен пользовательский векторный метод расчета. Для выполнения примера добавьте ссылки на системные сборки «Dimensions», «Ms», «Transform».
Function OffsetDate(Input: ITimeSeries): ITimeSeries;
Var
pContext: ITsCalculationContext;
i: Integer;
pSeries: ITimeSeries;
CalendSett: ITsCalendarSettings;
Begin
pContext := TsCalculation.Current;
pSeries := pContext.CreateTimeSeries;
CalendSett := Input.CalendarSettings;
If (CalendSett.IsDateEnd(DimCalendarLevel.Year)) And (CalendSett.OffsetDate(DimCalendarLevel.Year) = 1) Then
For i := Input.StartIndex To Input.EndIndex Do
pSeries.Item(i) := 1 + Input.Item(i);
End For;
Else
pContext.RaiseWarning("Используемые календарные параметры не подходят для вычисления метода");
End If;
Return pSeries;
End Function OffsetDate;
Метод выполняет увеличение значений входного ряда, если используется смещение годового календарного уровня на год от конца календаря.
В данном примере приведен пользовательский векторный метод расчета.
Imports Prognoz.Platform.Interop.Dimensions;
Imports Prognoz.Platform.Interop.Ms;
Imports Prognoz.Platform.Interop.Transform;
Function OffsetDate(Input: ITimeSeries): ITimeSeries;
Var
TsCalc: TsCalculation;
pContext: ITsCalculationContext;
i: Integer;
pSeries: ITimeSeries;
CalendSett: ITsCalendarSettings;
Begin
TsCalc := New TsCalculation.Create();
pContext := TsCalc.Current[Null];
pSeries := pContext.CreateTimeSeries(-1 As DimCalendarLevel, Null) As ITimeSeries;
CalendSett := Input.CalendarSettings;
If (CalendSett.IsDateEnd[DimCalendarLevel.dclYear]) And (CalendSett.OffsetDate[DimCalendarLevel.dclYear] = 1) Then
For i := Input.StartIndex To Input.EndIndex Do
pSeries.Item[i] := 1 + (Input.Item[i] As double);
End For;
Else
pContext.RaiseWarning("Используемые календарные параметры не подходят для вычисления метода");
End If;
Return pSeries;
End Function OffsetDate;
Метод выполняет увеличение значений входного ряда, если используется смещение годового календарного уровня на год от конца календаря.
См. также: