Создание составных отчетов. Применение подчиненных отчетов.
Под составными отчетами в данном случае понимаются отчеты, имеющие сложную структуру: включающие подчиненные отчеты, построенные на базе перекрестных запросов, выводимые на печать в виде нескольких колонок, как это делается, например, в газетах. Ниже будут описаны такие отчеты, их назначение и способы создания.
По аналогии с составными формами, включающими подчиненные формы, можно предположить, что составные отчеты используются также и для печати данных из таблиц, связанных отношением "один-ко-многим". Однако это не совсем так. В большинстве случаев для отображения данных из связанных таблиц не требуется внедрять подчиненные отчеты (пример такого отчета см. в разд. "Создание отчета с помощью Мастера отчетов"гл. 6).
Например, если нужно создать отчет по товарам с разбивкой по категориям товаров, это можно сделать двумя способами:
- в основном отчете выводятся данные о категории товаров, а в подчиненном – о товарах, входящих в категории. И это будет аналогично созданию формы "Категории товаров", в которую включается подчиненная форма, отображающая данные из таблицы товаров;
- то же самое может быть выполнено без использования подчиненного отчета с помощью группировки товаров по категориям. Отчет в этом случае должен строиться на базе запроса, включающего данные из таблиц "Категории" и "Товары".
Тем не менее бывают ситуации, когда использование подчиненного отчета необходимо или предпочтительно. Например:
- Главный отчет представляет собой контейнер, в который включаются один или более подчиненных отчетов из несвязанных таблиц. В этом случае главный отчет может вообще не быть связанным с таблицей или запросом и содержать только надписи и вычисляемые элементы.
- Иногда итоговые данные требуется представить в документе в виде отдельной таблицы наряду с детальными данными. В этом случае просто группировкой записей с итоговыми строками не обойтись, нужно ввести подчиненный отчет, который выведет итоговые данные в требуемом виде.
- Группировка в отчетах Access является очень мощным механизмом, который позволяет получить самые разные способы обработки данных отчета. Однако только при использовании подчиненных отчетов можно создать группы, которые содержат две и более подгруппы данных.
- Главный отчет может содержать, во-первых, несколько подчиненных отчетов и, во-вторых, два уровня вложенности подчиненных отчетов. И, кроме того, на любом уровне вложенности наряду с подчиненным отчетом можно вставить в главный отчет подчиненную форму.
Основное достоинство подчиненных отчетов состоит в том, что с их помощью можно разместить на странице отчета самую разнообразную информацию в удобном структурированном виде, чего невозможно добиться, если просто создать сложный запрос, включив в него данные из многих таблиц.
Примеры использования подчиненных отчетов можно найти в списке отчетов учебной базы данных "Борей" (Northwind). На рис. 10.1 представлен отчет "Продажи по типам" (Sales by Category), который содержит один подчиненный отчет и внедренную диаграмму.
Рис. 10.1. Отчет, содержащий подчиненный отчет
Откройте отчет "Продажи по типам" (Sales by Category) в режиме Конструктора. Вы увидите, что подчиненный отчет размещен в разделе заголовка группы "Категория" (CategoryName) (рис. 10.2). Оба отчета, и главный и подчиненный, базируются на одном и том же запросе "Продажи по типам" (Sales by Category), но в главном отчете выводятся данные о категориях – имя категории, а в подчиненном – о товарах, входящих в эту категорию (наименование товара и его цена).