Перейти к содержанию

Настройка фильтра ссылочного поля по другому ссылочному полю

В Comindware Business Application Platform для выбора значения из другого шаблона записи необходимо использовать атрибут с типом данных «Ссылка». По умолчанию в выпадающем списке отображаются все записи, но в некоторых сценариях необходимо показывать только определенные записи.

Для ограничения отображения и выбора записи необходимо использовать функционал «Фильтр» (см. Настройка фильтра для атрибутов записи) ссылочного поля в настройках конструктора конкретной формы, на которой вынесен данный атрибут.

 

Сценарий: при создании заявки на командировку сотруднику нужно выбрать аэропорт, в который ему необходимо прибыть. Выбирать из всех аэропортов не совсем удобно, желательно отфильтровать аэропорты по выбранной стране и городу командировки.

 

Настройка:

1. Создайте:

  • Шаблон записи «Страны» (countries) с атрибутами:
    • Название — текст.
  • Шаблон записи «Города» (cities) с атрибутами:
    • Название — текст;
    • Страна (country) — ссылка на шаблон записи «Страны».
  • Шаблон записи «Аэропорты» (airports) с атрибутами:
    • Название — текст;
    • Город (city) — ссылка на шаблон записи «Города».
  • Шаблон записи «Заявки на командировки» с атрибутами:
    • Название — текст;
    • Страна (request_country) — ссылка на шаблон записи «Страны»;
    • Город (request_city) — ссылка на шаблон записи «Города»;
    • Аэропорт (request_airport) — ссылка на шаблон записи «Аэропорты».

2.  На форме создания заявки напишите выражения на языке Comindware Expression Language:

  • Для атрибута «Город» (request_city) фильтр для отображения только городов выбранной страны:
 (from a in db->cities where a->country == $request_country select a->id)
  • Для атрибута «Аэропорт» (request_airport) фильтр для отображения только аэропортов выбранного города:
 (from a in db->airports where a->city == $request_city select a->id)

3. Проверьте работу фильтров, выбрав сначала страну, потом город, потом аэропорт. В выпадающем списке показываются записи с учетом прав доступа согласно роли пользователя. При отсутствии записей для выбора проверьте права доступа (см. Настройка привилегий в ролях).

Примечание : используя правила для формы можно настроить динамическое отображение атрибутов для более удобного заполнения (см. Настройка динамического отображения атрибутов).