Перекрестные отчеты

Перекрестные отчеты строятся на основе перекрестных запросов и содержат итоговые данные.
В предыдущем разделе мы использовали один из таких перекрестных запросов для создания подчиненного отчета "Квартальные обороты клиентов по товарам". Аналогично создается и обычный отчет на базе перекрестного запроса. Пример такого отчета приведен на. Он создан на базе того же самого запроса "Квартальные обороты клиентов по товарам", но отображает данные в другом разрезе: проданные товары группируются по наименованию, затем по клиентам. Разработать такой отчет не сложно:

  1. Создайте новый отчет в режиме Конструктора и выберите для него в качестве источника данных запрос "Квартальные обороты клиентов по товарам".
  2. Разместите надписи, содержащие заголовки столбцов отчета, в разделе Верхний колонтитул (Page Header), а все текстовые поля со значениями — в области данных. (Еще проще создать такой отчет с помощью автоотчета ленточный.)
  3. Определите в окне Сортировка и группировка (Sorting and Grouping) группировку по полям "Марка" (ProductName) и "КодКлиента" (CustomerlD). Для поля "Марка" отобразите заголовок группировки, выбрав значение Да (Yes) в раскрывающемся списке Заголовок группы (Group Header). Закройте окно.
  4. Перенесите текстовое поле "Марка" в отображенный заголовок группы.

Замечание
В данном запросе, когда он был создан для примера с подчиненным отчетом, не был задан параметр для выбора только относящихся к указанному отчетному году записей, т. к. записи выбирались на основании связанных данных из главного отчета. Поэтому, чтобы в создаваемом теперь отчете отображались только записи за указанный год, определите выражение с параметром для фильтрации данных в новом отчете: ГодЗака-за = [Отчетный год:] (для английской версии используйте английское имя поля OrderYear) (как задать фильтр.
Отчет готов. Такой отчет называется статическим перекрестным отчетом, т. к. хотя его источник данных — перекрестный запрос, число столбцов в нем всегда одинаково, заголовки столбцов являются постоянными. Он создается так же, как и обычный отчет, на базе готового запроса.
Более сложной задачей является создание динамического перекрестного отчета. Это такой отчет, у которого в качестве источника данных задан перекрестный запрос, и формирующийся этим запросом набор записей может иметь разное количество и разные заголовки столбцов, в зависимости от выполнения некоторых условий. Пример такого запроса приведен на. Этот отчет показывает выработку сотрудников фирмы по месяцам года. Такой отчет может создаваться ежеквартально, и каждый раз число столбцов в нем будет увеличиваться, пока в конце года не станет равным 14 (12 месяцев плюс итоговый столбец и столбец с фамилиями сотрудников).
Еще одним примером динамического перекрестного отчета является отчет, в котором показывается, какие товары вы заказали поставщикам, но еще не получили. Такой отчет может представлять собой таблицу, в которой по вертикали отображаются товары, а по горизонтали — поставщики, которым эти товары заказаны. Его можно построить, если число поставщиков ограничено и не очень велико.
Для создания динамических отчетов не обойтись без программирования. В режиме Конструктора отчет о выработке сотрудников выглядит так, как это представлено на, т. е. он содержит несвязанные с данными надписи и текстовые поля.
Привязка их к результатам запроса выполняется программным путем в процессе выполнения отчета. Позже мы покажем, как создать программы для такого отчета.
 
Печать отчета в несколько колонок
Иногда возникает необходимость отобразить данные на листе бумаги в несколько колонок. Это может потребоваться для компактного представления данных в отчете. Пример такого отчета приведен на — это отчет "Товары по типам" (Products by Category) из базы данных "Борей" (Northwind). В нем содержатся данные о количестве товаров на складе. Данные о товарах группируются по категориям товаров и отображаются в три колонки.
Чтобы получить такой отчет, нужно задать определенным образом параметры печати отчета. Эти параметры задаются в диалоговом окне Параметры страницы (Page Setup). Для того чтобы вывести это окно, в режиме Конструктора отчета, выберите команду меню Файл, Параметры страницы (File, Page Setup). На вкладке Поля (Margins) определите ширину полей страницы. Затем раскройте вкладку Столбцы (Columns).
Группа полей Параметры сетки (Grid Setting) позволяет определить количество колонок на листе (поле число столбцов (Number of Columns)) и расстояние между колонками (поле столбцов (Column Spacing)). Поле интервал строк (Row Spacing) используется при печати наклеек на конверты.
Группа полей Размер столбца (Column Size) позволяет определить ширину колонки. Если установить флажок по размеру данных (Same As Detail), то поля ширина (Width) и высота (Height) будут установлены равными ширине и высоте раздела Область данных (Detail) отчета. Если этот флажок сброшен, то значение поля ширина (Width) будет определять ширину колонки (поле высота (Height) используется для определения размера наклеек).

Переключатели в группе Макет столбца (Column Layout) определяют ориентацию колонок. В данном случае выбран переключатель сверху вниз (Down, then Across), который обеспечивает печать данных в виде газетных полос.