Недавно столкнулся с задачей отфильтровать контакты по наличию фото.
Реализуется задача путем добавления пользовательского фильтра в сервис sq_Contact.

  1. Находим сервис Contacts\General\Main Grid\sq_Contact и добавляем в его в блок условий WHERE новый Exists Filter

    2.png

  2. Назовите его PhotoExistsFilter

    3.png

  3. В блок FROM добавьте таблицу tbl_Contact, задайте ей псевдоним tbl_ContactPhoto

    4.png

  4. В его блок Select добавьте колоку ID из таблицы tbl_ContactPhoto

    5.png

  5. В блок WHERE из таблицы tbl_Contact AS tbl_ContactPhoto добавьте фильтр сравнения (Compare Filter) c проверкой условия tbl_Contact.ID = tbl_ContactPhoto.ID

    6.png

  6. В этот же блок WHERE из таблицы tbl_Contact AS tbl_ContactPhoto добавьте пользовательский булевский фильтр. Укажите заголовок: Фото есть, Группа - Контакт

    7.png

  7. В блок Select пользовательского булевского фильтра добавьте SQL-колонку CustomSQLColumn с содержанием: (case when Photo is null then 0 else 1 end)

    8.png

  8. В Блоке FROM задайте таблицу tbl_Contact и задайте ей псевдоним ContactPhoto

    9.png

  9. В поcледний блок WHERE добавьте еще один фильтр сравнения:

    10.png

  10. Проверьте, чтоб родительский узел фильтра Exists Filter не был отмечен галочкой (должен быть в сосотянии отключен). Все остальные элементы должны быть включены.
  11. Сохраните изменения, перезапустите клиентскую часть. Проверьте функционал:

    12.png

Нравится

Поделиться

0 комментариев
Показать все комментарии