Связи (relations): различия между версиями
Sidminik (обсуждение | вклад) |
Sidminik (обсуждение | вклад) |
||
| Строка 35: | Строка 35: | ||
Мы видим, что среди полей источника <code>Indicators</code> есть ссылка на родительскую таблицу <code>LaboratoryFilter</code>. | Мы видим, что среди полей источника <code>Indicators</code> есть ссылка на родительскую таблицу <code>LaboratoryFilter</code>. | ||
===Алгоритм=== | |||
Таким образом, для реализации такого типа отчета нужно: | Таким образом, для реализации такого типа отчета нужно: | ||
*[[Связи (relations)#Создание связи|создать связь между источниками данных]]; | *[[Связи (relations)#Создание связи|создать связь между источниками данных]]; | ||
| Строка 40: | Строка 41: | ||
*перетащить в дереве данных из подчиненного источника поле <code>[Indicators.ind_name]</code>. | *перетащить в дереве данных из подчиненного источника поле <code>[Indicators.ind_name]</code>. | ||
===Результат=== | |||
Итоговый отчет будет выглядеть следующим образом: | |||
[[Файл: data_link_4.png|center|border]] | [[Файл: data_link_4.png|center|border]] | ||
Версия от 09:19, 16 октября 2026
Между двумя источниками данных можно установить связь типа главный-подчиненный (или родительский-дочерний).
Например:
- одна запись в запросе
LaboratoryFilterможет иметь множество подчиненных записей в запросеIndicators; - оба запроса имеют поле
lab_id, по которому можно установить связь.
Есть 2 способа построить отчет с подобными взаимоотношениями.
Способ 1
Первый способ дает возможность строить отчеты типа "главный-подчиненный" (master-detail).
Алгоритм
Для этого используются два бэнда "Данные":
- главный бэнд привязывается к главному источнику данных;
- подчиненный бэнд привязывается к подчиненному источнику данных;
- в фильтре подчиненного источника задается выражение сопоставления соответствующих полей
[Indicators.lab_id] == [LaboratoryFilter.lab_id].
Результат
Итоговый отчет может выглядеть, например, так:

Если такой отчет запустить, то на печать будет выведен список показателей для каждой лаборатории со следующей структурой:

Способ 2
Второй способ позволяет из подчиненного источника обращаться к главному, учитывая имеющуюся связь между двумя источниками:

Мы видим, что среди полей источника Indicators есть ссылка на родительскую таблицу LaboratoryFilter.
Алгоритм
Таким образом, для реализации такого типа отчета нужно:
- создать связь между источниками данных;
- перетащить в дереве данных из подчиненного источника поле родительского источника
[Indicators.LaboratoryFilter.lab_name]; - перетащить в дереве данных из подчиненного источника поле
[Indicators.ind_name].
Результат
Итоговый отчет будет выглядеть следующим образом:

Если его запустить, мы увидим следующее:
