IMetabaseDialog.Execute

Синтаксис

Execute(Parent: IControl): Boolean;

Параметры

Parent - родительский компонент, для которого диалог откроется модально.

Описание

Метод Execute выполняет диалог, после чего возвращает признак нажатия кнопки «OK».

Комментарии

Если в диалоге была нажата кнопка "ОК" - метод возвращает True, если "Отмена" - False.

Пример

Для выполнения примера предполагается наличие формы и расположенной на ней кнопки с наименованием «Button1». Для формы установлен обработчик события OnCreate. Для кнопки установлен обработчик события OnClick. Также предполагается наличие в репозитории папки с идентификатором «FCubes». В этой папке создана папка с идентификатором «FStdCube».

Ниже приведен полный код формы.

Class TestForm: Form
    Button1: Button;
    OpenDlg: IMetabaseOpenDialog;

    Sub TestFormOnCreate(Sender: Object; Args: IEventArgs);
    Var
        MB: IMetabase;
        Filter: IMetabaseDialogFilter;
    Begin
        MB := MetabaseClass.Active;
        OpenDlg := New MetabaseOpenDialog.Create;
        //Корневой и исходный каталоги
        OpenDlg.Root := MB.ItemById("FCubes");
        OpenDlg.InitialFolder := MB.ItemById("FStdCube");
        //Возможность множественной отметки
        OpenDlg.MultiSelect := True;
        //Заголовок для диалога
        OpenDlg.Title := "Выбор источника(ов) данных";
        //Фильтр доступных объектов
        Filter := New MetabaseDialogMetaclassFilter.Create;
        Filter.Description := "Кубы";
        (Filter As IMetabaseDialogMetaclassFilter).ObjectMetaclass := MetabaseObjectMetaclass.CUBE_CLASS;
        OpenDlg.Filters.AddFilter(Filter);
    End Sub TestFormOnCreate;

    Sub Button1OnClick(Sender: Object; Args: IMouseEventArgs);
    Begin
        If OpenDlg.Execute(Self) Then
            //Действия после выбора объекта(ов) в диалоге
        End If;
    End Sub Button1OnClick;

End Class TestForm;

При запуске формы в событии «OnCreate» динамически будет создан компонент «MetabaseOpenDialog». Для компонента будут определены корневая и исходная папки, заголовок диалога. Будет установлен признак множественного выбора объектов и фильтр объектов, которые будут доступны в диалоге. При нажатии на кнопку диалог будет выведен на экран.

Пример Fore.NET

Для выполнения примера предполагается наличие .NET-формы и расположенной на ней кнопки с наименованием «Button1». Для формы установлен обработчик события Activated. Для кнопки установлен обработчик события Click. Также предполагается наличие в репозитории папки с идентификатором «FCubes». В этой папке создана папка с идентификатором «FStdCube».

Ниже приведен полный код формы.

Imports System;
Imports Prognoz.Platform.Forms.Net;
Imports Prognoz.Platform.Interop.ExtCtrls;
Imports Prognoz.Platform.Interop.Metabase;

Public Partial Class TestForm: Prognoz.Platform.Forms.Net.ForeNetForm
    Public Constructor TestForm();
    Begin
        InitializeComponent();
    End Constructor;
    OpenDlg: MetabaseOpenDialogNet;

    Private Sub TestForm_Activated(sender: System.Object; e: System.EventArgs);
    Var
        MB: IMetabase;
        Filter: IMetabaseDialogFilter;
    Begin
        MB := Self.Metabase;
        OpenDlg := New MetabaseOpenDialogNet();
        //Корневой и исходный каталоги
        OpenDlg.Root := MB.ItemById["FCubes"];
        OpenDlg.InitialFolder := MB.ItemById["FStdCube"];
        //Возможность множественной отметки
        OpenDlg.MultiSelect := True;
        //Заголовок для диалога
        OpenDlg.Title := "Выбор источника(ов) данных";
        //Фильтр доступных объектов
        Filter := New MetabaseDialogMetaclassFilterClass();
        Filter.Description := "Кубы";
        (Filter As IMetabaseDialogMetaclassFilter).ObjectMetaclass := MetabaseObjectMetaclass.CUBE_CLASS;
        OpenDlg.Filters.AddFilter(Filter);
    End Sub;

    Private Sub button1_Click(sender: System.Object; e: System.EventArgs);
    Begin
        If OpenDlg.Execute(Self) Then
            //Действия после выбора объекта(ов) в диалоге
        End If;
    End Sub;

End Class;

При запуске формы в событии «Activated» динамически будет создан компонент «MetabaseOpenDialog». Для компонента будут определены корневая и исходная папки, заголовок диалога. Будет установлен признак множественного выбора объектов и фильтр объектов, которые будут доступны в диалоге. При нажатии на кнопку диалог будет выведен на экран.

См. также:

IMetabaseDialog