<elements>
Структура: форма
Все элементы формы: поля, html-вставки, группы полей (fieldset) и прочее необходимо оборачивать в этот тег. Без этого работать не будет.
Кроме того, тег полезен тем, что в нём можно перечислять атрибуты, которые будут наследованы всеми дочерними элементами. Это удобно, например, когда необходимо задать ширину для всех полей формы сразу.
Также внутрь можно засунуть condition, который будет добавлен ко всем полям.
Тег используется внутри тегов: form (если нет вкладок), header, tab и footer.
Может содержать 22
| Тег | Описание | Включений здесь |
|---|---|---|
| Поля ввода | ||
<field> |
Поле для ввода информации в форму. | 5048 |
<condition> |
Условие отображения/применимости элемента (зависит от значения другого поля) | 89 |
| Оформление (HTML) | ||
<html> |
HTML-блок: alert-сообщение, информационный блок или произвольная разметка в форме | 721 |
<hr> |
HTML <hr> — горизонтальная линия-разделитель в форме | 134 |
| Текст/заголовки | ||
<legend> |
Легенда списка — описание цветов/иконок, используемых в столбцах | 167 |
<text> |
Текстовый блок: либо контейнер заголовков (внутри list/form), либо самостоятельный текст в форме | 147 |
| Структура: список | ||
<list> |
Можно использовать <list> не только как embedded во вкладке, но и как полную замену списка модуля… |
156 |
| Структура: форма | ||
<fieldset> |
Вложенный набор записей (one-to-many или M2M через дочернюю таблицу) | 143 |
<elements> |
Все элементы формы: поля, html-вставки, группы полей (fieldset) и прочее необходимо оборачивать в… |
4 |
| SQL/обработка | ||
<finishsql> |
Финализирующий SQL — выполняется после store/delete (для пересчётов/триггеров на стороне приложения) | 85 |
<onchange> |
Обработчик изменения поля: do=update обновляет связанные элементы, do=js — JS-выражение | 23 |
<mod> |
Подгружает значение поля из SQL: | 2 |
<php> |
PHP-блок (выполняется на сервере) — onsuccess/store/beforestore/ondeleted | 1 |
<javascript> не везде |
JS-блок, выполняющийся в браузере (onsuccess/afterinit/presubmit/update/ondeleted/onerror) | |
<sqlfordefault> не везде |
SQL для расчёта default поля | |
<sqlforupdate> не везде |
Альтернатива записи в основную таблицу — выполнить произвольный SQL: | |
<sqlforvalue> не везде |
SQL для расчёта value поля | |
| Кнопки/действия | ||
<button> |
Кнопка действия (открыть форму, выполнить SQL/JS/PHP-блок) | 75 |
| Структура: БД | ||
<table> |
Имя SQL-таблицы (с опциональным database, impl-delete, name) | 2 |
| Метаданные | ||
<properties> |
Контейнер свойств элемента (для расширяемых атрибутов) | 1 |
| Отчёты | ||
<tab> не везде |
Описание вкладки (tab) формы — группа элементов на отдельной странице | |
| Параметры | ||
<param> не везде |
Один параметр, передаваемый в дочернюю форму/модуль/список | |
Может встречаться внутри 8
| Тег | Описание | Включений здесь |
|---|---|---|
| Структура: форма | ||
<form> |
Основной тэг формы. В нём описываются вкладки и поля формы.… | 636 |
<fieldset> |
Вложенный набор записей (one-to-many или M2M через дочернюю таблицу) | 162 |
<elements> |
Все элементы формы: поля, html-вставки, группы полей (fieldset) и прочее необходимо оборачивать в… |
4 |
| Отчёты | ||
<tab> |
Описание вкладки (tab) формы — группа элементов на отдельной странице | 505 |
| Текст/заголовки | ||
<header> |
Header-блок печатной/excel-формы отчёта | 49 |
<footer> |
Footer-блок печатной/excel-формы отчёта | 6 |
<text> |
Текстовый блок: либо контейнер заголовков (внутри list/form), либо самостоятельный текст в форме | 4 |
| Структура: список | ||
<list> не везде |
Можно использовать <list> не только как embedded во вкладке, но и как полную замену списка модуля… |
|
Атрибуты 9
| Атрибут | Описание | Значения |
|---|---|---|
| Размеры | ||
width |
Общая ширина блока элементов формы в пикселях |
500956600550670450 |
size |
Размер input/textarea по умолчанию для всех полей блока |
774561607055 |
| Числовые форматы | ||
null |
Разрешить null-значения для всех полей блока (1=допустимы пустые, 0=обязательны к заполнению) |
01 |
| Поведение/валидация | ||
readonly |
Условие read-only для всех полей блока (значение или {{выражение}}) |
_qscript_1 |
donotquery |
Не загружать данные из БД (1) — форма создаётся пустой; используется в формах-обёртках/мастерах |
10_qscript_ |
| (без группы) | ||
ucfirst |
Авто-капитализация первой буквы текстовых значений (1=да, 0=сохранять как введено) |
0 |
minrole не везде |
31 |
|
| Источник данных (SQL) | ||
source |
Имя дополнительной SQL-таблицы — все поля внутри блока сохраняются в неё (one-to-one с основной таблицей) |
edu4_instruction_groupsmed_akt_detailsedu4_courses_preferencesedu4_courses_detailsedu4_educenters_detailsincidents_vid_types_relations |
| Расположение | ||
Примеры из реального кода 3
<elements source="edu4_courses_preferences">
<field name="repeat_months" prompt="Повторить раз в"
type="radiobutton" inline="1" default="3"
help="Указать количество месяцев, через которое необходимо повторить инструктаж."
>
<condition field="shift_testing_only" comparison="NE" value="0" />
<choice key="0">Не повторять</choice>
<choice key="3">3 мес.</choice>
<choice key="6">6 мес.</choice>
<choice key="12">12 мес.</choice>
</field>
</elements>
<elements ucfirst="0" strict="0" width="670">
<field name="prin"
prompt-bold="1"
prompt="Предназначение"
type="radiobutton"
inline="1"
readonly="1"
default="text"
>…</field>
<field prompt-bold="1" name="domain" prompt="Домен" maxlength="31" required="1" />
<field name="language_code" prompt-bold="1" prompt="Язык" type="dropdown" required="1" width="200" >…</field>
<field name="check_required" label="Требуется проверка перевода" type="checkbox" css-class="attach_checkbox" width="0" default="1"/>
<field name="form" prompt="Без формы не будет работать JOIN JSON_TABLE" maxlength="1023" default='["no_form"]' hidden="1 " readonly="1" />
<field name="original" prompt-bold="1" prompt="Оригинал" required="1"/>
<field name="translation" prompt="Перевод" type="textarea" >…</field>
<!-- … ещё 1 -->
</elements>
<elements hidden="1">
<text continue="1" width="258">…</text>
<text name="bbs_dep" style="margin-left: 258;" continue="1" class="test" prompt=" ">…</text>
<field name="a_project_group_id_bbs" prompt="Группа компаний"
type="dropdown" continue="1" width="135"
>…</field>
<field name="a_project_division_id_bbs" prompt="Дивизион"
type="dropdown" continue="1" width="135" reload-on-update="1"
>…</field>
<!-- … ещё 1 -->
</elements>