Runa
Администратор
Задача: определить число записей в дочернем списке формы связи и отфильтровать те записи родительского объекта, у которых нет дочерних записей.
Объекты в структуре проекта:
- клиент;
- заказы для клиента;
- виды операций в заказах.
Форма связи на базе объекта клиента содержит дочерний список заказов для клиента:
![Структура базы данных.png Структура базы данных.png](http://runabase.ru/forum/data/attachments/1/1134-69e6bb0b7641fc643ffabffba726fd53.jpg)
В объекте клиентов добавлены поля:
- числовое поле "Заказов", в которое будет помещаться количество заказов из дочернего списка;
- переключатель "Заказы", имеющий два значения: "есть / нет", определяющий наличие или отсутствие заказов;
- составное поле "Проверка", которое будет анализировать кол-во заказов и задавать значение полю переключателя.
Формула для составного поля:
![Формула составного поля.png Формула составного поля.png](http://runabase.ru/forum/data/attachments/1/1135-6e890cbd13ce965eb790b36b30b3e4fe.jpg)
Функция String с условием возвращает значение "нет" если поле "Заказов" содержит значение 0, или возвращает "есть" в противном случае.
В объекте "Заказ" добавлено числовое поле "1", для которого установлено исходное значение 1. Данное значение присваивается полю при создании новой записи и, чтобы его нельзя было случайно изменить, убрано на 8-ую вкладку, которая автоматически скрывается для дочернего списка.
![Поле для определения числа записей.png Поле для определения числа записей.png](http://runabase.ru/forum/data/attachments/1/1136-e43371724f0756b5a87bf6979a613e60.jpg)
В форме связи "Клиенты" определён дочерний подчинённый объект "Заказ", а для поля числа заказов установлено суммирование по полю "1" дочернего объекта "Заказ". Т.е. при добавлении/удалении записи в дочернем списке, в записи родительского объекта будет рассчитываться число записей дочернего объекта.
![Суммирование из дочернего списка.png Суммирование из дочернего списка.png](http://runabase.ru/forum/data/attachments/1/1137-dab4e514e97e95f8cb60c3dd6b020903.jpg)
Для поля переключателя "Заказы" свойству "Копия из" установлено копирование значения из составного поля "[Проверка]". Данное поле используется для включения фильтра по наличию заказов у клиента в форме связи.
![Фильтр по наличию записей в дочернем объекте.png Фильтр по наличию записей в дочернем объекте.png](http://runabase.ru/forum/data/attachments/1/1138-d92114f0ceac9e373343b985d76314e0.jpg)
Архив проекта в приложении.
Объекты в структуре проекта:
- клиент;
- заказы для клиента;
- виды операций в заказах.
Форма связи на базе объекта клиента содержит дочерний список заказов для клиента:
![Структура базы данных.png Структура базы данных.png](http://runabase.ru/forum/data/attachments/1/1134-69e6bb0b7641fc643ffabffba726fd53.jpg)
В объекте клиентов добавлены поля:
- числовое поле "Заказов", в которое будет помещаться количество заказов из дочернего списка;
- переключатель "Заказы", имеющий два значения: "есть / нет", определяющий наличие или отсутствие заказов;
- составное поле "Проверка", которое будет анализировать кол-во заказов и задавать значение полю переключателя.
Формула для составного поля:
[String(Заказов=0?нет:есть)]
![Формула составного поля.png Формула составного поля.png](http://runabase.ru/forum/data/attachments/1/1135-6e890cbd13ce965eb790b36b30b3e4fe.jpg)
Функция String с условием возвращает значение "нет" если поле "Заказов" содержит значение 0, или возвращает "есть" в противном случае.
В объекте "Заказ" добавлено числовое поле "1", для которого установлено исходное значение 1. Данное значение присваивается полю при создании новой записи и, чтобы его нельзя было случайно изменить, убрано на 8-ую вкладку, которая автоматически скрывается для дочернего списка.
![Поле для определения числа записей.png Поле для определения числа записей.png](http://runabase.ru/forum/data/attachments/1/1136-e43371724f0756b5a87bf6979a613e60.jpg)
В форме связи "Клиенты" определён дочерний подчинённый объект "Заказ", а для поля числа заказов установлено суммирование по полю "1" дочернего объекта "Заказ". Т.е. при добавлении/удалении записи в дочернем списке, в записи родительского объекта будет рассчитываться число записей дочернего объекта.
![Суммирование из дочернего списка.png Суммирование из дочернего списка.png](http://runabase.ru/forum/data/attachments/1/1137-dab4e514e97e95f8cb60c3dd6b020903.jpg)
Для поля переключателя "Заказы" свойству "Копия из" установлено копирование значения из составного поля "[Проверка]". Данное поле используется для включения фильтра по наличию заказов у клиента в форме связи.
![Фильтр по наличию записей в дочернем объекте.png Фильтр по наличию записей в дочернем объекте.png](http://runabase.ru/forum/data/attachments/1/1138-d92114f0ceac9e373343b985d76314e0.jpg)
Архив проекта в приложении.