Перекрестные
отчеты
Перекрестные
отчеты строятся на основе перекрестных запросов и содержат итоговые данные
(см.
также гл. 8).
В предыдущем
разделе мы использовали один из таких перекрестных запросов для создания подчиненного
отчета "Квартальные обороты клиентов по товарам". Аналогично создается
и обычный отчет на базе перекрестного запроса. Пример такого отчета приведен
на рис. 10.13. Он создан на базе того же самого запроса "Квартальные обороты
клиентов по товарам", но отображает данные в другом разрезе: проданные
товары группируются по наименованию, затем по клиентам. Разработать такой отчет
не сложно:
Замечание
В данном запросе, когда он был создан для примера с подчиненным отчетом, не был задан параметр для выбора только относящихся к указанному отчетному году записей, т. к. записи выбирались на основании связанных данных из главного отчета. Поэтому, чтобы в создаваемом теперь отчете отображались только записи за указанный год, определите выражение с параметром для фильтрации данных в новом отчете: ГодЗака-за = [Отчетный год:] (для английской версии используйте английское имя поля OrderYear) (как задать фильтр, рассказано в разд. "Фильтрация данных в отчете" этой главы).
Отчет готов.
Такой отчет называется
статическим
перекрестным отчетом, т. к. хотя его
источник данных — перекрестный запрос, число столбцов в нем всегда одинаково,
заголовки столбцов являются постоянными. Он создается так же, как и обычный
отчет, на базе готового запроса.
Рис. 10.13.
Статический перекрестный отчет
Более сложной
задачей является создание
динамического
перекрестного отчета. Это такой
отчет, у которого в качестве источника данных задан перекрестный запрос, и формирующийся
этим запросом набор записей может иметь разное количество и разные заголовки
столбцов, в зависимости от выполнения некоторых условий. Пример такого запроса
приведен на рис. 10.14. Этот отчет показывает выработку сотрудников фирмы по
месяцам года. Такой отчет может создаваться ежеквартально, и каждый раз число
столбцов в нем будет увеличиваться, пока в конце года не станет равным 14 (12
месяцев плюс итоговый столбец и столбец с фамилиями сотрудников).
Еще одним
примером динамического перекрестного отчета является отчет, в котором показывается,
какие товары вы заказали поставщикам, но еще не получили. Такой отчет может
представлять собой таблицу, в которой по вертикали отображаются товары, а по
горизонтали — поставщики, которым эти товары заказаны. Его можно построить,
если число поставщиков ограничено и не очень велико.
Рис. 10.14.
Динамический перекрестный отчет
Для создания
динамических отчетов не обойтись без программирования. В режиме Конструктора
отчет о выработке сотрудников выглядит так, как это представлено на рис. 10.15,
т. е. он содержит несвязанные с данными надписи и текстовые поля.
Привязка их
к результатам запроса выполняется программным путем в процессе выполнения отчета.
Позже мы покажем, как создать программы для такого отчета
(см. разд. "Создание
перекрестного отчета с изменяющимся числом столбцов" гл. 13).
Рис. 10.15.
Динамический перекрестный отчет в режиме Конструктора