IMsCalculationChainEntry.InheritModelPeriod

Синтаксис Fore

InheritModelPeriod: Boolean;

Синтаксис Fore.NET

InheritModelPeriod: boolean;

Описание

Свойство InheritModelPeriod определяет, наследует ли элемент цепочки период и динамику расчета у родительского элемента.

Комментарии

Допустимые значения:

Пример Fore

Для выполнения примера в репозитории предполагается наличие контейнера моделирования с идентификатором «MODELING_CONTAINER». Данный контейнер содержит метамодель с идентификатором «META_MODEL» и модель с идентификатором «MODEL».

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

Sub UserInherit;
Var
    Metabase: IMetabase;
    ModelspaceDescr: IMetabaseObjectDescriptor;
    MetaModel: IMsMetaModel;
    CalculationChain, FolderCont: IMsCalculationChainEntries;
    Folder: IMsCalculationChainFolder;
    Period: IMsModelPeriod;
    Model: IMsModel;
    CalcModel: IMsCalculationChainModel;
Begin
    Metabase := MetabaseClass.Active;
    // Получаем контейнер моделирования
    ModelspaceDescr := Metabase.ItemById("MODELING_CONTAINER");
    // Получаем метамодель
    MetaModel := Metabase.ItemByIdNamespace("META_MODEL", ModelspaceDescr.Key).Edit As IMsMetaModel;
    // Получаем цепочку расчёта и создаём в ней папку
    CalculationChain := MetaModel.CalculationChain;
    Folder := CalculationChain.AddFolder("Исходные данные");
    // Задаём параметры расчёта папки
    Folder.Level := DimCalendarLevel.Year;
    Period := Folder.Period;
    Period.ForecastEndDate := DateTime.ComposeDay(20191231);
    Period.ForecastStartDate := DateTime.ComposeDay(201011);
    Period.IdentificationEndDate := DateTime.ComposeDay(20091231);
    Period.IdentificationStartDate := DateTime.ComposeDay(200011);
    FolderCont := Folder.Contents;
    // Получаем модель
    Model := Metabase.ItemByIdNamespace("MODEL", ModelspaceDescr.Key).Bind As IMsModel;
    // Добавляем модель в папку
    CalcModel := FolderCont.AddModel(Model);
    // Указываем, что модель наследует у папки период и динамику расчёта
    CalcModel.InheritModelPeriod := True;
    // Сохраняем изменения
    (MetaModel As IMetabaseObject).Save;
End Sub UserInherit;

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

Пример Fore.NET

Необходимые требования и результат выполнения примера Fore.NET совпадают с примером Fore.

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

Public Shared Sub Main(Params: StartParams);
Var
    Metabase: IMetabase;
    ModelspaceDescr: IMetabaseObjectDescriptor;
    MetaModel: IMsMetaModel;
    CalculationChain, FolderCont: IMsCalculationChainEntries;
    Folder: IMsCalculationChainFolder;
    Period: IMsModelPeriod;
    Model: IMsModel;
    CalcModel: IMsCalculationChainModel;
Begin
    Metabase := Params.Metabase;
    // Получаем контейнер моделирования
    ModelspaceDescr := Metabase.ItemById["MODELING_CONTAINER"];
    // Получаем метамодель
    MetaModel := Metabase.ItemByIdNamespace["META_MODEL", ModelspaceDescr.Key].Edit() As IMsMetaModel;
    // Получаем цепочку расчёта и создаём в ней папку
    CalculationChain := MetaModel.CalculationChain;
    Folder := CalculationChain.AddFolder("Исходные данные");
    // Задаём параметры расчёта папки
    Folder.Level := DimCalendarLevel.dclYear;
    Period := Folder.Period;
    Period.ForecastEndDate := DateTime.Parse("2019.12.31");
    Period.ForecastStartDate := DateTime.Parse("2010.1.1");
    Period.IdentificationEndDate := DateTime.Parse("2009.12.31");
    Period.IdentificationStartDate := DateTime.Parse("2000.1.1");
    FolderCont := Folder.Contents;
    // Получаем модель
    Model := Metabase.ItemByIdNamespace["MODEL", ModelspaceDescr.Key].Bind() As IMsModel;
    // Добавляем модель в папку
    CalcModel := FolderCont.AddModel(Model);
    // Указываем, что модель наследует у папки период и динамику расчёта
    CalcModel.InheritModelPeriod := True;
    // Сохраняем изменения
    (MetaModel As IMetabaseObject).Save();
End Sub;

См. также:

IMsCalculationChainEntry