Диго С.М. Базы данных проектирование и использование (1084447), страница 57
Текст из файла (страница 57)
Чаще всего, когда отчеты обсуждаются в контексте БД, речь идет об извлечении информации из каких-либо источников (однотипных или разнотипных) и представлении их в виде, удобном для дальнейшего восприятия и анализа. Это делает рассматриваемые вопросы близкими к проблематике OLAP-систем.
Источниками для получения отчетов могут быть не только таблицы баз данных, но и запросы, а также записи, отобранные с помощью фильтров. Некоторые генераторы отчетов позволяют проводить отбор данных, включаемых в отчет, непосредственно пользуясь средствами самого генератора отчетов.
Отчеты позволяют выполнять следующие действия:
-
проводить группировку данных;
-
вычислять многоуровневые промежуточные и общие итоги по отдельным полям;
-
вводить в отчеты вычисляемые поля;
-
выводить в отчеты данные из разных источников;
-
включать в отчеты данные, отобранные по заданным критериям;
-
использовать различные формы представления информации;
-
качественно оформлять выводимые данные.
Отчеты имеют много общего с формами. Однако отчеты в отличие от форм не предназначены для ввода и правки данных в таблицах. Они позволяют только выводить данные в различном виде. Вывод отчета может быть осуществлен на экран, на печать, а также в файл. Чаще всего отчеты используются для вывода информации на печать (т.е. для получения так называемых твердых копий). Для документов, даже одинаковых по содержанию, могут использоваться разные приемы их оформления в зависимости от того, куда осуществляется вывод информации. Например, при выдаче информации на экран могут использоваться специальные эффекты (мигание, динамические изображения, полосы прокрутки и т. п.).
Отчеты могут быть разной формы (рис. 9.1)
Различают отчеты анкетной и табличной формы. При анкетной форме данные об одном объекте (сотруднике, товаре и т.п.) обычно размещаются один под другим, причем слева указывается название атрибута (поля), а справа - его значение. После вывода информации об одном объекте выводится информация о следующем объекте (рис. 9.2). Иногда такой тип документа называют документом в виде формы (действительно, это очень напоминает позаписный вывод информации на экран при использовании экранных форм).
Документы табличной формы включают в себя привычные таблицы с названиями атрибутов в заголовках столбцов; данные о каждом объекте представляются в одной строке (рис. 9.3).
Табличные документы могут включать либо одну таблицу - однотабличные документы, либо несколько таблиц (обычно разной структуры) - многотабличные документы.
В зависимости от объема и выбранного способа оформления документы могут занимать одну страницу (одностраничные) или несколько страниц (многостраничные).
В любом документе могут быть выделены самостоятельные разделы (зоны, «полосы», области), выполняющие разную смысловую нагрузку. В реальном документе те или иные из перечисленных ниже зон могут отсутствовать. Различают зоны, относящиеся целиком к документу; это заголовок отчета и примечание документа («итоговая» зона, оформительская часть). Заголовок отчета и примечание отчета могут размещаться на первой и последней страницах отчета соответственно либо выноситься на отдельные листы.
Для каждой страницы выделяют верхний и нижний колонтитулы (заголовок и «подножие» страницы). Ну и, естественно, главное место принадлежит области данных. В этой области размещаются данные из БД.
Кроме того, в документе может быть обеспечена группировка данных, причем в отличие от запросов группировка может быть одноуровневой и многоуровневой (иерархической). В последнем случае для каждого уровня группировки могут быть созданы зоны заголовка и примечания группы.
Группировка обычно используется в целях подсчета каких-либо итоговых показателей для каждой группы (суммы, количества элементов в группе и т.п.). При этом возможно получение итоговых документов, включающих только итоговые значения, детальных документов, имеющих только детальные строки, и смешанных, содержащих как детальные строки, так и итоговые.
Отчеты с подведением итогов могут быть использованы и при создании документов анкетной формы. Например, при выдаче в анкетной форме сведений о сотрудниках в конце документа можно подсчитать общее количество сотрудников. Но поскольку наиболее часто эти возможности используются в табличных документах, то соответствующие классификационные группировки отнесены именно к этому виду документов.
Источниками информации для отчетов могут быть либо реальные таблицы базы данных, либо предварительно созданные запросы, отбирающие информацию, выводимую в отчет. Кроме того, в отчет могут включаться вычисляемые поля. Вычисляемые поля, как, впрочем, и реальные поля БД, могут входить в любую зону документа.
В последнее время в отчеты, наряду с символьной информацией, часто включается деловая графика.
Кроме документов, содержащих главным образом фактографическую информацию из баз данных, можно создавать и документы, которые в основном, напротив, включают какой-то текст (документографические), в который вкраплены данные из БД (документы типа письма).
В документах фактографического типа можно различать просто какой-то текст, не имеющий жесткой связи с элементами БД (например, название документа, поясняющий текст), названия элементов из БД (например, «Фамилия») и значения этих элементов (например, Иванов, Петров), элементы оформления (линия, рисунки).
Генераторы отчетов разных СУБД различаются по своим возможностям и особенностям выполнения идентичных функций. Так, например, в некоторых системах в итоговую зону документа по умолчанию включаются суммарные величины всех числовых полей, включенных в отчет. Необходимо внимательно проанализировать отчет, полученный в результате применения Мастера, и внести необходимые изменения в форму отчета.
Перечни типов отчетов, которые предлагает та или иная СУБД, могут различаться. Так, например, в dBase есть тип отчета «Письмо» (Mail) [18]. Суть его заключается в том, что при выборе этого типа отчета открывается область, в которую можно вводить текст «письма». В текст этого письма могут включаться значения тех или иных полей из базы данных. В шаблоне письма при этом будут указываться ссылки на соответствующие поля, а при выводе этих документов на экран или на печать эти ссылки заменяются соответствующими значениями полей. Подобное использование баз данных наблюдается довольно часто, и не только при создании «писем» в узком смысле этого слова. Такой тип отчетов имеется далеко не во всех СУБД. Например, в Access такой тип отчетов отсутствует, но это не означает, что нельзя получить документ такого типа. Просто нужно воспользоваться другими возможностями, в частности возможностью создания составного документа путем слияния.
9.2. Создание отчетов в системе Access
Для создания отчета в окне базы данных следует перейти на вкладку Отчеты, щелкнуть по кнопке Создать и в верхней части появившегося окна Новый отчет (рис. 9.4) выбрать способ создания отчета, а в нижней - указать таблицу или запрос, данные из которого будут выводиться в отчете. После этого следует щелкнуть по кнопке ОК.
9.2.1. Выбор способа создания отчета
В окне Новый отчет можно выбрать любую из предлагаемых системой возможностей. Но если при создании таблиц и запросов основным средством является Конструктор, то с отчетами, как и с формами, дело обстоит иначе. Гораздо удобнее воспользоваться Мастером или создать какой-нибудь автоотчет, а затем с помощью Конструктора внести в него необходимые изменения. В принципе в данном случае Мастерами можно считать все возможности, перечисленные в ниспадающем меню, изображенном на рис. 9.4, кроме позиции Конструктор.
Простейшим способом создания отчетов является использование «Автоотчетов». При использовании этой возможности в отчет выводятся все поля выбранного источника данных (таблицы/запроса), названием отчета и его заголовком становится название источника данных. Никакое вмешательство пользователя в процесс создания документа не предусматривается.
Более гибкой возможностью является применение Мастера отчетов (рис. 9.5). Именно этот инструмент наиболее часто используется при первоначальном создании документа. При любом способе создания отчета необходимо выбрать источник данных, на основе которого он будет формироваться. Источником может быть одна (или несколько) таблица либо запрос.
9.2.2. Создание отчетов с использованием Мастера отчетов
Рассмотрим возможность создания отчетов с использованием Мастера отчетов. Начальный вид экрана Создание отчетов в режиме Мастера представлен на рис. 9.6. Если вы забыли выбрать источник отчета (таблицу или запрос) на первом шаге или если в качестве источника требуется выбрать несколько таблиц/запросов, то это можно сделать и на данном этапе, выбрав нужные источники в окне Таблицы и запросы. Далее необходимо выбрать поля, которые войдут в отчет. При выборе этих полей можно либо использовать кнопку с двумя стрелками (в случае, если в отчет будут входить все поля или их большинство), либо переносить поля по одному, используя кнопку с одной стрелкой. При этом следует обратить внимание на то, что поля нужно переносить не в том порядке, в котором они располагаются в структуре исходной таблицы, а в том, в котором они будут использоваться в отчете. И хотя потом, в режиме Конструктор, можно менять положение тех или иных элементов в отчете, лучше сразу продумывать эти вопросы.
Предположим, что требуется на основе таблицы «Сотрудники» получить ведомость на выдачу зарплаты. Для простоты считаем, что все сотрудники получают фиксированный оклад. Информация сгруппирована по кафедрам. Внутри кафедры записи упорядочены по алфавиту по полям «Фамилия», «Имя», «Отчество».
После выбора полей, входящих в наш отчет, окно Создание отчетов приобрело вид, изображенный на рис. 9.7.
После определения полей, включаемых в отчет, система предлагает выбрать уровни группировки (рис. 9.8). В нашем примере нас устраивает предложенное поле группировки, и новых уровней группировки вводить не надо, поэтому щелкнем по кнопке. Окно примет вид, изображенный на рис. 9.9.
В общем случае для выделения уровней группировки нужно позиционироваться на соответствующем поле (поле группировки) и щелкнуть по кнопке со стрелкой. Если предполагается несколько уровней группировки, то поля должны выбираться в порядке старшинства группировки.
Следующий, третий шаг (рис. 9.10) позволяет задать порядок сортировки. Мы выбрали сортировку по трем полям («Фамилия», «Имя», «Отчество»).
Если необходимо вычисление итогов, то следует щелкнуть по кнопке Итоги, после чего высветится экран (рис. 9.11), на котором будут перечислены все поля числового типа, включенные в отчет (в нашем примере такое поле только одно - «Оклад»). Необходимо выбрать те поля, по которым будут подводиться итоги, а также вид агрегирующей функции. Мы выбрали получение суммарных итогов (Sum) по полю «Оклад».
Далее надо выбрать вид макета отчета (рис. 9.12), задать стиль отчета (рис. 9.13), а также имя отчета (рис. 9.14). Если имя отчета не задано, то по умолчанию будет задано имя, совпадающее с именем таблицы, на основе которой формируется отчет.