Создание подчиненных отчетов
Подчиненные отчеты могут создаваться двумя способами:
- с помощью Мастера подчиненной формы/отчета для создания нового подчиненного отчета в существующем отчете;
- путем внедрения уже существующего отчета (или формы) в другой отчет (в этом случае внедряемый отчет становится подчиненным).
Для того чтобы продемонстрировать, как создаются составные отчеты, мы построим отчет, показывающий квартальные обороты клиентов. Сначала нужно создать запрос, который будет базовым для главного отчета. Этот запрос будет иметь параметр [Отчетный год:] и выбираться будут все клиенты, которые имеют заказы в указанном году (рис. 10.5).
Этот запрос очень просто создать на основе имеющегося в базе данных "Борей" подобного запроса "Квартальные обороты" (Quarterly Orders):
- Выделите названный запрос в окне базы данных и скопируйте его, используя команды копирования и вставки Правка › Копировать (Edit › Copy) и Правка › Вставить (Edit › Paste). Дайте ему название "Квартальные обороты клиентов".
- Откройте его в режиме Конструктора.
- Удалите последнее поле "ДатаРазмещения" (OrderDate) из таблицы полей внизу окна запроса и вместо него вставьте вычисляемое поле:
ГодЗаказа: Year([ДатаРазмещения])
(для английской версии используйте английское имя поля OrderDate, в качестве имени вычисляемого поля можете задать OrderYear), а в строку Условие отбора (Criteria) введите имя параметра запроса [Отчетный год:]. Сохраните и закройте запрос.
Рис. 10.5. Базовый запрос для отчета "Квартальные обороты клиентов"
Теперь создадим отчет на основе только что созданного запроса. Для этого можно воспользоваться Мастером отчетов (Report Wizard) (см. гл. 6).
Выберите для помещения в отчет поля "Название" (CompanyName), "Город" (City) и "Страна" (Country), отсортируйте записи по полю "Название", выберите тип отчета В столбец (Column) и один из предложенных стилей отчета. В результате вы получите отчет примерно такой, как изображен на рис. 10.6.
Для того чтобы построить подчиненный отчет, содержащий квартальные обороты клиентов, воспользуемся уже готовым запросом "Квартальные обороты по товарам" (Quarterly Orders by Product), слегка его изменив. А именно, нужно удалить из запроса последнее поле "ДатаРазмещения" (OrderDate), для которого задано лишнее в нашем примере условие выборки. Тогда запрос будет выглядеть так, как это представлено на рис. 10.7. Сохраните его с именем "Квартальные обороты клиентов по товарам".