Цели работы:
Краткие сведения из теории
Отчеты (Reports) в полном соответствии со своим названием предназначены для компактного и красочного представления некоторой обобщающей информации по базе данных. Оформление отчета полностью зависит от пользователя – каждый отчет можно оформить по своему вкусу (или вкусу начальника, заказчика, кредитора и т.д.).
Специалисты, занятые анализом данных, по праву считают отчеты одной из важнейших разновидностей документов. Отчеты значительно облегчают работу с большими объемами информации благодаря многообразию доступных форм оценки данных. Технология работы с отчетами в рамках FoxPro проста. С помощью Генератора Отчетов создается прототип отчета (фактически форма – без наполнения сведениями) и соответствующий программный код. Этот программный код может использоваться для собственно генерации отчета, который будет содержать сведения, извлеченные из некоторой базы данных, соответствующим образом обработанные и оформленные так, как это заказал пользователь, строя форму отчета (проектируя отчет). Полученный таким образом заполненный отчет можно просмотреть на экране дисплея или распечатать на принтере.
Задание
Технология работы
Создание отчета
Отчет можно проектировать на основе одной, двух и более связанных базах данных, на результатах запроса.
Например, необходимо спроектировать отчет, который будет выводить информацию поступившем товаре и рассчитывать сумму за товар с НДС. В данном отчете будут участвовать поля из пяти баз данных. Перед тем, как начать проектировать стандартный отчет, вначале необходимо открыть эти базы данных в окне Вид и установить между ними отношения 1-к-многим (рис. 7.1).
Рис. 7.1. Диалоговое окно Вид Затем выбрать команду Файлñ
Создать, установить опцию Отчет и нажать командную кнопку Создать. FoxPro откроет диалоговое окно проектирования отчета (рис. 7.2) Примечание: Окно проектирования отчета можно также вызвать, вводя в окно директив директиву CREAТЕ REPORT.
Встраивание элементов
На левом краю окна проектирования находится инструментальное меню (рис. 7.2). В этом пиктографическом меню представлены все элементы, которые можно применить при построении отчета. Элемент вставляется в отчет после выбора мышью соответствующего инструмента в инструментальном меню. Последующий щелчок в том месте отчета, где должен быть размещен этот элемент, фиксирует его. Для определения размеров элемента в отчете следует потянуть при нажатой левой кнопке мыши главную диагональ прямоугольника, заключающего в себе этот элемент. В момент отпускания кнопки мыши элемент фиксируется.
Рис. 7.2. Диалоговое окно проектирования отчета
Области отчета
Окно проектирования разделено на несколько областей (рис. 7.2). Под каждой областью на разделительной полосе, отделяющей эту область от следующей, приведено имя области. Разделительные полосы между областями можно передвигать вверх/вниз по экрану, увеличивая или уменьшая место под соответствующую область. Каждая разделительная полоса на левом краю имеет манипулятор перемещения. Буксируя его мышью, можно сдвигать эту полосу. Перемещение полосы изменяет размер только той области, которая расположена над полосой, все остальные области если и перемещаются, то без изменения размера.
А теперь об областях, которые встречаются или могут встретиться в отчете. Некоторые области по умолчанию уже содержатся в окне проектирования (верхний/нижний колонтитул и область детализации). Другие области могут добавляться пользователем по мере необходимости.
|
Область |
Функция |
|
Титул |
Содержит заголовок отчета и другую идентифицирующую информацию и появляется однажды в начале отчета. |
|
Верхний колонтитул |
Отпечатывается в начале каждой страницы и может, например, содержать заголовки колонок, если отчет создается в табличной форме. |
|
Группа сверху |
Появляется в начале каждой новой группы (группа включает одну или несколько детализационных областей, записи данных которых имеют одинаковое значение ключа). |
|
Детали |
Содержит, как правило, основные данные отчета. Для каждой записи данных детализационная область при генерации распечатывается один раз. |
|
Группа снизу |
Появляется в конце каждой группы и распечатывается тогда, когда в детализационной области изменяется ключ (при переходе от группы к группе). |
|
Нижний колонтитул |
Распечатывается внизу на каждой странице и содержит любую информацию, например, номер страницы. |
|
Итоги |
Стоит в конце отчета и распечатывается только один раз. |
Примечание:
В режиме проектирования отчета каждая область появляется один раз. При печати отчета области повторяются, чтобы распечатать все данные. Например, шапка группы повторяется каждый раз при выводе новой группы.
Создание стандартного отчета. Наряду с созданием сложных, персонализированных отчетов, FoxPro предлагает возможность пользоваться стандартными отчетами. Простой стандартный отчет можно создать, вызывая директиву Отчетñ
Стандартный
Рис. 7.3. Диалоговое окно создания стандартного отчета Для стандартного отчета пользователь может выбирать горизонтальное или вертикальное размещение полей базы данных: либо пользователь располагает поля по-соседству в строку и, таким образом, создает некое подобие таблицы (имена полей образуют заголовки колонок, записи данных стоят в строках), либо поля располагаются одно под другим, как в формуляре в режиме редактирования (каждое поле находится в отдельной строке). Для Три контрольных индикатора, находящихся ниже, позволяют дать указания о том, какие элементы должен содержать стандартный отчет:
бланка рекомендуется вертикальное расположение, а следовательно, нужно нажать вторую пиктографическую командную кнопку в области Размещение полей
Отмените оба контрольных индикатора Заголовки и Добавить алиас. Отметьте крестиком опцию Поля..., чтобы выбрать поля для отчета.
В диалоговом окне Выбор полей приведен список всех полей открытой базы данных (рис. 7.4). Если в различных рабочих областях открыто параллельно несколько баз данных, как в нашем случае, то из комбинированного списка Таблица нужно выбрать по очереди все базы данных, добавляя из каждой базы данных нужные поля. В отчете могут использоваться не все поля базы данных, а только некоторые из них.
Из левого списка Все поля... поля базы данных переносятся в выбранной последовательности в правый список Выбранные поля... и исключаются из левого. Список выбранных полей подтверждается нажатием командной кнопки ОК, а затем аналогично закрывается диалоговое окно Стандартный отчет. FoxPro мгновенно изготавливает стандартный отчет и выбранные поля базы данных в заданной последовательности вставляет в область Детали окна проектирования.
Рис.7.4. Выбор полей В нижнем колонтитуле стоят две функции, которые автоматически добавляются в FoxPro-стандартные отчеты. Выровненная по левому краю там располагается функция Прежде чем приступить к работе, желательно распахнуть окно проектирования до полноэкранного размера, для того чтобы получить большую рабочую зону.
Выделение полей Чтобы выделить одновременно несколько полей в отчете, необходимо подвести указатель мыши на первое поле и щелкнуть один раз по левой клавише мыши. Далее удерживая в нажатом положении клавишу
Изменение шрифта полей Чтобы изменить тип шрифта, размер символов и т.д., необходимо выделить все поля участвующие в отчете и выбрать команду Объектñ
Шрифт. FoxPro откроет диалоговое окно Шрифт (рис. 7.5).
Рис. 7.5. Диалоговое окно видов шрифта
Размещение полей Поля в области Детали можно расположить произвольным образом (рис. 7.6), установив указатель мыши на нужном поле и, зафиксировав левую клавишу мыши, переместить его в другое место области.
Рис.7.6. Перенесенные поля
Изменение размера поля Для изменение размера поля, необходимо предварительно его маркировать
Титул и итоги
Для создания в отчете титула и итогов пользователю необходимо выбрать команду Отчетñ
Титул и Итоги.... FoxPro откроет диалоговое окно Титул и итоги (рис. 7.7), где нужно отметить галочками оба контрольных индикатора Полоса титула и Полоса итогов. В подготавливаемом отчете титул можно вывести на отдельном листе, который послужит обложкой для отчета.
Рис.7.7. Определение титула и итогов отчета
Рис. 7.8. Оформленный титул отчета
Объединение данных в группу
Объединение данных в группу является важным механизмом, интенсивно используемым в отчетах. FoxPro объединяет записи данных с одинаковым ключом (с одинаковым значением поля ключа) в одну группу. Чтобы группа могла функционировать, записи данных должны быть рассортированы по содержимому данного поля или проиндексированы. В создаваемом отчете записи надо сгруппировать по категории товара. Используя объединение в группу по категории товара, пользователь сможет быстро оценить, какой товар данной категории у него есть в наличии и в каком количестве.
Чтобы задать параметры группу нужно выбрать команду Отчетñ Группировка.... FoxPro откроет диалоговое окно Группировка данных (рис. 7.9).
Рис.7.9. Диалоговое окно объединения данных в группу
Список групп пока пуст. Определение новой группе дается щелчком на командной кнопке Добавить.... После чего появляется следующее диалоговое окно с именем Группа данных (рис. 7.10).
Рис. 7.10. Определение группы
Посредством командной кнопки Группа... вызовите Редактор Выражений

Рис.7.11. Выбор группировочного ключа
Выберите это поле, выполняя двойной щелчок мышью на его имени, и щелкните на ОК. Происходит возврат к диалогу Группа данных В области При изменении группы начать установите, каким образом в отчете должны выделяться границы группы, т.е. как должны отделяться записи одной группы от другой. Новую группу можно начать с новой колонки (Новую колонку Активизируем опцию Новая страница, чтобы для каждой категории товара FoxPro начинала список товаров с новой страницы
так нагляднее. Опция Заголовок на последующих страницах, будучи установленной, приведет к тому, что в начале каждой новой страницы снова будет выводиться шапка группы, что позволит легко ориентироваться при чтении Записи в готовом отчете будут сгруппированы по категории товара. В окно проектирования отчета введены две новые области Группа сверху и Группа снизу (рис. 7.12). Поле Для этого сначала необходимо увеличить область шапки группы, буксируя мышью манипулятор перемещения ограничивающей полосы шапки
многостраничных отчетов. Нажмите кнопку
группы вниз. Ограничивающая полоса переместится, и область соответственно увеличится.

Рис.7.12. Область группы
Обработка полей
В данном отчете используются поля содержащие стоимость товара, например: Zena (цена за штуку) и Sum_plat (сумма оплаченного товара). Желательно чтобы такие данные в отчете имели денежную единицу измерения. Для этого необходимо выполнить двойной щелчок мышью на поле Zena. FoxPro откроет диалоговое окно Выражение отчета (рис. 7.13).
Рис. 7.13. Диалоговое окно Выражение отчета В поле ввода рядом с кнопкой Выражение... стоит имя выбранного поля. Чтобы сформатировать формат данного поля нужно щелкнуть мышью на командной кнопке Формат…. Открывается диалоговое окно выбора формата изображения (рис. 7.14). Содержимое этого окна меняется в зависимости от того, какое поле обрабатывается: текстовое, числовое или даты (выбрать можно с помощью селекторной кнопки под полем Формат).
Рис. 7.14. Окно формата с опциями для числовых полей
Вычисляемые поля Теперь добавим вычисляемое поле, которое будет содержать Вычисляемое поле целесообразно поместить в одной строке с теми полями, на основе которых оно рассчитывается, под надписью Всего Сначала нужно выполнить щелчок мышью на инструменте ![]()
Выполнив щелчок мышью на командной кнопке Выражение..., FoxPro открывает окно Редактора Выражений (рис. 7.16).
Рис. 7.15. Диалоговое окно Выражение отчета
В поле описания вычисляемого выражения Выражение для поля в отчете в центре диалогового окна Редактора выражений нужно ввести формулу, по которой можно рассчитать содержимое нового поля (рис. 7.16).
Рис. 7.16. Окно Конструктора выражений
Щелчком мыши на ОК запоминается подготовленное выражение и происходит возврат в диалоговое окно Выражение отчета, где формула вычисления (выражение) теперь индицируется в поле рядом с кнопкой Выражение... Поле нетто-цены должно содержать денежную величину, и ее следует сформатировать соответствующим образом. Щелкнув мышью на командной кнопке Формат..., активизируется диалоговое окно Формат (рис. 7.17). Нужно выбрать опцию Число и установить контрольный индикатор опции Денежная единица. Затем нажать командную кнопку ОК. Нетто-цена будет выводиться как денежная величина.
Рис. 7.17. Окно формата для поля нетто-цены
Примечание:
Формат вывода денежных величин (обозначение валюты, количество десятичных разрядов и т.п.) определяется в рамках Вид-окна, на вкладке национальные установки.
В данном отчете можно сделать еще одно вычисляемое поле, которое будет рассчитывать общее количество товара данной категории и выводить результат в конце каждой группы (рис. 7.18).
Данное поле поместим в область Группа снизу, возле надписи Количество товара данной категории. По аналогии создания предыдущего вычисляемого поля, выполняем щелчок мышью на инструменте Поле данных и фиксируем указатель мыши возле надписи.
FoxPro откроет диалоговое окно Выражение отчета, где нужно нажать кнопку Выражение.... В диалоговом окне Конструктор выражения, двойным щелчком по полю В диалоговом окне Выражение отчета, выбираем опцию Вычислить.... FoxPro открывает диалоговое окно для итоговых вычислений Вычислить поле (рис. 7.20), где выбираем функцию Сумма и указываем интервал вычисляемых значений
Рис. 7.18. Диалоговое окно проектирования отчета
Рис. 7.19. Окно Конструктора выражений
Рис. 7.20. Диалоговое окно Вычислить поле
Выбранные настройки подтверждаем нажатием кнопки ОК
Отчет в режиме предварительного просмотра Проектируемый отчет можно вывести на предварительный просмотр, чтобы оценить его внешний вид и проанализировать результат вычисляемых полей. Для этого необходимо выбрать команду Отчетñ
Просмотр
Рис.7.21. Отчет в режиме предварительного просмотра
Открывается диалоговое окно Просмотр страницы (рис. 7.21). Здесь готовый отчет можно пролистать с помощью кнопок Назад и Вперед С помощью командных кнопок Увеличить или Уменьшить можно изменять масштаб просмотра страницы.
Отчет по работе должен содержать:
Контрольные вопросы