<filter>
Структура: фильтры
Один фильтр списка
Может содержать 8
| Тег | Описание | Включений здесь |
|---|---|---|
| Поля ввода | ||
<choice> |
Вариант выпадающего списка (статичный или динамический через SQL/array) | 2765 |
<condition> |
Условие отображения/применимости элемента (зависит от значения другого поля) | 193 |
| SQL/обработка | ||
<sqlrepr> |
SQL-выражение для расчёта/отображения значения (может быть и атрибутом, и вложенным тегом для… | 290 |
<onchange> |
Обработчик изменения поля: do=update обновляет связанные элементы, do=js — JS-выражение | 103 |
<mod> |
Подгружает значение поля из SQL: | 29 |
<sqlrepr_join> |
SQL JOIN, добавляемый к запросу списка | 1 |
| Текст/заголовки | ||
<help> |
Ссылка на справочную статью (key — ID статьи в системе помощи) | 6 |
| (без группы) | ||
<s> не везде |
1 | |
Может встречаться внутри 3
| Тег | Описание | Включений здесь |
|---|---|---|
| Структура: фильтры | ||
<filters> |
Контейнер фильтров списка | 1228 |
| (без группы) | ||
<disabled_filters> не везде |
||
| Структура: доступ | ||
<access> не везде |
Декларация прав доступа к сущности (entity, role-model, marker-flags) | |
Атрибуты 46
| Атрибут | Описание | Значения |
|---|---|---|
| Идентификация | ||
name |
Имя фильтра — для доступа через {{filter.<имя>}} |
_other_ayearfc_sdate_fc_fdate_archivestatus |
field |
SQL-поле для фильтрации (если sqlrepr не указан, фильтрация идёт по этому полю) |
_other_typeayearstatusidastatus |
table |
Имя SQL-таблицы для autocomplete-фильтра (источник вариантов) |
i4c_other_edu4_coursesproject_analytics_checksproject_analytics_incidentsgrade |
| Отображение | ||
caption |
Видимый заголовок фильтра |
_other_СтатусГодПоказатьТип_empty_ |
label |
Подпись справа от чекбокса/контрола фильтра |
_other_Включ. подчинённыеГруппироватьТолько итоговые значенияИспользуемыеСкрытые |
help |
Подсказка (tooltip) над иконкой "?" справа от фильтра |
Отход относится к категории твё…_empty__qscript_Источник загрязнения атмосферыФункциональное назначение объек…Список ограничен отходами данно… |
allowhtml |
Разрешить HTML-разметку в значениях вариантов фильтра (1=да) |
1 |
prompt |
Подпись слева от контрола фильтра (используется наряду с caption) |
ПодразделениеtttПодразделение АудитораПодразделение Наблюдаемого |
allowbr |
Разрешить переносы строк в значениях вариантов (1=да; для длинных названий) |
1 |
hint не везде |
Стаж работы с химическим оружие… |
|
| События | ||
type |
Тип контрола фильтра dropdown / radiobutton / checkbox / checkboxgroup / autocomplete / date / int / string |
dropdownradiobuttoncheckboxgroupcheckboxdateautocomplete |
| Поведение/валидация | ||
default |
Значение фильтра по умолчанию (для радиогруппы можно "all") |
_qscript__empty_10all2 |
value |
Текущее значение фильтра ({{выражение}} для динамической установки) |
_qscript_0 |
maxval |
Максимально допустимое значение для type="int" фильтра |
9991007512 |
minval |
Минимально допустимое значение для type="int"/type="slider" фильтра |
_int_23 |
disabled |
Условие блокировки фильтра ({{выражение}} или 1) |
_qscript_ |
| Сортировка/поиск | ||
extended |
Расширенный режим: поиск по подстроке вместо точного совпадения (1=да) |
10 |
restricted |
Ограничить выпадающий список только теми значениями, которые есть в данных списка (1=да) |
1 |
preserve |
Сохранять выбранное значение между сессиями пользователя (1=да) |
10 |
preserve-name |
Имя cookie/storage для сохранения значения фильтра между сессиями (если отличается от name) |
filter_by_userpermit_ps_from_rolecontractors_filter_ponot_approveldonot_reportingcontragenty_externalsource |
search-anywhere |
Поиск по подстроке (LIKE %x%) вместо префиксного поиска (1=да) |
1 |
reload |
Перезагружать фильтр при изменении других фильтров (1=да; для каскадных фильтров) |
1 |
reset-to |
Значение, к которому фильтр сбрасывается при нажатии "Сбросить" (если отличается от default) |
_qscript_-1_empty_01all |
searchable |
Разрешить поиск по фильтру (для autocomplete/checkboxgroup типов; 1=да) |
1 |
sortable |
Разрешить сортировку вариантов фильтра (1=да) |
1 |
| Расположение | ||
prefix |
Текст-префикс перед контролом фильтра (например, "с" для интервалов дат) |
cповЗасот |
postfix |
Текст-постфикс после контрола фильтра (например, "году") |
годугодакварталегодМесяцКвартал |
continue |
Размещать на одной строке со следующим фильтром (1=да) |
1 |
interval-next |
Размер отступа до следующего фильтра: none / small / normal / big / 0 |
nonenormal |
| Источник данных (SQL) | ||
sqlrepr |
SQL-выражение для фильтрации. "1" означает, что условие задаётся внутри тега фильтра (через CDATA) |
1_qscript__empty_ |
| Размеры | ||
width |
Ширина контрола фильтра в пикселях |
1190508110070 |
maxheight |
Максимальная высота dropdown-списка вариантов в пикселях (для длинных списков) |
440250450200 |
| (без группы) | ||
hide-if не везде |
emptyone choice |
|
pref |
Префикс фильтра (?). Бинарный флаг 1 для checkbox-фильтров |
1 |
external-select |
Использовать внешний селектор (1=да; URL задаётся через external-select-url, например для дерева подразделений) |
1 |
external-select-url |
URL внешнего селектора (например, /dtree?embeded=1&company_id={{company_id}} для выбора подразделения) |
_qscript_ |
minnval → minval |
Опечатка в коде: должно быть |
018 |
field_acontrol не везде |
acontrol |
|
deault не везде |
1 |
|
nowpar не везде |
0 |
|
noprompt не везде |
1 |
|
ucfirst не везде |
0 |
|
| Стиль | ||
css-class |
CSS-класс контейнера фильтра |
q-additional-filter-monthattach_checkboxq-additional-filter-date-interv…q-additional-filter-deppath |
inline |
Размещать варианты фильтра инлайн в одну строку (1=да; для radiobutton/checkboxgroup) |
1 |
nowrap |
Запретить перенос текста заголовка фильтра (0=перенос разрешён) |
0 |
Примеры из реального кода 8
<filter name="srok" caption="Период" prompt="ttt" type="dropdown" default="">
<sqlrepr>
<![CDATA[
<!-- if({{filter.srok}} = 10) { -->
(bbs_audit.adate >= '{{filter.fc_sdate_}}') AND (bbs_audit.adate <= '{{filter.fc_fdate_}}')
<!-- }else{ -->
(bbs_audit.adate >= CURRENT_DATE - INTERVAL ELT('{{filter.srok}}', 6, 12, 24) MONTH)
<!-- } -->
]]>
</sqlrepr>
<choice key="">За всё время</choice>
<!-- Могли бы передавать сразу кол-во месяцев, но на всякий случай, в целях безопасности передаем число, для ELT-->
<choice key="1">За последние полгода</choice>
<choice key="2">За последний год</choice>
<choice key="3">За последние 2 года</choice>
<choice key="10">Интервал дат</choice>
</filter>
<filter prefix="c" type="date" name="fc_sdate_" sqlrepr="1" default="{{sys.year}}-01-01" width="119" value="{{fc_sdate_}}">
<condition field="srok" value="10" />
</filter>
<filter field="category" caption="Категория объекта" type="checkboxgroup" inline="1" allowhtml="1" default="{{filter_categoty_nvos}}" >
<choice key="1"><![CDATA[<span class="label label-important">I</span>]]></choice>
<choice key="2"><![CDATA[<span class="label label-warning">II</span>]]></choice>
<choice key="3"><![CDATA[<span class="label label-info">III</span>]]></choice>
<choice key="4"><![CDATA[<span class="label label-success">IV</span>]]></choice>
</filter>
<filter field="pid_hse_owner" caption="Владелец программы ОТиПБ"
type="autocomplete" restricted="1" default="" allowbr="1" extended="1" >
<include src="includes/choice_person.inc" nodeid="0" >
<body sql_condition>
<![CDATA[
AND persons.id IN (select pid_hse_owner from edu4_courses where pid_hse_owner != 0)
]]>
</body>
</include>
</filter>
<filter name="person_include_fired" type="checkbox" label="Включить уволенных" default="0" pref="1" />
<filter field="sc_id" name="sc_id" caption="Категория услуг" help="Категория предоставляемых услуг"
type="dropdown" default="" nowrap="0" extended="1">
<sqlrepr>
<!-- if({{filter.sc_id}}!=) { -->
sc4contragenty.sc_id = '{{filter.sc_id}}'
<!-- } -->
</sqlrepr>
<choice key="">-</choice>
<choice key="id" field="title">
<sql>
<![CDATA[
SELECT services_category.id, services_category.title
FROM services_category
WHERE !services_category.deleted
AND services_category.showinweb
]]>
</sql>
</choice>
</filter>
<filter name="f_did" css-class="q-additional-filter-deppath" caption="Подразделение"
prompt="Подразделение" nowrap="0" type="dropdown" restricted="1" allowbr="1"
external-select="1" >
<mod by="php" on="all">
<![CDATA[
$arElement['external-select-url'] = '/{{sys.workspace}}/dtree?embeded=1&company_id={{xmlsafe(company_id)}}';
]]>
</mod>
<sqlrepr>
(
(tu_actions.did = '{{filter.f_did}}')
OR
tu_actions.did IN (select descendant AS dd FROM departments_relations WHERE ancestor = '{{filter.f_did}}')
)
</sqlrepr>
<choice key="">Все подразделения</choice>
<include src="includes/choice_deppath.inc"
company_id="{{company_id}}"
hideroot="1"
type_disbanded="filter"
/>
</filter>
<filter type="radiobutton" caption="Наряды-допуски" name="not_approvel" field="not_approvel" sqlrepr="contragenty.not_approvel='{{filter.not_approvel}}'" preserve="1" preserve-name="not_approvel" >
<choice key="">Все</choice>
<choice key="1">не требуются</choice>
<choice key="0">требуются</choice>
</filter>