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;
См. также: