Список записей по MySql запросу
Специальный тип поля, который отображает список записей по пользовательскому запросу к базе данных. Запрос можно построить к любой сущности в приложении.
Давайте рассмотрим работу поля на конкретном примере. И так у нас есть сущность Проекты и подчиненная сущность Задачи. Наша цель - в списке проектов показать список задач по каждому проекту.
Для этого в сущности Проекты создаем поле Задачи, выбираем тип "Список записей по MySql запросу" и указываем необходимое нам условие выборки данных. В опции "Шаблон заголовка" указываем, какие поля будут выводится в списке.
Новая возможность для версии 2.8: На вкладке "Показать как" у вас есть возможность настроить вывод выбранных записей. Если записей много, их можно отобразить как счетчик, при нажатии на который будет открываться всплывающее окно с полным списком выбранных записей.
Настройка условий
В условии можно использовать пользовательские и системные поля. Рассмотрим условие из нашего примера:
e.parent_item_id=[id]
e.parent_item_id - это ID родительской записи в сущности Задачи.
[id] - это ID текущей сущности (Проекты).
Системные поля
e.id
- идентификатор записи
e.parent_item_id
- идентификатор родительской записи
e.date_added
- дата добавления записи (Unix Timestamp)
e.created_by
- идентификатор пользователя создавшего запись
Выберем задачи с определенным статусом:
[50] IN (10,20,30)
50 - это ID поля Статус. 10,20,30 - это ID статусов. Таким образом, для выбора всех подчиненных задач с определенным статусом, нам нужно составить следующее условие:
e.parent_item_id=[id] and [50] IN (10,20,30)
В условии так же можно применить и вложенные запросы, например:
[255] in (select id from app_entity_45 where field_88 in (40,50,60))
255 - это поля с типом Сущность.