Системы управления базами данных
Конструирование отчетов
MS Access, подобно другим офисным приложениям, предоставляет возможности распечатки информации. Можно распечатать таблицы, запросы или формы. В составе СУБД имеется средство подготовки отчетов по хранимой информации. Под отчетом традиционно понимается специальным образом структурированное представление хранимых данных, выводимое, как правило, на бумажный носитель. Отчеты являются исключительно средством вывода информации, тогда как экранные формы позволяют вводить новую и корректировать существующую информацию. Отчеты предоставляют средства оформления документов в соответствии с потребностями пользователя. Использование отчетов позволяет проводить многоуровневую сортировку и группировку данных, а также вычислять промежуточные и общие итоги.
Разбивка отчета на страницы предполагает организацию вывода колонтитулов в начале и конце каждого листа, повтор головки таблицы на каждой странице, включение отчеркивающих линеек и т.д. Для нумерации страниц в отчетах применяются встроенные переменные Page и Pages, возвращающие соответственно номер текущей страницы отчета и общее количество страниц в нем. Возможно отображение системной даты и системного времени благодаря использованию функции Now().
Идеология работы с отчетами допускает построение простых отчетов, работу с мастером, макетом и конструктором отчетов. Простейший отчет можно представить как табличный или отчет с полями, расположенными в столбец. Мастер отчетов помогает создать существенно более сложный и интересный для пользователей отчет в диалоговом режиме. Режим конструктора является средством работы со структурой отчета и позволяет выполнить более тонкую настройку отчета. Во время работы в этом режиме можно просматривать информацию в виде таблицы или в виде формы, одновременно изменять, если необходимо, данные, получая обновленную информацию в режиме предварительного просмотра отчета. Режим макета позволяет изменять структуру отчета, одновременно просматривая результаты. В этом режиме можно внести большинство изменений, обычно вносимых в конструкторе, и при этом видеть, как фактически выглядит форма или отчет.
Для рассматриваемого примера базы данных можно построить как простейшие отчеты в виде распечатанных списков абонентов, тарифов или услуг, так и отчеты со сложной структурой, например, суммарный отчет о стоимости звонков каждого абонента с расшифровкой информации о каждом звонке (рис.8.19).
В отчете можно выполнить дополнительные вычисления с полями каждой записи. В приводимом на рис.8.19 фрагменте отчета вычисляется стоимость каждого звонка. Отчеты можно структурировать, задавая группировки по одному или нескольким полям. Для каждого уровня группировки можно предусмотреть вывод промежуточных итогов c применением обычных итоговых функций, например, функции Sum() для получения суммарного итога или функции Avg() для получения среднего арифметического. В примере рассчитанные стоимости звонков суммируются для каждого абонента, и информация о каждом абоненте выводится в алфавитном порядке.
На начальном этапе разработки отчета рекомендуется воспользоваться услугами мастера отчетов, который в диалоговом режиме создаст походящий набросок отчета, избавляя пользователя от многих рутинных операций, например, таких как добавление полей и подписей к ним или выбор стиля оформления отчета. Далее полученный макет отчета в режиме конструктора приводится пользователем к желаемому виду. На рис.8.20 видна структура отчета. Он состоит из нескольких областей (разделов): заголовка отчета, верхнего колонтитула, области данных, нижнего колонтитула и примечания отчета. Разделы содержат элементы отчета, которые в режиме конструктора представляются в виде полей разных типов и являются объектами редактирования. Некоторые области, как в данном случае примечание отчета, могут быть пустыми. В области данных располагаются поля записей источника отчета с содержательной для пользователя информацией. Здесь могут быть размещены вычисляемые поля, в том числе поле, позволяющее нумеровать строки отчета. При выполнении группировок и/или сортировок данных в отчете появляются заголовки и примечания групп, которые содержат поля записей источника отчета, используемые как вспомогательные для выполнения сортировки и группировки. Эти области располагаются в порядке, установленном разработчиком отчета.
Модификация элементов отчета, в том числе и разделов отчета, выполняется путем изменения их свойств. Вывод значений полей источника данных отчета основан на принципе наследования свойств: если при создании таблицы было определено некоторое свойство отображения поля, то установленный способ отображения используется в запросах, формах, отчетах до тех пор, пока свойство не будет переопределено явным образом в окне свойств соответствующего объекта. Например, в таблице Контакты тип поля Стоимость единицы был определен как Денежный, поэтому в отчете значения этого поля отображаются с двумя знаками после запятой и с указанием валюты.
Можно добавлять новые элементы к отчету, используя панель элементов или удалять включенные в отчет элементы. Возможно перемещение элементов отчета между разделами отчета.