Operations: IMetabaseCustomClassOperations;
Свойство Operations возвращает коллекцию операций класса.
Для выполнения примера предполагается наличие в репозитории модуля с идентификатором «Operations». В данном модуле реализован класс для обработки операций объектов пользовательских классов.
Sub UserProc;
Var
Mb: IMetabase;
CustomClassExtender: IMetabaseCustomExtender;
CustomClass: IMetabaseCustomClass;
Operations: IMetabaseCustomClassOperations;
Operation: IMetabaseCustomClassOperation;
Begin
Mb := MetabaseClass.Active;
//Получение контейнера пользовательских классов
CustomClassExtender := Mb.SpecialObject(MetabaseSpecialObject.CustomExtender).Edit As IMetabaseCustomExtender;
//Добавление пользовательского класса
CustomClass := CustomClassExtender.Classes.Add;
CustomClass.Id := "UserObjectClass1";
CustomClass.Name := "Тестовый объект";
CustomClass.ImplementationAssembly := MB.ItemById("Operations");
CustomClass.ImplementationClass := "OperationsClass";
//Создание операции
Operations := CustomClass.Operations;
Operation := Operations.Add(0);
Operation.Name := "Новый метод";
(CustomClassExtender As IMetabaseObject).Save;
End Sub UserProc;
При выполнении примера в контейнере пользовательских классов будет создан новый класс объектов. Для класса будут определены базовые свойства и создана одна операция. В качестве обработчика операций будет указан класс OperationsClass. В данном классе необходимо реализовать метод с идентификатором, который получит созданная операция.
Для выполнения примера предполагается наличие в репозитории .NET-сборки с идентификатором «Operations». В данной сборке реализован класс для обработки операций объектов пользовательских классов.
Указанная ниже процедура является точкой входа для .NET-сборки.
Imports Prognoz.Platform.Interop.Metabase;
Public Shared Sub Main(Params: StartParams);
Var
Mb: IMetabase;
CustomClassExtender: IMetabaseCustomExtender;
CustomClass: IMetabaseCustomClass;
Operations: IMetabaseCustomClassOperations;
Operation: IMetabaseCustomClassOperation;
Begin
Mb := Params.Metabase;
//Получение контейнера пользовательских классов
CustomClassExtender := Mb.SpecialObject[MetabaseSpecialObject.msoCustomExtender].Edit() As IMetabaseCustomExtender;
//Добавление пользовательского класса
CustomClass := CustomClassExtender.Classes.Add();
CustomClass.Id := "UserObjectClass1";
CustomClass.Name := "Тестовый объект";
CustomClass.ImplementationAssembly := MB.ItemById["Operations"];
CustomClass.ImplementationClass := "Operations.OperationsClass";
//Создание операции
Operations := CustomClass.Operations;
Operation := Operations.Add(0);
Operation.Name := "Новый метод";
(CustomClassExtender As IMetabaseObject).Save();
End Sub;
При выполнении примера в контейнере пользовательских классов будет создан новый класс объектов. Для класса будут определены базовые свойства и создана одна операция. В качестве обработчика операций будет указан класс OperationsClass. В данном классе необходимо реализовать метод с идентификатором, который получит созданная операция.
См. также: