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

Инструкция EXTEND FORM

Инструкция EXTEND FORM - расширение существующей формы.

Синтаксис

EXTEND FORM formName 
[formBlock1
...
formBlockN]
;

Описание

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

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

Параметры

  • formName

    Имя расширяемой формы. Составной идентификатор. Должно указывать на уже существующую форму, объявленную в этом или другом модуле; новая форма не создаётся. Заголовок и значок здесь не задаются — форма сохраняет те, что заданы при её объявлении.

  • formBlock1 ... formBlockN

    Блоки формы.

Примеры

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
;

Блок расширения объектов

Синтаксис

EXTEND OBJECTS extObjectDecl1, ..., extObjectDeclN

Где каждый extObjectDecl имеет следующий синтаксис:

[caption =] name objectOptions groupOptions

Опции объекта objectOptions и опции группы объектов groupOptions — те же, что и в блоке объектов, и записываются так же.

Описание

Блок расширения объектов изменяет группы объектов, уже добавленные на форму. Указанные опции применяются к существующей группе объектов так же, как если бы они были указаны при ее добавлении. В частности, с помощью опции insertPosition группу объектов можно переместить в списке групп объектов формы.

Параметры

  • caption

    Новый заголовок объекта. Строковый литерал. Заголовок и опции объекта objectOptions применяются, только если группа объектов состоит из одиночного объекта.

  • name

    Имя объекта либо имя группы объектов, уже добавленных на форму. Простой идентификатор.

Примеры

EXTEND FORM items
// меняем заголовок объекта g и перемещаем его группу после товаров
EXTEND OBJECTS 'Группа товаров' = g AFTER i
;

Блок расширения дерева объектов

Синтаксис

EXTEND TREE name [insertPosition]

Описание

Блок расширения дерева объектов перемещает дерево объектов, уже добавленное на форму, в списке групп объектов формы. Добавить в существующее дерево новые группы объектов нельзя.

Параметры

Примеры

EXTEND FORM skus
EXTEND TREE groupTree LAST // перемещаем дерево groupTree в конец списка групп объектов
;

Блок расширения свойств и действий

Синтаксис

EXTEND PROPERTIES [formPropertyOptions] extPropertyDecl1, ..., extPropertyDeclM

Где каждый extPropertyDecl имеет следующий синтаксис:

[caption =] formPropertyName [formPropertyOptions]

Где formPropertyNameимя свойства (действия) на форме, задаваемое одним из следующих способов:

alias
propertyName(objectName1, ..., objectNameK)

Опции formPropertyOptions — те же, что и в блоке свойств и действий, и записываются так же.

Описание

Блок расширения свойств и действий изменяет свойства и действия, уже добавленные в структуру формы. Указанные опции применяются к существующему свойству (действию) так же, как если бы они были указаны при его добавлении. Опции, указанные сразу после ключевых слов EXTEND PROPERTIES, применяются ко всем перечисленным в блоке свойствам (действиям); если какая-то из опций задана и для всего блока, и для конкретного элемента, то используется значение опции для элемента.

Параметры

  • caption

    Новый заголовок свойства (действия) на форме. Строковый литерал.

  • alias

    Имя свойства (действия) на форме, заданное явно при его добавлении. Простой идентификатор.

  • propertyName(objectName1, ..., objectNameK)

    Имя свойства (действия) на форме, образованное из имени свойства и имен объектов, переданных ему в качестве параметров. Вместо имени свойства может использоваться оператор работы с объектами (NEW, EDIT, DELETE и другие).

Примеры

EXTEND FORM items
// меняем заголовок свойства name(g) и запрещаем его редактирование
EXTEND PROPERTIES 'Наименование группы' = name(g) READONLY

// убираем иконки у кнопок, добавленных на форму ранее
EXTEND PROPERTIES NOIMAGE NEW(i), DELETE(i)
;