Period: IMsModelPeriod;
Свойство Period возвращает период расчета модели.
Свойство позволяет задать следующие параметры периода расчёта модели:
Дата начала периода идентификации | Дата окончания периода идентификации | Дата окончания периода прогнозирования |
Определенная дата (по умолчанию). | Определенная дата (по умолчанию). | Определенная дата (по умолчанию). |
Сегодня плюс/минус k точек. | Сегодня плюс/минус k точек. | Сегодня плюс/минус k точек. |
Начало данных плюс/минус k точек. | Конец данных плюс/минус k точек. | Конец данных плюс/минус k точек. |
Конец идентификации минус k точек. | Начало идентификации плюс k точек. | Конец идентификации плюс k точек. |
Установка значения по параметру. | Установка значения по параметру. | Установка значения по параметру. |
Начало данных плюс k точек. |
Примечание. Установка значения по параметру недоступна для моделей, используемых в рядном режиме базы данных временных рядов.
Для выполнения примера в репозитории предполагается наличие контейнера моделирования с идентификатором «MS». В данном контейнере должна присутствовать метамодель с идентификатором «METAMODEL_PERIOD», включающая в цепочку расчета модель с идентификатором «MODEL_PERIOD».
Добавьте ссылки на системные сборки: Dal, Dimensions, Metabase, Ms.
Sub UserProc;
Var
mb: IMetabase;
MsKey: Integer;
MetaModel: IMsMetaModel;
pParams: IMsModelParams;
pPar: IMsModelParam;
pModel: IMsModel;
pPeriod: IMsModelPeriod;
Begin
// Получаем текущий репозиторий
mb := MetabaseClass.Active;
// Получаем ключ контейнера моделирования
MsKey := mb.GetObjectKeyById("MS");
// Получаем метамодель
MetaModel := mb.ItemByIdNamespace("METAMODEL_PERIOD", MsKey).Edit As IMsMetaModel;
// Получаем параметры метамодели
pParams := MetaModel.Params;
// Удаляем все параметры
pParams.Clear;
// Добавляем параметр метамодели для задания начала периода идентификации
pPar := pParams.Add;
pPar.Id := "IDSTART";
pPar.Name := "Начало идентификации";
pPar.DataType := DbDataType.Date;
pPar.DefaultValue := DateTime.Parse("01.01.1995");
// Добавляем параметр метамодели для задания окончания периода идентификации
pPar := pParams.Add;
pPar.Id := "IDEND";
pPar.Name := "Окончание идентификации";
pPar.DataType := DbDataType.Date;
pPar.DefaultValue := DateTime.Parse("01.01.2015");
// Сохраняем изменения в метамодели
(MetaModel As IMetabaseObject).Save;
// Получаем модель
pModel := mb.ItemByIdNamespace("MODEL_PERIOD", MsKey).Edit As IMsModel;
// Задаем для модели дневную динамику расчета
pModel.Transform.FormulaItem(0).Level := DimCalendarLevel.Day;
// Получаем параметры периода расчета модели
pPeriod := pModel.Transform.Period;
// Задаем для модели параметры, определяющие начало и окончание периода идентификации
pPeriod.IdentificationStartDateParamID := "IDSTART";
pPeriod.IdentificationEndDateParamID := "IDEND";
// Выведем в консоль способ расчёта календарных элементов
Debug.WriteLine(pModel.Transform.CalendarMode);
// Сохраняем изменения в модели
(pModel As IMetabaseObject).Save;
End Sub UserProc;
Imports Prognoz.Platform.Interop.Dal;
Imports Prognoz.Platform.Interop.Ms;
Imports Prognoz.Platform.Interop.Metabase;
Imports Prognoz.Platform.Interop.Dimensions;
…
Public Shared Sub Main(Params: StartParams);
Var
mb: IMetabase;
MsKey: uinteger;
MetaModel: IMsMetaModel;
pParams: IMsModelParams;
pPar: IMsModelParam;
pModel: IMsModel;
pPeriod: IMsModelPeriod;
Begin
// Получаем текущий репозиторий
mb := Params.Metabase;
// Получаем ключ контейнера моделирования
MsKey := mb.GetObjectKeyById("MS");
// Получаем метамодель
MetaModel := mb.ItemByIdNamespace["METAMODEL_PERIOD", MsKey].Edit() As IMsMetaModel;
// Получаем параметры метамодели
pParams := MetaModel.Params;
// Удаляем все параметры
pParams.Clear();
// Добавляем параметр метамодели для задания начала периода идентификации
pPar := pParams.Add();
pPar.Id := "IDSTART";
pPar.Name := "Начало идентификации";
pPar.DataType := DbDataType.ddtDate;
pPar.DefaultValue := DateTime.Parse("01.01.1995");
// Добавляем параметр метамодели для задания окончания периода идентификации
pPar := pParams.Add();
pPar.Id := "IDEND";
pPar.Name := "Окончание идентификации";
pPar.DataType := DbDataType.ddtDate;
pPar.DefaultValue := DateTime.Parse("01.01.2015");
// Сохраняем изменения в метамодели
(MetaModel As IMetabaseObject).Save();
// Получаем модель
pModel := mb.ItemByIdNamespace["MODEL_PERIOD", MsKey].Edit() As IMsModel;
// Задаем для модели дневную динамику расчета
pModel.Transform.FormulaItem[0].Level := DimCalendarLevel.dclDay;
// Получаем параметры периода расчета модели
pPeriod := pModel.Transform.Period;
// Задаем для модели параметры, определяющие начало и окончание периода идентификации
pPeriod.IdentificationStartDateParamID := "IDSTART";
pPeriod.IdentificationEndDateParamID := "IDEND";
// Выведем в консоль способ расчёта календарных элементов
System.Diagnostics.Debug.WriteLine(pModel.Transform.CalendarMode);
// Сохраняем изменения в модели
(pModel As IMetabaseObject).Save();
End Sub;
В результате выполнения примера начало и окончание периода идентификации модели будет задано параметрами «IDSTART» и «IDEND». В консоль будет выведен способ расчёта календарных элементов.
См. также: