Qform DSL knowledge base

<col> ×5052 в коде

Структура: список

Один столбец списка

Может содержать 8

ТегОписаниеВключений здесь
Поля ввода 2 · включений здесь: 1 257
<opt> Условное оформление значения столбца/поля (по key + comparison) 1256
<choice> Вариант выпадающего списка (статичный или динамический через SQL/array) 1
Структура: список 2 · включений здесь: 233
<subcol> Подколонка (для type="array" в col, отображается в одной ячейке) 233
<col> не везде Один столбец списка
Текст/заголовки 1 · включений здесь: 10
<text> Текстовый блок: либо контейнер заголовков (внутри list/form), либо самостоятельный текст в форме 10
Структура: БД 1 · включений здесь: 5
<key> Описание первичного ключа таблицы (<key name="id" type="integer"/>) или ключа SQL-выборки в списке 5
Оформление (HTML) 1 · включений здесь: 1
<html> HTML-блок: alert-сообщение, информационный блок или произвольная разметка в форме 1
SQL/обработка 1 · включений здесь: 0
<sqlrepr> не везде SQL-выражение для расчёта/отображения значения (может быть и атрибутом, и вложенным тегом для…

Может встречаться внутри 3

ТегОписаниеВключений здесь
Структура: список 3 · включений здесь: 4 995
<cols> Контейнер столбцов списка (с атрибутами defaultsort, *-flag и пр.) 4803
<list> Можно использовать <list> не только как embedded во вкладке, но и как полную замену списка модуля… 192
<col> не везде Один столбец списка

Атрибуты 77

АтрибутОписаниеЗначения
Отображение 4 · включений: 6 372
caption
×5032

Заголовок столбца, видимый пользователю

_other_ПримечаниеНаименованиеПодразделениеОрганизация_qscript_
short
×538

Короткий вариант заголовка для узких колонок

_other__qscript__empty_Организация<i class='icon-eye-open'></i>
hint
×498

Подсказка (tooltip) при наведении на заголовок столбца

_other_Фамилия, имя, отчетство сотрудн…_qscript_ФайлыНаименование объекта размещения…Данное примечание будет подстав…
allowhtml
×304

Разрешить HTML-разметку в значениях столбца (1=рендер, 0=экранирование)

10
Идентификация 2 · включений: 5 059
field
×2977

Имя SQL-поля (или алиаса), значение которого выводится в столбце

_other_commenttitleiddepnamecompany_name
name
×2082

Имя столбца — используется когда колонка не привязана к field напрямую (виртуальные/вычисляемые столбцы)

_other_company_namea_project_groupa_project_divisiontitlefio
Источник данных (SQL) 4 · включений: 2 093
sqlrepr
×1866

SQL-выражение, по которому вычисляется значение столбца (используется для JOIN-полей и кросс-табличных вычислений)

_other_departments.shortpathcontragenty.fullnamepersons.fullnamecontragenty.shortnameNVOS_accounting_objects.object_…
sqlrepr-sort
×142

SQL-выражение для сортировки данного столбца (если отличается от sqlrepr)

_other_type_strstazh_harmful_numnew_risk_classifiers_category.t…new_risk_classifiers_category.v…process_title
searchrepr
×13 · пример

SQL-выражение для расширенного поиска (используется при поиске по подстроке)

CONCAT(cr_registers.number,'/',…cr_risk_areas.area_titleCASE audit_control_groups.statu…CASE audit_control_groups.statu…audit_control_groups_status.rem…contragenty.shortname
Стиль 15 · включений: 1 879
align
×1183

Горизонтальное выравнивание содержимого ячеек: center / left / right

centerrightleft
nowrap
×143

Запретить перенос текста в ячейке (1=в одну строку, 0=перенос разрешён)

10
cell-hint
×129

Подсказка (tooltip) для ячейки. Поддерживает {{row.<поле>}} для динамики

_qscript_В скобках указано фактическое с…Нет результатов для данного тес…ГодНажмите, чтобы открыть список с…Нажмите, чтобы открыть список а…
cell-class
×77

CSS-класс ячейки. Можно задавать динамически через {{row.<поле>}}

_qscript_nvos-table-separatornvos-table-before-separator
cell-color
×61

Индекс цвета фона/текста ячейки (соответствует <color index="…">). Поддерживает {{row.…}}

_qscript_
bold
×51

Выделять значения столбца жирным (1=да)

_qscript_1
class
×48

CSS-класс, применяемый ко всем ячейкам столбца (text9 / text85 / breakword / bleft / bright / narrow)

text9text85breakwordbleftbrightnarrow
color
×37

Индекс цвета текста значений (соответствует <color index="…">). Поддерживает {{row.…}}

_qscript_-12519
color-flag
×34

Имя SQL-поля строки, в котором лежит индекс цвета (динамическая раскраска по {{row.<имя>}})

acolorst_colorcapactiy_color_flagacontrolcolorflagfinishrate_color
caption-icon
×28

Имя иконки рядом с заголовком столбца (Bootstrap glyphicon без префикса "icon-")

folder-openparentsth-listcogfilemessage-new
icon-false
×23

Имя иконки для значения 0/false (для type="bool")

eye-close_empty_linkremove
icon-true
×23

Имя иконки для значения 1/true (для type="bool")

eye-openparentsmoneybookmarkcloudtint
italic
×21

Курсивное начертание значений столбца (1=да)

1
inline
×15 · пример

Подколонки type="array" размещаются на одной строке, без отдельных <td> (1=да)

1
icon
×6

Имя иконки Bootstrap glyphicon, отображаемой в ячейке (для type="checkbox" с булевыми значениями)

crownnotes-2linkpicture_id
События 1 · включений: 1 811
type
×1811

Тип отображаемого значения

int / date / string / text / textblock / bool / array / double / float / time / money / lastchanged

intdatestringtextbooltextblock
(без группы) 21 · включений: 1 764
group
×1114

Имя группы столбцов — объединяет несколько колонок под общим заголовком второго уровня

_other_МесяцМестоЗагрязняющее веществоМесяцаПодразделение
cell-hint-type не везде
×72
_qscript_
text-in-slider не везде
×61
_qscript_
shortname не везде
×21
Вид средства защитыЕдиница измеренияКласс средства защиты
ssortable не везде
×18
0
text
×13 · пример

Альтернативный текст ячейки (часто {{row.…}}), отображаемый вместо значения поля

ДеталиРезультаты1_qscript_ПройтиПройти тест
empty не везде
×12
не заданВсе организацииВсе подразделенияНе заданаВся организация
length не везде
×12
3
popup не везде
×10
fieldfactstatusflagperson
_type → type

Закомментированная версия type (через подчёркивание-префикс — приём для отключения атрибута). Не действует

floatint
lign → align
×7

Опечатка в коде: должно быть align. Не действует

center
seartchable не везде
×7
0
unsigned не везде
×6
1
Сортировка/поиск 3 · включений: 1 574
sortable
×927

Разрешить сортировку по столбцу (1) или нет (0)

01
searchable
×640

Разрешить поиск/фильтрацию по столбцу (1) или нет (0)

01
sort-direction

Направление сортировки по умолчанию: asc / desc

desc
Связи/навигация 11 · включений: 1 157
linktarget → link-target
×14 · пример

Опечатка/устаревшая форма link-target. Используйте link-target (через дефис)

_blank_qscript_
Расположение 3 · включений: 1 012
hidden
×941

Скрыть столбец (1=скрыт; доступ через "Показать скрытые столбцы")

10_qscript_
postfix
×49

Текст, добавляемый после значения ячейки (например, " %", " млн.руб.")

_qscript_ млн.руб.% % т. т.
virtual
×22

Виртуальный столбец, не привязан к полю в БД (значение только из sqlrepr или вычисляется внешне)

1_qscript_
Размеры 5 · включений: 691
width
×421

Ширина столбца в пикселях

100200501508060
maxlength
×123

Максимальная длина текста в ячейке (длиннее — обрезается с многоточием)

1002005015070300
maxwidth
×79

Максимальная ширина столбца в пикселях

2050101508042
minwidth
×63

Минимальная ширина столбца в пикселях

9030050010028150
min-width
×5

Минимальная ширина столбца (альтернативная форма minwidth через дефис)

300
Числовые форматы 5 · включений: 442
zero
×260

Текст-заглушка вместо нулевого/пустого значения (часто "-" или "—")

-0 - _empty_0.00
decimals
×72

Количество знаков после запятой для числовых типов (double/float)

1211365
decimals-autoround
×70

Авто-округление до N значащих цифр (вместо фиксированного числа знаков после запятой)

13112
null
×32

Текст вместо NULL-значения (например, "-")

-_empty_0Не повторять
separator-thousands

Разделитель тысяч в числах: пустая строка отключает разделение (года, ID и т.п.)

_empty_
Поведение/валидация 2 · включений: 36
default не везде
×30
NULL1
donotquery
×6

Не включать поле в SELECT-запрос списка (1=да; например, для виртуальных полей или скрытых колонок)

1
Поведение списка 1 · включений: 6
strike-flag
×6

Имя SQL-поля-флага: значение зачёркивается, когда поле = 1 (например, для уволенных сотрудников)

dismissedmodule_deletedobj_deletedlang_deleted

Примеры из реального кода 8

@link-target @sort-direction packages/cr/dashb3/table.tasks_statistic.xml:176
<col name="cnt_level{{l.significance_risk}}" sort-direction="desc" type="text" zero="-" group="Значимость" short="{{l.title_short_sf}}" caption="{{l.title_sf}}" link-target="_blank"
    link="{{REGISTERS_URI}}&amp;filters[company_id]={{row.company_id}}&amp;filters[f_did]={{row.depid}}&amp;filters[level_risk]={{l.significance_risk}}"
>
    <opt key="0" comparison="GT" cell-class="{{l.class}}" />
</col>
@inline packages/dkb_corporate_security/ban_structure.xml:37
<col field="arr" type="array" caption="Заблокированно" inline="1" sqlrepr="CASE dkb_corporate_security_ban_structure.type
        WHEN 1 THEN COALESCE(l1.shortname, '')
        WHEN 2 THEN COALESCE(contragenty.fullname, '')
        WHEN 3 THEN COALESCE(departments.fullname, '')
        END" >
<subcol field="type">
        <opt key="1">ГК/Дивизион: </opt>
        <opt key="2">Организация: </opt>
        <opt key="3">Подразделение: </opt>
    </subcol>
<subcol field="block_name"  sqlrepr="CASE dkb_corporate_security_ban_structure.type
        WHEN 1 THEN COALESCE(l1.shortname, '')
        WHEN 2 THEN COALESCE(contragenty.fullname, '')
        WHEN 3 THEN COALESCE(departments.fullname, '')
        END" />
</col>
@linktarget packages/firesystems/fire_objects4obj.xml:122
<col name="cnt" short="Всего" caption="Количество" hint="Количество всего пожарного обрудования" align="center" bold="1"
    link='/{{sys.workspace}}/firesystems/{{row.aform}}?externvar[obj_id]={{obj_id}}{{row.params}}' linktarget="_blank"/>
@text packages/cr/risk_finance_grade.xml:71
<col name="damage_amount_btn" caption="Сумма ущерба в сутки или общая, млн.руб." zero="0"
    text="{{row.damage_amount_btn}}"
    align="center"
    cell-color="{{row.type_color}}"
    button-class="danger"
    type="{{row.type_cell}}"
      link-entity="{{row.links}}"
    link-entity-id="{{row.id}}"
    link-form-edit="1"
    link-form-onclose="fnUpdateAllDataTables();"
    link-form-externvars="reg_id:'{{reg_id}}', parent_form:'{{parent_form}}', from:'{{from}}'" />
@searchrepr packages/audit_control_groups/audit.xml:226
<col name="status_akt_full" group="Акт" caption="Статус" type="array" searchrepr="CASE audit_control_groups.status_sm
                                                                    WHEN 'Audit_control_groups_send_plan_events' THEN 'Направлен в ПЕ в работу'
                                                                    ELSE sm_statuses.st_name
                                                                  END" align="center">
    <subcol name="status_akt"/>
    <subcol name="status_akt_adate" type="date"/>
</col>
@separator-thousands packages/edu4/instr_vv_requests_persons.xml:200
<col name="bdate" caption="Дата рождения" type="date" separator-thousands="" align="center" />
@_type packages/edu4/journal.xml:655
<col field="currency" _type="float" group="Курс провайдера" caption="Валюта" sqlrepr="IF(edu4_protocols.cost_type = 1, edu4_protocols.currency, protocols_pc.currency)" hidden="1" />
@link-control packages/cr/report_quarter.xml:271
<col name="quarter_{{i}}" group="Состояние отчёта по кварталам" caption="{{quarter_num}}" type="array" width="150"
link-entity="{{sys.file}}"
link-control="qform"
link-form-externvars="from:'{{sys.file}}', aquarter:'{{i}}', ayear:'{{filter.ayear}}', role_field:'{{row.role_field}}', a_project_group_id:'{{row.a_project_group_id}}', a_project_division_id:'{{row.a_project_division_id}}', risk_area_id:'{{row.risk_area_id}}', func_area_id:'{{row.func_area_id}}', company_id:'{{row.company_id}}', person_id:'{{row.pid}}'"
link-form-edit="1" nowrap="1"
>
    <subcol name="quarter_{{i}}_files"></subcol>
    <subcol name="quarter_{{i}}_signed"></subcol>
    <subcol name="quarter_{{i}}_exported"></subcol>
</col>