Страница 1 из 1

Связь один ко многим без SQL

Добавлено: 07 фев 2025, 11:50
vowanchik
Здравствуйте! Есть возможность создать связь между двумя таблицами типа "один-ко-многим" без использования SQL, чтобы вывести данные множества дочерних таблиц в DataBand как на скриншоте? По текущим настройкам в таблицу выводится одна какая-то случайная запись из множества, хотя в базе данных их несколько. Прикладываю скриншоты шаблона отчета и результата работы

Re: Связь один ко многим без SQL

Добавлено: 08 фев 2025, 00:26
Aleksey
Здравствуйте,

Без примера с тестовыми данными что-то сказать сложно.

Также, попробуйте задать PrintIfDetailEmpty свойство для главного бэнда.

Спасибо.

Re: Связь один ко многим без SQL

Добавлено: 08 фев 2025, 00:27
Aleksey
Здравствуйте,

А также, посмотрите как создаются отчеты со связями
https://www.stimulsoft.com/en/documenta ... report.htm

Спасибо.

Re: Связь один ко многим без SQL

Добавлено: 17 фев 2025, 17:31
vowanchik
Здравствуйте, подготовил пример отчета и тестовые данные в JSON формате.

Предположим, что в БД есть 2 таблицы: job и person. У person есть ссылка на job в качестве вторичного ключа. Допустим, в select запросе для job я выделил нужную мне запись и она там одна. Запрашиваю я её с помощью параметра, поэтому в зависимости от разных обстоятельств ищется какая-то запись из таблицы job. В select запросе person я запрашиваю все элементы из БД и делаю связь между двумя таблицами. Я создаю DataBand и ожидаю, что у меня будут выведены все записи person, относящиеся к конкретной записи job, исключая ненужные. В тестовых данных есть 3 записи с ссылкой на имеющуюся запись job, остальные 2 записи имеют произвольный вторичный ключ.

Если вывести на предпросмотр данный шаблон, то выводится первая запись из набора записей person, которая связана с моей записью job.

Данная идея связана с тем, что есть необходимость делать похожие отчеты практически без написания sql запросов с присоединением таблиц. В данном примере единственный sql запрос будет для таблицы job с поиском конкретной записи по id. Надеялись, что можно обойтись встроенными инструментами Stimulsoft.

Re: Связь один ко многим без SQL

Добавлено: 17 фев 2025, 21:52
Aleksey
Здравствуйте,

Для "расскручивания" данных на странице отчета используются бэнды.
В вашем отчете только один databand с ссылкой на исчтоник job, в котором только одна запись.

Необходимо добавить второй бэнд с ссылкой на второй источник.

Спасибо.

Re: Связь один ко многим без SQL

Добавлено: 18 фев 2025, 11:29
vowanchik
Всё, понятно. Спасибо большое!

Re: Связь один ко многим без SQL

Добавлено: 18 фев 2025, 11:53
Aleksey
Здравствуйте,

Пожалуйста.