ForecastEndDateParamID: String;
Свойство ForecastEndDateParamID определяет идентификатор параметра, задающего дату окончания периода прогнозирования.
Если параметр не задан или не найден, то дату определяет свойство IMsModelPeriod.ForecastEndDate.
Значение параметра может быть:
датой;
числом;
строкой.
Особенности использования числовых и строковых значений приведены в описании свойства IMsModelPeriod.IdentificationEndDateParamID.
Для выполнения примера предполагается наличие в репозитории контейнера моделирования с идентификатором «CONT_M». В данном контейнере должна присутствовать задача прогнозирования с идентификатором «PROBLEM», которая рассчитывает метамодель с идентификатором «M_MODEL». Метамодель должна включать в цепочку расчета модель с идентификатором «MODEL».
Добавьте ссылки на системные сборки «Metabase», «Ms», «Dal».
Sub UserProc;
Var
mb: IMetabase;
cm: IMetabaseObjectDescriptor;
MetaModel: IMsMetaModel;
pParams: IMsModelParams;
pPar: IMsModelParam;
pModel: IMsModel;
pPeriod: IMsModelPeriod;
pProb: IMsProblem;
pSet: IMsProblemCalculationSettings;
pCalc: IMsProblemCalculation;
Begin
mb := MetabaseClass.Active;
cm := mb.ItemById("CONT_M");
MetaModel := mb.ItemByIdNamespace("M_MODEL", cm.Key).Edit As IMsMetaModel;
pParams := MetaModel.Params;
pParams.Clear;
// Добавляем параметры метамодели для задания начала/окончания периода идентификации
pPar := pParams.Add;
pPar.Id := "IDSTART";
pPar.DataType := DbDataType.DateTime;
pPar := pParams.Add;
pPar.Id := "IDEND";
pPar.DataType := DbDataType.DateTime;
(MetaModel As IMetabaseObject).Save;
// Добавляем параметры метамодели для задания начала/окончания периода прогнозирования
pPar := pParams.Add;
pPar.Id := "FOSTART";
pPar.DataType := DbDataType.DateTime;
pPar := pParams.Add;
pPar.Id := "FOEND";
pPar.DataType := DbDataType.DateTime;
(MetaModel As IMetabaseObject).Save;
pModel := mb.ItemByIdNamespace("MODEL", cm.Key).Edit As IMsModel;
// Задаем для модели параметры, определяющие начало и окончание периода идентификации
pPeriod := pModel.Period;
pPeriod.IdentificationStartDateParamID := "IDSTART";
pPeriod.IdentificationEndDateParamID := "IDEND";
// Задаем для модели параметры, определяющие начало и окончание периода прогнозирования
pPeriod := pModel.Period;
pPeriod.ForecastStartDateParamID := "FOSTART";
pPeriod.ForecastEndDateParamID := "FOEND";
(pModel As IMetabaseObject).Save;
pProb := mb.ItemByIdNamespace("PROBLEM", cm.Key).Bind As IMsProblem;
pSet := pProb.CreateCalculationSettings;
pSet.FactIncluded := True;
// Задаем значение параметров и рассчитываем модель
pSet.ParamValues.FindById("IDSTART").Value := DateTime.ComposeDay(2000, 1, 1);
pSet.ParamValues.FindById("IDEND").Value := DateTime.ComposeDay(2007, 1, 1);
pSet.ParamValues.FindById("FOSTART").Value := DateTime.ComposeDay(2008, 1, 1);
pSet.ParamValues.FindById("FOEND").Value := DateTime.ComposeDay(2015, 1, 1);
pCalc := pProb.Calculate(pSet);
pCalc.Run;
End Sub UserProc;
После выполнения примера начало и окончание периода идентификации модели будет задано параметрами «IDSTART» и «IDEND», а начало и окончание периода прогнозирования - параметрами «FOSTART» и «FOEND».
См. также: