Команда ShowAdditionalAttributesDialog

Назначение

Открытие диалога для задания значений дополнительных атрибутов.

Параметры использования

Параметры команды передаются в свойстве IUiCommandExecutionContext.Data. Для работы команды в данном свойстве укажите значения:

Тип значения Описание
Элемент 1: IMsModel Стандартная модель.
Элемент 2: IRubricator База данных временных рядов.

Особенности применения

Открытие диалога «Значения атрибутов» доступно для стандартных моделей, если источником данных моделируемой переменной является база данных временных рядов.

Пример

Для выполнения примера предполагается наличие формы, содержащей кнопку с идентификатором Button1.

В репозитории предполагается наличие контейнера моделирования с идентификатором MS_PLUGIN, содержащего стандартную модель с идентификатором DIMITERATOR. Источником данных моделируемой переменной является база данных временных рядов с идентификатором TSDB.

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

Пример является обработчиком события OnClick для кнопки Button1.

Sub Button1OnClick(Sender: Object; Args: IMouseEventArgs);
Var
    Mb: IMetabase;
    MsKey: Integer;
    Model: IMsModel;
    Rubricator: IRubricator;
    Target: IUiCommandTarget;
    Context: IUiCommandExecutionContext;
    Arg: array 
Of Variant;
Begin
    
// Получаем текущий репозиторий
    Mb := MetabaseClass.Active;
    
// Получаем модель
    MsKey := Mb.GetObjectKeyById("MS_PLUGIN");
    Model := Mb.ItemByIdNamespace(
"DIMITERATOR", MsKey).Edit As IMsModel;
    
// Получаем базу данных временных рядов
    Rubricator := Mb.ItemById("TSDB").Edit As IRubricator;
    
// Получаем плагин Ms
    Target := WinApplication.Instance.GetPluginTarget("Ms");
    
// Создаём контекст для выполнения команды
    Context := Target.CreateExecutionContext;
    
// Создаём массив параметров команды
    Arg := New Variant[2];
    Arg[
0] := Rubricator;
    Arg[
1] := Model;
    
// Передаём массив параметров команды
    Context.Data := Arg;
    
// Выполняем команду
    Target.Execute("ShowAdditionalAttributesDialog", Context);
End Sub Button1OnClick;

Imports Prognoz.Platform.Interop.Cubes;
Imports Prognoz.Platform.Interop.Fore;
Imports Prognoz.Platform.Interop.Metabase;
Imports Prognoz.Platform.Interop.Ms;
Imports Prognoz.Platform.Interop.Ui;

Private Sub button1_Click(sender: System.Object; e: System.EventArgs);
Var
    Mb: IMetabase;
    MObj: IMetabaseObject;
    MsKey: uinteger;
    Model: IMsModel;
    Rubricator: IRubricator;
    Target: IUiCommandTarget;
    WinApp: WinApplicationClassClass = 
New WinApplicationClassClass();
    RunContext: ForeRuntimeContext;
    Context: IUiCommandExecutionContext;
    Arg: Array 
Of object;
Begin
    
// Получаем текущий репозиторий
    Mb := Self.Metabase;
    
// Получаем модель
    MsKey := Mb.GetObjectKeyById("MS_PLUGIN");
    Model := Mb.ItemByIdNamespace[
"DIMITERATOR", MsKey].Edit() As IMsModel;
    
// Получаем базу данных временных рядов
    Rubricator := Mb.ItemById["TSDB"].Edit() As IRubricator;
     
// Получаем плагин Ms
    RunContext := (Mb As IForeServices).GetRuntime().Context;
    Target := WinApp.Instance[RunContext].GetPluginTarget(
"Ms");
    
// Создаём контекст для выполнения команды
    Context := Target.CreateExecutionContext();
    
// Создаём массив параметров команды
    Arg := New Object[2];
    Arg[
0] := Rubricator;
    Arg[
1] := Model;
    
// Передаём массив параметров команды
    Context.Data := Arg;
    
// Выполняем команду
    Target.Execute("ShowAdditionalAttributesDialog", Context, RunContext);
End Sub;

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

См. также:

IUiCommandTarget.Execute