IMsFormulaTransform.Period

Синтаксис

Period: IMsModelPeriod;

Period: Prognoz.Platform.Interop.Ms.IMsModelPeriod;

Описание

Свойство Period возвращает период расчета модели.

Комментарии

Свойство позволяет задать следующие параметры периода расчёта модели:

Дата начала периода идентификации Дата окончания периода идентификации Дата окончания периода прогнозирования
Определенная дата (по умолчанию). Определенная дата (по умолчанию). Определенная дата (по умолчанию).
Сегодня плюс/минус k точек. Сегодня плюс/минус k точек. Сегодня плюс/минус k точек.
Начало данных плюс/минус k точек. Конец данных плюс/минус k точек. Конец данных плюс/минус k точек.
Конец идентификации минус k точек. Начало идентификации плюс k точек. Конец идентификации плюс k точек.
Установка значения по параметру. Установка значения по параметру. Установка значения по параметру.
  Начало данных плюс k точек.  

Примечание. Установка значения по параметру недоступна для моделей, используемых в рядном режиме базы данных временных рядов.

Пример Fore

Для выполнения примера в репозитории предполагается наличие контейнера моделирования с идентификатором «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». В консоль будет выведен способ расчёта календарных элементов.

См. также:

IMsFormulaTransform