Настройка фильтра для атрибутов записи
В Comindware Business Application Platform есть дополнительная возможность ограничить отображение и выбор значений для некоторых типов атрибутов. Данный функционал настраивается в разделе «Фильтр» в настройках конструктора конкретной формы, на которую вынесен атрибут.
1. Атрибут с типом данных «Пользователь».
Для ограничения выбора значений из списка пользователей платформы существует 3 варианта:
- Можно обратиться к системному справочнику пользователей и сделать фильтр по системным атрибутам, например, email, департамент.
Пример: (from a in db->_Account where a->department == "Финансовый департамент" select a->id) — отображение всех пользователей финансового департамента.
- Можно обратиться к прикладному шаблону пользователя и сделать фильтр либо по системным, либо по настроенным атрибутам данного шаблона.
Пример: (from a in db->Sotrudniki where NOT(EMPTY(a->INN)) select a->id) — отображение всех сотрудников, у кого указан ИНН.
- Можно обратиться к любому другому шаблону записи, где есть атрибут с типом данных «Пользователь».
Пример: (from a in db->contracts where GREATER(a->budget, 1000000) select a->managerRef->id) — отображение пользователей, которые являются менеджерами в договорах с бюджетом более 1000000.
2. Атрибут с типом данных «Ссылка».
- Для ограничения выбора значений из списка связанного шаблона записи напишите выражение с учётом параметров фильтрации.
Например: (from a in db->contracts where GREATER(a->budget, 1000000) select a->id) — отображение договоров с бюджетом более 1000000.
- Для ограничения выбора значений из списка связанного шаблона записи с обращением в другой шаблон записи, где используется такая же ссылка, напишите выражение со своими параметрами фильтрации.
Например: (from a in db->project where EQUALS(a->status, “Выполнен”) select a->companyRef->id) — отображение компаний с выполненными проектами.
3. Атрибут с типом данных «Коллекция».
- Фильтр для отображения
Для ограничения отображения записей в коллекции напишите выражение на языке Comindware Expression Language, например:
(from a in db->contracts where GREATER(a->budget, 1000000) select a->id) — отображение в форме компании договоров с бюджетом более 1000000.
- Фильтр для добавления
Для ограничения выбора записей напишите выражение на языке Comindware Expression Language, например:
(from a in db->contracts where GREATER(a->budget, 1000000) select a->id) — ограничение в форме компании возможности добавления договоров с бюджетом более 1000000.
Примечание : на разных формах шаблона записи можно настроить разные фильтры на атрибуты для отображения и выбора значений.