Перейти к основному содержимому
Версия: 5.x

Расширение форм

Техника расширения форм позволяет разработчику расширять структуру и дизайн формы, созданной в другом модуле.

Расширение форм позволяет выделять определенный функционал в отдельный модуль, при подключении которого будет происходить "встраивание" новых компонент в уже существующие формы. Недостаток такого подхода заключается в том, что этот модуль должен точно знать структуру и дизайн формы, к которым он подключается, и при их изменении модуль может стать неработоспособным.

Язык

Для того, чтобы вместо создания новой формы расширить структуру и дизайн уже существующей, необходимо использовать инструкцию EXTEND FORM.

Пример

CLASS ItemGroup;
name = DATA ISTRING[100] (ItemGroup);

itemGroup = DATA ItemGroup (Item);

EXTEND FORM items
PROPERTIES(i) NEWSESSION DELETE // добавляем на форму кнопку удаления

OBJECTS g = ItemGroup BEFORE i // добавляем на форму объект группы товаров перед товаром
PROPERTIES(g) READONLY name
// если бы объект был добавлен после объекта с товарами, то фильтрация шла бы по группе товаров, а не по товарам
FILTERS itemGroup(i) == g
;