IMsModelPeriod.IdentificationStartDateCoord

Синтаксис

IdentificationStartDateCoord: IMsModelCoordAttributes;

IdentificationStartDateCoord: Prognoz.Platform.Interop.Ms.IMsModelCoordAttributes;

Описание

Свойство IdentificationStartDateCoord определяет настройки координаты, задающей дату начала периода идентификации.

Комментарии

Координата доступна только если модель находится под многомерным итератором. При выполнении координата - это текущая итерация многомерного итератора, под которым выполняется модель.

Пример

Для выполнения примера предполагается наличие в репозитории контейнера моделирования с идентификатором «MODEL_SPACE». В контейнере создана задача с идентификатором «PROBLEM» и метамодель, в которую добавлен многомерный итератор. В многомерный итератор включена одна модель. Источник данных для модели имеет в своей структуре измерение, в структуре которого имеются атрибуты с идентификаторами «STARTDATE» и «ENDDATE». В качестве значений атрибутов хранятся какие-либо даты.

Добавьте ссылки на системные сборки Cubes, Dimensions, Metabase, Ms.

Sub UserProc;
Var
    Mb: IMetabase;
    Problem: IMsProblem;
    MetaModel: IMsMetaModel;
    Model: IMsModel;
    Iterator: IMsCalculationChainMultiDimIterator;
    Stub: IVariableStub;
    CalcPeriod: IMsModelPeriod;
    DateCoord: IMsModelCoordAttributes;
    OutputPeriod: IMsDatePeriod;
Begin
    
// Получаем модель
    Mb := MetabaseClass.Active;
    Problem := Mb.ItemByIdNamespace(
"PROBLEM", Mb.GetObjectKeyById("MODEL_SPACE")).Edit As IMsProblem;
    MetaModel := Problem.MetaModel;
    Iterator := MetaModel.CalculationChain.Item(0As IMsCalculationChainMultiDimIterator;
    Model := (Iterator.Contents.Item(
0As IMsCalculationChainModel).EditModel;
    Stub := Model.Transform.Inputs.Item(
0).VariableStub;
    
// Периоды расчета
    CalcPeriod := Model.Transform.Period;
    
// Начало периода идентификации
    DateCoord := CalcPeriod.IdentificationStartDateCoord;
    DateCoord.Stub := Stub;
    DateCoord.Dimension := Stub.Dimension(
1);
    DateCoord.Attributes.Add(DateCoord.Dimension.Attributes.FindById(
"STARTDATE"));
    
// Окончание периода идентификации
    DateCoord := CalcPeriod.IdentificationEndDateCoord;
    DateCoord.Stub := Stub;
    DateCoord.Dimension := Stub.Dimension(
1);
    DateCoord.Attributes.Add(DateCoord.Dimension.Attributes.FindById(
"ENDDATE"));
    
// Начало периода прогнозирования
    DateCoord := CalcPeriod.ForecastStartDateCoord;
    DateCoord.Stub := Stub;
    DateCoord.Dimension := Stub.Dimension(
1);
    DateCoord.Attributes.Add(DateCoord.Dimension.Attributes.FindById(
"STARTDATE"));
    
// Окончание периода прогнозирования
    DateCoord := CalcPeriod.ForecastEndDateCoord;
    DateCoord.Stub := Stub;
    DateCoord.Dimension := Stub.Dimension(
1);
    DateCoord.Attributes.Add(DateCoord.Dimension.Attributes.FindById("ENDDATE"));
    
// Период выгрузки
    OutputPeriod := Model.Transform.OutputPeriod As IMsDatePeriod;
    
// Очищаем период выгрузки данных
    OutputPeriod.ClearPeriod;
    
// Задаём начало и окончание периода выгрузки
    OutputPeriod.Enabled := True;
    
// Начало периода выгрузки
    DateCoord := OutputPeriod.StartCoord;
    DateCoord.Stub := Stub;
    DateCoord.Dimension := Stub.Dimension(
1);
    DateCoord.Attributes.Add(DateCoord.Dimension.Attributes.FindById(
"STARTDATE"));
    
// Окончание периода выгрузки
    DateCoord := OutputPeriod.EndCoord;
    DateCoord.Stub := Stub;
    DateCoord.Dimension := Stub.Dimension(
1);
    DateCoord.Attributes.Add(DateCoord.Dimension.Attributes.FindById(
"ENDDATE"));
    
// Сохраняем изменения
    Model.MetabaseObject.Save;
End Sub UserProc;

Imports Prognoz.Platform.Interop.Cubes;
Imports Prognoz.Platform.Interop.Dimensions;
Imports Prognoz.Platform.Interop.Metabase;
Imports Prognoz.Platform.Interop.Ms;

Public Shared Sub Main(Params: StartParams);
Var
    Mb: IMetabase;
    Problem: IMsProblem;
    MetaModel: IMsMetaModel;
    Model: IMsModel;
    Iterator: IMsCalculationChainMultiDimIterator;
    Stub: IVariableStub;
    CalcPeriod: IMsModelPeriod;
    DateCoord: IMsModelCoordAttributes;
    OutputPeriod: IMsDatePeriod;
Begin
    
// Получаем модель
    Mb := Params.Metabase;
    Problem := Mb.ItemByIdNamespace[
"PROBLEM", Mb.GetObjectKeyById("MODEL_SPACE")].Edit() As IMsProblem;
    MetaModel := Problem.MetaModel;
    Iterator := MetaModel.CalculationChain.Item[0As IMsCalculationChainMultiDimIterator;
    Model := (Iterator.Contents.Item[
0As IMsCalculationChainModel).EditModel;
    Stub := Model.Transform.Inputs.Item[
0].VariableStub;
    
// Периоды расчета
    CalcPeriod := Model.Transform.Period;
    
// Начало периода идентификации
    DateCoord := CalcPeriod.IdentificationStartDateCoord;
    DateCoord.Stub := Stub;
    DateCoord.Dimension := Stub.Dimension[
1];
    DateCoord.Attributes.Add(DateCoord.Dimension.Attributes.FindById(
"STARTDATE"));
    
// Окончание периода идентификации
    DateCoord := CalcPeriod.IdentificationEndDateCoord;
    DateCoord.Stub := Stub;
    DateCoord.Dimension := Stub.Dimension[
1];
    DateCoord.Attributes.Add(DateCoord.Dimension.Attributes.FindById(
"ENDDATE"));
    
// Начало периода прогнозирования
    DateCoord := CalcPeriod.ForecastStartDateCoord;
    DateCoord.Stub := Stub;
    DateCoord.Dimension := Stub.Dimension[
1];
    DateCoord.Attributes.Add(DateCoord.Dimension.Attributes.FindById(
"STARTDATE"));
    
// Окончание периода прогнозирования
    DateCoord := CalcPeriod.ForecastEndDateCoord;
    DateCoord.Stub := Stub;
    DateCoord.Dimension := Stub.Dimension[
1];
    DateCoord.Attributes.Add(DateCoord.Dimension.Attributes.FindById("ENDDATE"));
    
// Период выгрузки
    OutputPeriod := Model.Transform.OutputPeriod As IMsDatePeriod;
    // Очищаем период выгрузки данных
    OutputPeriod.ClearPeriod;
    // Задаём начало и окончание периода выгрузки
    OutputPeriod.Enabled := True;
    
// Начало периода выгрузки
    DateCoord := OutputPeriod.StartCoord;
    DateCoord.Stub := Stub;
    DateCoord.Dimension := Stub.Dimension[
1];
    DateCoord.Attributes.Add(DateCoord.Dimension.Attributes.FindById(
"STARTDATE"));
    
// Окончание периода выгрузки
    DateCoord := OutputPeriod.EndCoord;
    DateCoord.Stub := Stub;
    DateCoord.Dimension := Stub.Dimension[
1];
    DateCoord.Attributes.Add(DateCoord.Dimension.Attributes.FindById(
"ENDDATE"));
    
// Сохраняем изменения
    Model.MetabaseObject.Save();
End Sub;

При выполнении примера будут изменены периоды идентификации, прогнозирования и выгрузки данных для модели. Значения периодов будут браться в соответствии с текущей итерацией итератора и формироваться по значениям указанных атрибутов измерения.

См. также:

IMsModelPeriod