Qform DSL
Полная справка по тегам и атрибутам Qform DSL — XML-языка для генерации форм, списков и отчётов в ASUPB.
<qform>
Корневой тег DSL Qform
<qcalendar>
Системный qcalendar-элемент (для интеграции с календарной выборкой)
<doctype>
Декларация типа документа: <!DOCTYPE qform PUBLIC "-//Q//DTD QForm 2.5 Transitional//RU" "qform.dtd">. Обязательная вторая строка любого Qform XML-файла, задаёт версию DSL.
Все теги по группам
Поля ввода
<choice>
Вариант выпадающего списка (статичный или динамический через SQL/array)
<field>
Поле для ввода информации в форму.
<condition>
Условие отображения/применимости элемента (зависит от значения другого поля)
<opt>
Условное оформление значения столбца/поля (по key + comparison)
<row>
Одна строка default-данных (значение, подставляемое в <cell>)
<cell>
Ячейка default-данных fieldset (внутри <defaultdata> для предзаполнения по…
<fields>
Группа полей (внутри fieldset, определяет колонки)
Структура: список
<col>
Один столбец списка
<list>
Можно использовать <list> не только как embedded во вкладке, но и как полную…
<cols>
Контейнер столбцов списка (с атрибутами defaultsort, *-flag и пр.)
<subcol>
Подколонка (для type="array" в col, отображается в одной ячейке)
<groupcol>
Группировка строк списка — первый уровень
<colorcol>
Спец-столбец, чьё значение задаёт цвет всей строки списка
<subgroupcol>
Группировка строк списка — второй уровень (внутри groupcol)
SQL/обработка
<onchange>
Обработчик изменения поля: do=update обновляет связанные элементы, do=js…
<sql>
SQL-запрос: основной запрос списка, или вспомогательный запрос для…
<mod>
Подгружает значение поля из SQL:
<finishsql>
Финализирующий SQL — выполняется после store/delete (для пересчётов/триггеров на…
<sqlrepr>
SQL-выражение для расчёта/отображения значения (может быть и атрибутом, и…
<javascript>
JS-блок, выполняющийся в браузере…
<check>
Блок проверки данных перед сохранением (SQL или PHP, с critical/некритическим…
<php>
PHP-блок (выполняется на сервере) — onsuccess/store/beforestore/ondeleted
<onclick>
Обработчик клика по кнопке: do=js/sql/update/php
<where>
Дополнительное условие WHERE для SQL-запроса списка
<sqlforvalue>
SQL для расчёта value поля
<loadsql>
SQL, выполняемый при загрузке формы (для подкачки доп.данных)
<defaultdata>
Блок предзаполнения строк fieldset при создании новой родительской записи
<scripts>
Контейнер JS-блоков
<sqlforupdate>
Альтернатива записи в основную таблицу — выполнить произвольный SQL:
<defaultssql>
SQL для подгрузки значений по умолчанию полей формы при создании новой записи
<sqlfordefault>
SQL для расчёта default поля
<sqlrepr_join>
SQL JOIN, добавляемый к запросу списка
<store>
Действие сохранения данных (специфический контекст)
Текст/заголовки
<text>
Текстовый блок: либо контейнер заголовков (внутри list/form), либо…
<title>
Заголовок списка/формы
<after>
HTML-блок, выводимый после содержимого списка/формы
<windowtitle>
Заголовок окна браузера (вкладки)
<help>
Ссылка на справочную статью (key — ID статьи в системе помощи)
<before>
HTML-блок, выводимый перед содержимым списка/формы
<legend>
Легенда списка — описание цветов/иконок, используемых в столбцах
<message>
Сообщение/уведомление, выводимое пользователю при определённом событии
<header>
Header-блок печатной/excel-формы отчёта
<icon>
Иконка-элемент (с index — имя glyphicon)
<description>
Описание модуля/контрола (для системных рекордов в *.control.xml)
<circle>
Круглая иконка-индикатор с числом (для дашбордов)
<bodyparam>
Параметр body-блока (внутри text — переменная подстановки)
<footer>
Footer-блок печатной/excel-формы отчёта
<details>
Блок details (для раскрывающихся деталей формы)
<prompt>
Текст подписи (как самостоятельный тег — для редких случаев)
Структура: БД
<table>
Имя SQL-таблицы (с опциональным database, impl-delete, name)
<key>
Описание первичного ключа таблицы (<key name="id" type="integer"/>) или ключа…
<database>
Имя SQL-базы (для cross-database таблиц)
<this_key>
Имя поля внешнего ключа в дочерней таблице fieldset, ссылающегося на…
<foreign_key>
Имя поля внешнего ключа (для связи с родительской таблицей)
<field_key>
Имя SQL-поля, играющего роль ключа в выборке (для редких случаев когда…
Структура: форма
<elements>
Все элементы формы: поля, html-вставки, группы полей (fieldset) и прочее…
<form>
Основной тэг формы. В нём описываются вкладки и поля формы.…
<fieldset>
Вложенный набор записей (one-to-many или M2M через дочернюю таблицу)
Структура: фильтры
Параметры
<param>
Один параметр, передаваемый в дочернюю форму/модуль/список
<array>
Имя массива параметров для передачи списка значений между формами
<params>
Контейнер параметров (для button/list/include — передаются в открываемую…
Оформление (HTML)
<html>
HTML-блок: alert-сообщение, информационный блок или произвольная разметка в…
<hr>
HTML <hr> — горизонтальная линия-разделитель в форме
<htmlbefore>
Inline HTML, вставляемый перед элементом (для произвольной разметки)
<div>
HTML div-контейнер (для встраивания произвольной разметки, обычно в дашбордах)
<htmlafter>
Inline HTML, вставляемый после элемента
<style>
CSS-стили: либо как тег внутри html для inline-стилей, либо как атрибут
<br>
HTML <br> — перенос строки
<script>
Inline JS-скрипт (для встраиваемых дашбордов с Highcharts и пр.)
<p>
HTML параграф (для встраивания форматированного текста)
<td>
HTML ячейка таблицы
<path>
SVG-путь — описание контура векторной графики
<svg>
SVG-векторная графика (используется для встроенных иконок дашборда)
<b>
HTML жирное начертание (тег <b>)
<sub>
HTML подстрочный индекс
<tr>
HTML строка таблицы
<a>
HTML ссылка
<sup>
HTML надстрочный индекс
<cssfile>
Путь к подключаемому CSS-файлу формы
Корневой
<qform>
Корневой тег DSL Qform
<qcalendar>
Системный qcalendar-элемент (для интеграции с календарной выборкой)
<doctype>
Декларация типа документа: <!DOCTYPE qform PUBLIC "-//Q//DTD QForm 2.5…
Источники данных
<name>
Имя SQL-таблицы (внутри <table><name>...</name></table>) или имя другой сущности
<value>
Значение для condition/where/key — используется в виде дочернего элемента, когда…
<entity>
Имя сущности (путь package/form), используется в access и для ссылок
<key_value>
Значение ключа (для лукапов в <key key="N">value</key>)
<source>
Дополнительный источник данных (one-to-one таблица для elements source="…")
<sources>
Контейнер дополнительных источников (см. <source>)
<ccounts>
Связанные счётчики (специфическое использование в некоторых модулях)
<data>
Блок данных (системное использование)
Кнопки/действия
<button>
Кнопка действия (открыть форму, выполнить SQL/JS/PHP-блок)
<buttons>
Контейнер кнопок списка (под таблицей)
<buttonSave>
Текст кнопки "Сохранить" (переопределяет стандартный)
<buttonApply>
Текст кнопки "Применить" (переопределяет стандартный)
<buttonEdit>
Текст кнопки "Редактировать" (переопределяет стандартный)
<buttonNewrec>
Текст кнопки "Создать новую запись" (переопределяет стандартный)
<dialogSaved>
Текст всплывающего диалога "Сохранено" (переопределяет стандартный)
<reportsBtn>
Текст/состояние кнопки "Отчёты" (переопределяет стандартный)
Отчёты
<tab>
Описание вкладки (tab) формы — группа элементов на отдельной странице
<reports>
Контейнер описаний отчётов, доступных из списка
<alias>
SQL-алиас таблицы (используется в reports или в includes)
<report>
Описание одного отчёта (с alias и параметрами)
<reportfile>
Путь к файлу отчёта
<reportform>
Тег внутри <list> или <form> модуля, привязывающий конкретный отчёт-печатную…
<reportlist>
Список отчётов (для совместного экспорта)
Стиль
Структура: доступ
<access>
Декларация прав доступа к сущности (entity, role-model, marker-flags)
<marker_delete>
Флаг разметки доступа на удаление (1=отображать индикатор)
<marker_edit>
Флаг разметки доступа на редактирование (1=отображать индикатор)
<check_access>
Проверка доступа к форме/действию (act=form, by=sql/php). Возвращаемое число…
<add_new>
Минимальная роль для создания записи (внутри minroles)
<del_all>
Минимальная роль для удаления всех записей (внутри minroles)
<del_own>
Минимальная роль для удаления своих записей (внутри minroles)
<edit_all>
Минимальная роль для редактирования всех записей (внутри minroles)
<edit_field>
Минимальная роль для редактирования отдельных полей (внутри minroles)
<edit_own>
Минимальная роль для редактирования своих записей (внутри minroles)
<minroles>
Минимальные роли для каждого действия (внутри <access>): add_new, read_all…
<read_all>
Минимальная роль для чтения всех записей (внутри minroles)
<read_own>
Минимальная роль для чтения своих записей (внутри minroles)
<add_own>
Минимальная роль для добавления своих записей (внутри minroles)
<auth>
Описание правил аутентификации/авторизации
<delete>
Действие удаления (системное использование в access/control)
<editor>
Описание роли с правом редактирования (внутри roles/access)
<reader>
Описание роли с правом чтения (внутри roles/access)
<roles>
Контейнер описаний ролей в access (для нестандартных моделей доступа)
<rules>
Контейнер правил доступа
<writer>
Описание роли с правом записи (внутри roles/access)
(без группы)
<export> не везде
<action> не везде
<method> не везде
<url> не везде
<card> не везде
<geo> не везде
<input> не везде
<belongsto> не везде
<calendar-source> не везде
<json> не везде
<type> не везде
<externvar> не везде
<item> не везде
<orderby_join> не везде
<dashboard> не везде
<disabled_filters> не везде
<buttonView> не везде
<category> не везде
<dbstructure> не везде
<limit> не везде
<buttonCancel> не везде
<categories> не везде
<fragment> не везде
<h3> не везде
<h4> не везде
<map> не везде
<old_sql> не везде
<payload> не везде
<popup> не везде
<s> не везде
<span> не везде
<success-action> не везде
<sys_user_id> не везде
Значения по умолчанию
Модули/контролы
<module>
Регистрация модуля в системе (в *.control.xml файлах)
<qcontrol>
Системный qcontrol-элемент (для регистрации интерфейсных контролов)
<control>
Контейнер контролов модуля — содержит модули, отчёты и подобные регистрации
<calendar>
Описание календарного представления списка
<calendars>
Контейнер календарных представлений
<parent>
Описание родительской сущности (для дерева)
<rassl>
Доменная сущность "расследование" (специфика incidents)
<view>
Дополнительный режим отображения списка (помимо стандартного грида)
<authorrepr>
SQL-выражение для отображения автора записи
<tree>
ЭКСПЕРИМЕНТАЛЬНЫЙ. Пока никоем образом не работает!
<workspace>
Описание рабочего пространства (workspace) системы
Deprecated
Метаданные
<ident>
Идентификатор (контекст-зависимое использование)
<properties>
Контейнер свойств элемента (для расширяемых атрибутов)
<structure>
Описание структуры данных (системное)
Сортировка/поиск
<searchrepr> не везде
SQL-выражение для поиска (как тег — для длинных выражений)
<orderby>
Сортировка по умолчанию (как тег — для длинных выражений)