AutoPeriod: Integer;
AutoPeriod: integer;
Свойство AutoPeriod определяет условия, которые используются для вычисления дат начала/окончания периодов идентификации и прогнозирования.
Значение определяется комбинаций элементов перечисления MsAutoPeriodOptions. AutoPeriod учитывается, если для свойства IMsModel.UseModelPeriod установлено значение True.
Если AutoPeriod использует значение перечисления MsAutoPeriodOptions, требующее задания дополнительного числа периодов, например, MsAutoPeriodOptions.IdentStartByIdentEnd или MsAutoPeriodOptions.ForecastEndByFact, то задайте дополнительные параметры в соответствующем свойстве:
Особенности вычисления дат начала/окончания периодов идентификации и прогнозирования
Для выполнения примера предполагается наличие контейнера моделирования с идентификатором «MS», содержащего модель с идентификатором «MODEL».
Добавьте ссылки на системные сборки: Metabase, Ms.
Sub UserProc;
Var
mb: IMetabase;
MsKey: Integer;
ModelObj: IMetabaseObject;
Model: IMsModel;
ModelPeriod: IMsModelPeriod;
Begin
mb := MetabaseClass.Active;
MsKey := mb.ItemById("MS").Key;
ModelObj := mb.ItemByIdNamespace("MODEL", MsKey).Edit;
Model := ModelObj As IMsModel;
Model.UseModelPeriod := True;
ModelPeriod := Model.Period;
ModelPeriod.AutoPeriod := MsAutoPeriodOptions.IdentStartAsNow +
MsAutoPeriodOptions.IdentEndAsNow +
MsAutoPeriodOptions.ForecastStartAsNow +
MsAutoPeriodOptions.ForecastEndByIdentEnd;
ModelPeriod.IdentificationStartOffset := -10;
ModelPeriod.IdentificationEndOffset := -1;
ModelPeriod.UseForecastStart := True;
ModelPeriod.ForecastStartOffset := 1;
ModelPeriod.ForecastEndOffset := 5;
ModelObj.Save;
End Sub UserProc;
После выполнения примера будут заданы условия, определяющие периоды расчета модели:
начало периода идентификации: текущая дата минус десять периодов;
окончание периода идентификации: текущая минус один период;
начало периода прогнозирования: текущая дата плюс один период;
окончание периода прогнозирования: окончание идентификации плюс пять периодов.
Необходимые требования и результат выполнения примера Fore.NET совпадают с примером Fore.
Imports Prognoz.Platform.Interop.Ms;
…
Public Shared Sub Main(Params: StartParams);
Var
mb: IMetabase;
MsKey: uinteger;
ModelObj: IMetabaseObject;
Model: IMsModel;
ModelPeriod: IMsModelPeriod;
AutoPeriod: integer;
Begin
mb := Params.Metabase;
MsKey := mb.ItemById["MS"].Key;
ModelObj := mb.ItemByIdNamespace["MODEL", MsKey].Edit();
Model := ModelObj As IMsModel;
Model.UseModelPeriod := True;
ModelPeriod := Model.Period;
ModelPeriod.AutoPeriod := (MsAutoPeriodOptions.msapoIdentStartAsNow As integer) +
(MsAutoPeriodOptions.msapoIdentEndAsNow As integer) +
(MsAutoPeriodOptions.msapoForecastStartAsNow As integer) +
(MsAutoPeriodOptions.msapoForecastEndByIdentEnd As integer);
ModelPeriod.IdentificationStartOffset := -10;
ModelPeriod.IdentificationEndOffset := 0;
ModelPeriod.UseForecastStart := True;
ModelPeriod.ForecastStartOffset := 1;
ModelPeriod.ForecastEndOffset := 5;
ModelObj.Save();
End Sub;
См. также: