Add: IForeMethod;
Метод Add добавляет пользовательский метод в коллекцию.
Для выполнения примера предполагается наличие в репозитории модуля с идентификатором «MY_FUNC_ASSEMBLY», содержащего функцию «PiDiv».
Добавьте ссылки на системные сборки: Fore и Metabase.
Sub UserProc;
Var
Mb: IMetabase;
SharedParams: ISharedParams;
Methods: IForeMethods;
Method: IForeMethod;
Begin
Mb := MetabaseClass.Active;
SharedParams:= Mb.SpecialObject(MetabaseSpecialObject.SharedParams).Edit As ISharedParams;
Methods := SharedParams.Methods;
Method := Methods.Add;
Method.Assembly := "MY_FUNC_ASSEMBLY";
Method.Method := "PiDiv";
Method.Category := "Мои функции";
Method.Name := "PiDiv";
Method.Description := "Значение делим на 'Пи'";
Method.ResultType := ForeResultType.Real;
Method.Type := ForeMethodType.Arithmetic;
Debug.WriteLine("Ключ метода: " + Method.Key.ToString);
(SharedParams As IMetabaseObject).Save;
End Sub UserProc;
Imports Prognoz.Platform.Interop.Fore;
Imports Prognoz.Platform.Interop.KeFore;
Imports Prognoz.Platform.Interop.Metabase;
Public Shared Sub Main(Params: StartParams);
Var
Mb: IMetabase;
SharedParams: ISharedParams;
Methods: IForeMethods;
Method: IForeMethod;
Begin
Mb := Params.Metabase;
SharedParams:= Mb.SpecialObject[MetabaseSpecialObject.msoSharedParams].Edit() As ISharedParams;
Methods := SharedParams.Methods;
Method := Methods.Add();
Method.Assembly := "MY_FUNC_ASSEMBLY";
Method.Method := "PiDiv";
Method.Category := "Мои функции";
Method.Name := "PiDiv";
Method.Description := "Значение делим на 'Пи'";
Method.ResultType := ForeResultType.frtReal;
Method.Type := ForeMethodType.fmtArithmetic;
System.Diagnostics.Debug.WriteLine("Ключ метода: " + Method.Key.ToString());
(SharedParams As IMetabaseObject).Save();
End Sub;
После выполнения примера в коллекцию пользовательских методов будет добавлена новая функция «PiDiv». После этого функция будет доступна для использования в различных инструментах без дополнительного подключения самого модуля:
См. также: