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». Для компонента будут определены корневая и исходная папки, заголовок диалога. Будет установлен признак множественного выбора объектов и фильтр объектов, которые будут доступны в диалоге. При нажатии на кнопку диалог будет выведен на экран.
Для выполнения примера предполагается наличие .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». Для компонента будут определены корневая и исходная папки, заголовок диалога. Будет установлен признак множественного выбора объектов и фильтр объектов, которые будут доступны в диалоге. При нажатии на кнопку диалог будет выведен на экран.
См. также: