Расширение форм
Техника расширения форм позволяет разработчику расширять структуру и дизайн формы, созданной в другом модуле.
Расширение форм позволяет выделять определенный функционал в отдельный модуль, при подключении которого будет происходить "встраивание" новых компонент в уже существующие формы. Недостаток такого подхода заключается в том, что этот модуль должен точно знать структуру и дизайн формы, к которым он подключается, и при их изменении модуль может стать неработоспособным.
Язык
Для того, чтобы вместо создания новой формы расширить структуру и дизайн уже существующей, необходимо использовать инструкцию 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
;