IMetabaseCustomClass.ImplementationURL

Синтаксис Fore

ImplementationURL : String;

Синтаксис Fore.NET

ImplementationURL : System.String;

Описание

Свойство ImplementationURL устанавливает URL-адрес скрипта, реализующего операции объекта класса, которые будут выполняться из веб-приложения «Форсайт. Аналитическая платформа».

Комментарии

Из интерфейса URL-адрес скрипта устанавливается в диалоге «Классы объектов» на вкладке «Операции».

Пример Fore

Для выполнения примера предполагается наличие в репозитории объекта-ресурсы с идентификатором «OBJ_RES». В файловой системе должны присутствовать две пиктограммы: «C:\Icon_small.ico» и «C:\Icon_large.ico».

Sub UserProc;
Var
   Mb: IMetabase;
   Object: IMetabaseObject;
   CustomClassExtender: IMetabaseCustomExtender;
   CustClasses: IMetabaseCustomClasses;
   CustomClass: IMetabaseCustomClass;
   Operations: IMetabaseCustomClassOperations;
   Operation: IMetabaseCustomClassOperation;
   CreateInfo: IMetabaseObjectCreateInfo;
   Description: IMetabaseObjectDescriptor;
   ImgList: IGxImageList;
   ImgList32: IGxImageList;
   Icon: IGxIcon;
   CustomObject: IMetabaseCustomObject;
Begin
   Mb := MetabaseClass.Active;
   // Создание контейнера пользовательских классов
   
CreateInfo := Mb.CreateCreateInfo;
   CreateInfo.ClassId := MetabaseObjectClass.KE_CLASS_CUSTOM_EXTENDER;
   CreateInfo.Name := "CUSTOM_EXTENDER";
   CreateInfo.Permanent := True;
   CreateInfo.Parent := Mb.Root;
   Description := Mb.CreateObject(CreateInfo);
   Object := Description.Edit;
   CustomClassExtender := Object As IMetabaseCustomExtender;
   ImgList := New GxImageList.Create;
   ImgList.Height := 16;
   Icon := New GxIcon.CreateFromFile("C:\Icon_small.ico");
   ImgList.AddIcon(Icon);
   CustomClassExtender.SmallImages := ImgList;
   ImgList32 := New GxImageList.Create;
   ImgList32.Height := 32;
   Icon := New GxIcon.CreateFromFile("C:\Icon_large.ico");
   ImgList32.AddIcon(Icon);
   CustomClassExtender.LargeImages := ImgList32;
   CustomClassExtender.IsShared := True;
   CustomClassExtender.Resource := Mb.ItemById("OBJ_RES").Bind As IResourceObject;
   CustomClassExtender.NameResource := "ID_CUSTOM_EXTENDER";
   // Добавление пользовательского класса в контейнер
   
CustClasses := CustomClassExtender.Classes;
   CustomClass := CustClasses.Add;
   CustomClass.Description := "Собственный класс";
   CustomClass.ImageIndex := 0;
   // URL-адрес скрипта, реализующего операции
   
CustomClass.ImplementationURL := "https://site/CoolScript.js";
   Operations := CustomClass.Operations;
   Operation := Operations.Add(0);
   Operation.Name := "Новый метод";
   Object.Save;
End Sub UserProc;

После выполнения примера будет создан контейнер пользовательских классов, содержащий один класс. Для контейнера будет определен идентификатор строкового ресурса «ID_CUSTOM_EXTENDER» из ресурсов «OBJ_RES». Для класса будет определена одна операция. В репозитории будет создан объект пользовательского класса. Источником большой пиктограммы для объекта будет файл «C:\Icon_large.ico», маленькой - «C:\Icon_small.ico». Для класса будет установлен URL-адрес скрипта, реализующего обработчик операции объекта класса в веб-приложении - https://site/CoolScript.js.

Пример Fore.NET

Условия и результат выполнения аналогичны примеру Fore.

Public Shared Sub Main(Params: StartParams);
Var
   Mb: IMetabase;
   Object: IMetabaseObject;
   CustomClassExtender: IMetabaseCustomExtender;
   CustClasses: IMetabaseCustomClasses;
   CustomClass: IMetabaseCustomClass;
   Operations: IMetabaseCustomClassOperations;
   Operation: IMetabaseCustomClassOperation;
   CreateInfo: IMetabaseObjectCreateInfo;
   Description: IMetabaseObjectDescriptor;
   ImgList: GxImageList;
   ImgList32: GxImageList;
   Icon: GxIcon;
   CustomObject: IMetabaseCustomObject;
Begin
   Mb := Params.Metabase;
   // Создание контейнера пользовательских классов
   
CreateInfo := Mb.CreateCreateInfo();
   CreateInfo.ClassId := MetabaseObjectClass.KE_CLASS_CUSTOM_EXTENDER As Int32;
   CreateInfo.Name := "CUSTOM_EXTENDER";
   CreateInfo.Permanent := True;
   CreateInfo.Parent := Mb.Root;
   Description := Mb.CreateObject(CreateInfo);
   Object := Description.Edit();
   CustomClassExtender := Object As IMetabaseCustomExtender;
   ImgList := New GxImageList.Create();
   ImgList.Height := 16;
   Icon := New GxIconClass();
   Icon.CreateFromFile("C:\Icon_small.ico");
   ImgList.AddIcon(Icon);
   CustomClassExtender.SmallImages := ImgList;
   ImgList32 := New GxImageList.Create();
   ImgList32.Height := 32;
   Icon := New GxIcon.Create();
   Icon.CreateFromFile("C:\Icon_large.ico");
   ImgList32.AddIcon(Icon);
   CustomClassExtender.LargeImages := ImgList32;
   CustomClassExtender.IsShared := True;
   CustomClassExtender.Resource := Mb.ItemById["OBJ_RES"].Bind() As IResourceObject;
   CustomClassExtender.NameResource := "ID_CUSTOM_EXTENDER";
   // Добавление пользовательского класса в контейнер
   
CustClasses := CustomClassExtender.Classes;
   CustomClass := CustClasses.Add();
   CustomClass.Description := "Собственный класс";
   CustomClass.ImageIndex := 0;
   // URL-адрес скрипта, реализующего операции
   
CustomClass.ImplementationURL := "https://site/CoolScript.js";
   Operations := CustomClass.Operations;
   Operation := Operations.Add(0);
   Operation.Name := "Новый метод";
   Object.Save();
End Sub;
End Class;

См. также:

IMetabaseCustomClass