Отчет "один-ко-многим"
При помощи средств Rave Reports можно создавать и более сложные отчеты. В приложениях баз данных очень часто используются отношения "один-ко-многим" между наборами данных.
Давайте посмотрим, как создать отчет "один-ко-многим". Само собой, он должен быть связан как минимум с двумя просмотрами, которые находятся в отношении "один-ко-многим".
Для компонентов наборов данных в Delphi не нужно создавать отношение "один-ко-многим"– речь идет о том, что их поля позволяют такое отношение создать теоретически.
Подобно рассмотренному выше простому отчету, отчет "один-ко-многим" может содержать полосы Band и DataBand. Причем дополнительные настройки необходимы для обоих типов полос. Число полос DataBand должно соответствовать числу используемых в отчете наборов данных. Полосы Band несут в основном оформительскую нагрузку, и их число зависит от эскиза отчета и вашей фантазии.
В качестве примера создадим отчет для двух таблиц из демонстрационной базы данных Delphi. Таблицы CUSTOMER и ORDERS находятся в отношении "один-ко-многим". Для них в тестовом приложении создано соединение с использованием ADO, и два табличных компонента ADO подключены с компонентам соединения TRvDataSetConnection.
Соответственно полоса данных CustBand будет отображать записи из набора данных tCustomer, а полоса ordBand – из набора данных torders (рис. 26.6). Их необходимо связать с объектами прямых просмотров, как уже описывалось выше для примера простого отчета.
Рис. 26.6. Страница отчета MasterDetailReport в визуальной среде Rave Reports