IMsMetaModelVisualController.FillChain

Синтаксис Fore

FillChain(ScenarioKeys: Array;
          Period: IMsModelPeriod
          Problem: IMsProblem;
          [Workbook: IMetabaseObject = Null]);

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

FillChain(ScenarioKeys: System.Array;
          Period: Prognoz.Platform.Interop.Ms.IMsModelPeriod
          Problem: Prognoz.Platform.Interop.Ms.IMsProblem;
          Workbook: Prognoz.Platform.Interop.Metabase.IMetabaseObject);

Параметры

ScenarioKeys. Массив ключей сценариев;

Period. Период загрузки данных;

Problem. Задача моделирования, для которой выполняется загрузка;

Workbook. Внешняя рабочая книга, в которую требуется выгрузить результаты. Необязательный параметр.

Описание

Метод FillChain заполняет внутреннюю рабочую книгу данными цепочки расчета метамодели по заданным сценариям.

Комментарии

Для фильтрации данных по сценарному справочнику используйте параметр Problem. Он позволяет загружать данные только по указанной задаче, а не по всем сценариям в контейнере моделирования. Также используется для определения, применяется ли сценарное моделирование.

Если Workbook = Null, то внутреннюю рабочую книгу с загруженными данными возвращает свойство IMsMetaModelVisualController.ChainWorkbook или свойство IMsMetaModelVisualController.Workbook, если в качестве значения параметра WorkbookType необходимо указывать значение MsWorkbookType.Chain.

Пример Fore

Для выполнения примера в репозитории должен присутствовать контейнер моделирования с идентификатором «MS», содержащий задачу моделирования с идентификатором «FILLMODEL». Данная задача должна содержать внутреннюю метамодель, содержащую внутреннюю БД временных рядов и модель.

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

Sub FillChain;
Var
    mb: IMetabase;
    MsObj: IMetabaseObjectDescriptor;
    Meta: IMsMetaModel;
    MetaVisual: IMsMetaModelVisualController;
    ScArr: Array Of Integer;
    Target: IUiCommandTarget;
    pr: IMsProblem;
    ProblDet: IMsProblemDetails;
Begin
    mb := MetabaseClass.Active;
    // Получаем контейнер моделирования
    MsObj := mb.ItemById("MS");
    // Получаем задачу моделирования
    pr := mb.ItemByIdNamespace("FILLMODEL", MsObj.Key).Bind As IMsProblem;
    // Получаем метамодель
    Meta := pr.MetaModel;
    MetaVisual := Meta.VisualController;
    // Создаем массив ключей сценариев
    ScArr := New Integer[1];
    // Добавляем ключ сценария «Факт»
    ScArr[0] := -1;
    // Задаем период получения данных
    ProblDet := pr.Details As IMsProblemDetails;
    // Заполняем рабочую книгу по данным из модели
    MetaVisual.FillChain(ScArr, ProblDet.Period, pr);
    // Открываем рабочую книгу
    Target := WinApplication.Instance.GetObjectTarget(MetaVisual.ChainWorkbook);
    Target.Execute("Object.Edit"Null);
End Sub FillChain;

После выполнения примера будет открыта рабочая книга, заполненная по данным цепочки расчёта метамодели.

Пример Fore.NET

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

Imports Prognoz.Platform.Interop.Ms;
Imports Prognoz.Platform.Interop.Ui;

Public Shared Sub Main(Params: StartParams);
Var
    mb: IMetabase;
    MsObj: IMetabaseObjectDescriptor;
    Meta: IMsMetaModel;
    MetaVisual: IMsMetaModelVisualController;
    ScArr: Array Of Integer;
    Target: IUiCommandTarget;
    Wa: IWinApplicationClass;
    pr: IMsProblem;
    ProblDet: IMsProblemDetails;
Begin
    mb := Params.Metabase;
    // Получаем контейнер моделирования
    MsObj := mb.ItemById["MS"];
    // Получаем задачу моделирования
    pr := mb.ItemByIdNamespace["FILLMODEL", MsObj.Key].Bind() As IMsProblem;
    // Получаем метамодель
    Meta := pr.MetaModel;
    MetaVisual := Meta.VisualController;
    // Создаем массив ключей сценариев
    ScArr := New Integer[1];
    // Добавляем ключ сценария «Факт»
    ScArr[0] := -1;
    // Задаем период получения данных
    ProblDet := pr.Details As IMsProblemDetails;
    // Заполняем рабочую книгу по данным из модели
    MetaVisual.FillChain(ScArr, ProblDet.Period, pr, Null);
    // Открываем рабочую книгу
    Wa := New WinApplicationClassClass();
    Target := Wa.Instance[Null].GetObjectTarget(MetaVisual.ChainWorkbook);
    Target.Execute("Object.Edit"NullNull);
End Sub;

См. также:

IMsMetaModelVisualController