OutputPeriod: IMsPeriod;
OutputPeriod: Prognoz.Platform.Interop.Ms.IMsPeriod;
Свойство OutputPeriod возвращает параметры периода выгрузки данных.
Для настройки параметров периода расчета модели используйте свойство IMsFormulaTransform.Period.
Для выполнения примера в репозитории предполагается наличие контейнера моделирования с идентификатором MS. В данном контейнере должна присутствовать метамодель с идентификатором METAMODEL_TRANSF_OUTPUT, включающая в цепочку расчета модель с идентификатором MODEL_TRANSF_OUTPUT.
Добавьте ссылки на системные сборки: Dal, Metabase, Ms.
Sub UserProc;
Var
mb: IMetabase;
MsKey: Integer;
MetaModel: IMsMetaModel;
pParams: IMsModelParams;
pPar: IMsModelParam;
pModel: IMsModel;
pPeriod: IMsDatePeriod;
Begin
// Получаем текущий репозиторий
mb := MetabaseClass.Active;
// Получаем ключ контейнера моделирования
MsKey := mb.GetObjectKeyById("MS");
// Получаем метамодель
MetaModel := mb.ItemByIdNamespace("METAMODEL_TRANSF_OUTPUT", MsKey).Edit As IMsMetaModel;
// Получаем параметры метамодели
pParams := MetaModel.Params;
// Удаляем все параметры
pParams.Clear;
// Добавляем параметр метамодели для задания начала периода выгрузки данных
pPar := pParams.Add;
pPar.Id := "OUT_START";
pPar.Name := "Начало выгрузки данных";
pPar.DataType := DbDataType.Date;
pPar.DefaultValue := DateTime.Parse("01.01.2018");
// Добавляем параметр метамодели для задания окончания периода выгрузки данных
pPar := pParams.Add;
pPar.Id := "OUT_END";
pPar.Name := "Окончание выгрузки данных";
pPar.DataType := DbDataType.Date;
pPar.DefaultValue := DateTime.Parse("01.01.2020");
// Сохраняем изменения в метамодели
(MetaModel As IMetabaseObject).Save;
// Получаем модель
pModel := mb.ItemByIdNamespace("MODEL_TRANSF_OUTPUT", MsKey).Edit As IMsModel;
// Получаем параметры периода расчета модели
pPeriod := pModel.Transform.OutputPeriod As IMsDatePeriod;
pPeriod.ClearPeriod;
// Задаем для модели параметры, определяющие начало и окончание периода выгрузки данных
pPeriod.StartParam.Parameter := pParams.FindById("OUT_START");
pPeriod.EndParam.Parameter := pParams.FindById("OUT_END");
// Сохраняем изменения в модели
(pModel As IMetabaseObject).Save;
End Sub UserProc;
Imports Prognoz.Platform.Interop.Dal;
Imports Prognoz.Platform.Interop.Ms;
…
Public Shared Sub Main(Params: StartParams);
Var
mb: IMetabase;
MsKey: uinteger;
MetaModel: IMsMetaModel;
pParams: IMsModelParams;
pPar: IMsModelParam;
pModel: IMsModel;
pPeriod: IMsDatePeriod;
Begin
// Получаем текущий репозиторий
mb := Params.Metabase;
// Получаем ключ контейнера моделирования
MsKey := mb.GetObjectKeyById("MS");
// Получаем метамодель
MetaModel := mb.ItemByIdNamespace["METAMODEL_TRANSF_OUTPUT", MsKey].Edit() As IMsMetaModel;
// Получаем параметры метамодели
pParams := MetaModel.Params;
// Удаляем все параметры
pParams.Clear();
// Добавляем параметр метамодели для задания начала периода выгрузки данных
pPar := pParams.Add();
pPar.Id := "OUT_START";
pPar.Name := "Начало выгрузки данных";
pPar.DataType := DbDataType.ddtDate;
pPar.DefaultValue := DateTime.Parse("01.01.2018");
// Добавляем параметр метамодели для задания окончания периода выгрузки данных
pPar := pParams.Add();
pPar.Id := "OUT_END";
pPar.Name := "Окончание выгрузки данных";
pPar.DataType := DbDataType.ddtDate;
pPar.DefaultValue := DateTime.Parse("01.01.2020");
// Сохраняем изменения в метамодели
(MetaModel As IMetabaseObject).Save();
// Получаем модель
pModel := mb.ItemByIdNamespace["MODEL_TRANSF_OUTPUT", MsKey].Edit() As IMsModel;
// Получаем параметры периода расчета модели
pPeriod := pModel.Transform.OutputPeriod As IMsDatePeriod;
pPeriod.ClearPeriod();
// Задаем для модели параметры, определяющие начало и окончание периода выгрузки данных
pPeriod.StartParam.Parameter := pParams.FindById("OUT_START");
pPeriod.EndParam.Parameter := pParams.FindById("OUT_END");
// Сохраняем изменения в модели
(pModel As IMetabaseObject).Save();
End Sub;
В результате выполнения примера начало и окончание периода выгрузки данных модели будет задано параметрами OUT_START и OUT_END.
См. также: