# Редактор формы Форма - это xml-документ, который хранит настройки компоновщиков, типов фреймов, динамическое части и закладки. Настройки формы можно применить к отображениям, чтобы скопировать в нее разметку
По структуре редактор формы схож с редактором карточки. Он состоит из превью формы и дерева объектов с закладкой свойств этих объектов. ![Интерфейс редактора карточки](img/cfgFormEditor.jpg) ## Создание формы Для создания формы необходимо в обозревателе проекта выбрать Avi-файл интересующей выборки, вызвать операцию "Создать форму" и выбрать отображение, для которого будет строиться форма. После создания в каталоге появится файл разметки формы с расширением frm.xml. ## Создание закладок и динамических частей К любым объектам можно добавлять любое количество закладок и динамических частей. ### Свойства закладок и динамических частей Для закладок и динамических частей есть основные свойства: наименование, выборка и отображение, компоновщик, фрейм. Для закладок можно также указать наименование, которое будет отображаться в названии, порядок отображения, Url и номер иконки, видимость. Для динамических частей, помимо основных свойств, можно указать выравнивание и видимость. ## Фиксированные и динамические закладки *Фиксированные закладки* - способ добавления закладок с помощью `tabComposer`. В таком режиме все закладки фрейма прописываются в avm. Устанавливается по умолчанию. *Динамические закладки* - способ добавления закладок с помощью запроса. В настройке указывается выборка со списком закладок и отображение выборки, а так же дополнительные управляющие атрибуты. ### Список закладок объекта Закладки объекта с фиксированным режимом закладок отображаются списком на закладке "Список". ### Возможные закладки Закладки объекта с динамическим режимом закладок, заданные вручную отображаются на закладке "Возможные закладки". ### Добавление возможных закладок Для возможных закладок создать закладку можно 3 способами: * Создать \ Создает пустую закладку - то же самое, что создать закладку из меню дерева. * Добавить все закладки класса из справочника закладок \ Позволяет выбрать класс, с которого будут скопированы все закладки * Добавить с выбором из справочника закладок \ Отображает все закладки из справочника закладок и добавляет выбранные ![Интерфейс редактора карточки](img/cfgAvailableItems.jpg) ## Создание выборки и отображения Помимо указания выборки и отображения из существующих, можно создать выборку прямо из редактора. ![Интерфейс редактора карточки](img/cfgCreateSelOrRep.jpg)>
Для создания отображения существует несколько способов: 1. Создать новое отображение \ В выборке создается новое пустое отображение с заданным именем. 2. Копировать отображение \ Копируется указанное отображение выборки. Разметка avm будет полностью скопирована, а в Avi будет создан трейт, наследующийся от исходной выборки. 3. Создать по тексту запроса \ Анализируются параметры SQL-запроса и на его основе создается выборка. В открывшемся мастере можно задать параметры атрибутов. 4. Создать по тексту case-класса \ Аналогично 3 ## Открытие в редакторе карточки Если у объекта указан фрейм *card* - в дереве у таких объектов активирован флажок в поле "Карточка" - можно перейти в [редактор карточки](010_редактор_карточки.md) для этого объекта. Для этого достаточно нажать на этот объект в превью формы. Объекты, по которым можно перейти в редактор карточки, подсвечиваются пиктограммой. ![Интерфейс редактора карточки](img/cfgOpenCardEditor.jpg) ## Превью формы Редактор умеет отображать: - списки - определяет поля, фильтры списка - карточки - рисуются по тому же алгоритму, что в редакторе карточки. ```{note} Отображение выборки в превью может немного отличаться от того, что будет рисовать сервер приложения. Это связано с тем, что алгоритмы отрисовки немного отличаются. Сервер считает размеры в пикселях, превью - в процентах. В целом выборка в превью отображается правдоподобно. ``` ## Применение настройки формы к выборке Во время редактирования формы изменения не применяются к выборкам. Для этого нужно запустить операцию "Применить настройки формы к выборкам". Система проанализирует внесенные изменения и отобразит их на экране, после чего будет ждать подтверждения проведения операции от пользователя.