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