Страница 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
Здравствуйте,
Пожалуйста.