Поиск объектов репозитория в соответствии с указанными параметрами и вывод списка найденных объектов в навигаторе объектов.
Параметры команды передаются в свойстве Data. Для работы команды в данном свойстве необходимо указать массив типа Variant, элементы которого содержат следующие значения:
Тип значения | Описание |
Элемент 1: IMetabase | Репозиторий, в котором будет производиться поиск. |
Элемент 2: IMetabaseObjectFindInfo | Параметры поиска объектов репозитория. |
Элемент 3: IMetabaseObjectDescriptor | Необязательный параметр, содержащий описание папки репозитория, к которой будет переведен фокус в навигаторе объектов после поиска. Если элемент не задан, то перевод фокуса в навигатор объектов не производится. |
Отсутствуют.
Для выполнения примера предполагается наличие формы и расположенной на ней кнопки с наименованием «Button1».
Sub Button1OnClick(Sender: Object; Args: IMouseEventArgs);
Var
MB: IMetabase;
Target: IUiCommandTarget;
Context: IUiCommandExecutionContext;
FindInfo: IMetabaseObjectFindInfo;
Data: Array;
Begin
MB := MetabaseClass.Active;
Target := WinApplication.Instance.GetPluginTarget("Std");
Context := Target.CreateExecutionContext;
FindInfo := MB.CreateFindInfo;
FindInfo.Text := "report";
FindInfo.AttributeEx := FindAttributeEx.Name Or FindAttributeEx.Ident;
FindInfo.WholeWordsOnly := False;
FindInfo.ScanNestedNamespaces := True;
Data := New Variant[2];
Data[0] := MB;
Data[1] := FindInfo;
Context.Data := Data;
Target.Execute("ShowFindObjects", Context);
End Sub Button1OnClick;
При нажатии на кнопку будет произведен поиск всех объектов, в наименовании или идентификаторе которых присутствует слово «report». Список найденных объектов будет доступен в окне «Результаты поиска» в навигаторе объектов. Переход к навигатору объектов после поиска не производится.
Необходимые требования и результат выполнения примера Fore.NET совпадают с примером Fore. Вместо компонентов Fore используйте их Fore.NET аналоги.
Imports Prognoz.Platform.Interop.Metabase;
Imports Prognoz.Platform.Interop.Ui;
Private Sub button1_Click(sender: System.Object; e: System.EventArgs);
Var
MB: IMetabase;
WinApp: WinApplication = New WinApplicationClass_2();
Target: IUiCommandTarget;
Context: IUiCommandExecutionContext;
FindInfo: IMetabaseObjectFindInfo;
Data: Array;
Begin
MB := Self.Metabase;
Target := WinApp.GetPluginTarget("Std");
Context := Target.CreateExecutionContext();
FindInfo := MB.CreateFindInfo();
FindInfo.Text := "report";
FindInfo.AttributeEx := FindAttributeEx.fnaeName Or FindAttributeEx.fnaeIdent;
FindInfo.WholeWordsOnly := False;
FindInfo.ScanNestedNamespaces := True;
Data := New Object[2];
Data[0] := MB;
Data[1] := FindInfo;
Context.Data := Data;
Target.Execute("ShowFindObjects", Context, Null);
End Sub;
См. также: