Определение числа записей в дочернем списке и фильтр по их наличию/отсутствию

Статус
В этой теме нельзя размещать новые ответы.

Runa

Администратор
Задача: определить число записей в дочернем списке формы связи и отфильтровать те записи родительского объекта, у которых нет дочерних записей.
Объекты в структуре проекта:
- клиент;
- заказы для клиента;
- виды операций в заказах.
Форма связи на базе объекта клиента содержит дочерний список заказов для клиента:
Структура базы данных.png

В объекте клиентов добавлены поля:
- числовое поле "Заказов", в которое будет помещаться количество заказов из дочернего списка;
- переключатель "Заказы", имеющий два значения: "есть / нет", определяющий наличие или отсутствие заказов;
- составное поле "Проверка", которое будет анализировать кол-во заказов и задавать значение полю переключателя.

Формула для составного поля: [String(Заказов=0?нет:есть)]
Формула составного поля.png
Функция String с условием возвращает значение "нет" если поле "Заказов" содержит значение 0, или возвращает "есть" в противном случае.

В объекте "Заказ" добавлено числовое поле "1", для которого установлено исходное значение 1. Данное значение присваивается полю при создании новой записи и, чтобы его нельзя было случайно изменить, убрано на 8-ую вкладку, которая автоматически скрывается для дочернего списка.
Поле для определения числа записей.png

В форме связи "Клиенты" определён дочерний подчинённый объект "Заказ", а для поля числа заказов установлено суммирование по полю "1" дочернего объекта "Заказ". Т.е. при добавлении/удалении записи в дочернем списке, в записи родительского объекта будет рассчитываться число записей дочернего объекта.
Суммирование из дочернего списка.png

Для поля переключателя "Заказы" свойству "Копия из" установлено копирование значения из составного поля "[Проверка]". Данное поле используется для включения фильтра по наличию заказов у клиента в форме связи.
Фильтр по наличию записей в дочернем объекте.png

Архив проекта в приложении.
 

Вложения

Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу