EditCustomClass

Назначение

Вызов диалога редактирования существующего пользовательского класса.

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

Отсутствуют

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

Если редактирование существующего пользовательского класса выполнено успешно, то метод Execute вернет значение True, иначе False.

Пример

Для выполнения примера предполагается наличие в пользовательских метаданных репозитория пользовательского класса с идентификатором CUSTOMCLASS.

Добавьте ссылки на системные сборки: Metabase, Ui, Fore (для примера на Fore.NET).

Sub UserProc;
Var
    Mb: IMetabase;
    Target: IUiCommandTarget;
    Context: IUiCommandExecutionContext;
    CustomExtender: IMetabaseCustomExtender;
    Type: MetabaseSpecialObject;
    Result: Boolean;
    Data: Array 
Of Variant;
Begin
    Mb := MetabaseClass.Active;
    Type := MetabaseSpecialObject.CustomExtender;
    Target := WinApplication.Instance.GetPluginTarget(
"Std");
    Context := Target.CreateExecutionContext;
    Data := 
New Variant[2];
    CustomExtender := Mb.SpecialObject(Type).Bind 
As IMetabaseCustomExtender;
    Data[
0] := MetabaseClass.Active;
    Data[
1] := CustomExtender.Classes.FindById("CUSTOMCLASS").Key;
    Context.Data := Data;
    Result := Target.Execute(
"EditCustomClass", Context);
    Debug.WriteLine(Result);
End Sub UserProc;

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

Public Shared Sub Main(Params: StartParams);
Var
    Mb: IMetabase;
    Target: IUiCommandTarget;
    Context: IUiCommandExecutionContext;
    CustomExtender: IMetabaseCustomExtender;
    Type: MetabaseSpecialObject;
    Result: Object;
    Data: Array 
Of Object;
    Svc: IForeServices;
    RunContext: ForeRuntimeContext;
    WinApp: WinApplicationClassClass = 
New WinApplicationClassClass();
Begin
    Mb := Params.Metabase;
    Type := MetabaseSpecialObject.msoCustomExtender;
    Svc := Params.Metabase 
As IForeServices;
    RunContext := Svc.GetRuntime().Context;
    Target := WinApp.Instance[RunContext].GetPluginTarget(
"Std");
    Context := Target.CreateExecutionContext();
    Data := 
New Object[2];
    CustomExtender := Mb.SpecialObject[Type].Bind() 
As IMetabaseCustomExtender;
    Data[
0] := Params.Metabase;
    Data[
1] := CustomExtender.Classes.FindById("CUSTOMCLASS").Key;
    Context.Data := Data;
    Result := Target.Execute(
"EditCustomClass", Context, RunContext);
    System.Diagnostics.Debug.WriteLine(Result);
End Sub;

После выполнения примера будет открыт диалог редактирования пользовательского класса с идентификатором CUSTOMCLASS. Измените параметры класса и нажмите кнопку «ОК». В консоль будет выведен результат редактирования класса.

См. также:

IUiCommandTarget.Execute