Связи (relations)
Между двумя источниками данных можно установить связь типа главный-подчиненный (или родительский-дочерний).
Например:
- одна запись в запросе
LaboratoryFilterможет иметь множество подчиненных записей в запросеIndicators; - оба запроса имеют поле
lab_id, по которому можно установить связь.
Есть 2 способа построить отчет с подобными взаимоотношениями.
Способ 1 - Бэнды
Первый способ дает возможность строить отчеты типа главный-подчиненный (master-detail).
Алгоритм
Для этого используются два бэнда Данные:
- главный бэнд привязывается к главному источнику данных;
- подчиненный бэнд привязывается к подчиненному источнику данных;
- в фильтре подчиненного источника задается выражение (сопоставление соответствующих полей).
[Indicators.lab_id] == [LaboratoryFilter.lab_id]
Результат
Итоговый отчет может выглядеть, например, так:

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

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

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

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

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

В первую очередь вам нужно выбрать главную и подчиненную таблицы. После этого в нижней части окна надо выбрать пары полей – для каждой таблицы соответственно. Таблицы могут быть связаны с помощью одного или нескольких полей. После того, как поля настроены, закройте редактор связи кнопкой ОК.
Созданную связь можно увидеть в окне "Данные", если выбрать подчиненный источник данных и раскрыть список его полей. Среди полей мы увидим связь с родительским источником:
Поля родительского источника можно перетаскивать на лист отчета методом drag&drop. Так, если выбрать показанное на рисунке поле и перетащить его на лист отчета, мы получим объект "Текст" со следующим содержимым:
[Products.Categories.CategoryName]