В предыдущих двух главах вы познакомились с инструментами VisualFoxPro, предназначенными для создания форм. Не менее мощные средства предоставляются в распоряжение разработчика для создания отчетов. Прочитав эту главу, вы узнаете, что такое отчет и познакомитесь со средствами создания и печати отчетов в Visual FoxPro.
Отчет представляет собой форматированное представление данных, выводимое на экран, принтер или в файл. Отчет, создаваемый в Visual FoxPro, может быть представлен в табличном виде или в свободной форме. Табличный отчет — это напечатанная таблица, в которой строка представляет собой запись, а каждый из элементов строки содержит поле исходной таблицы или вычисляемое поле. Данные в таблице упорядочены. Табличные отчеты используются для печати данных, представленных в виде списка. При подготовке писем, почтовых этикеток поля используемых в отчете таблиц должны располагаться в специально выделенных для них местах. В этом случае табличный отчет не подходит и используются отчеты в свободной форме. При создании такого отчета вы можете воспользоваться стандартным форматом, автоматически создаваемым Visual FoxPro для каждой таблицы, при котором поля исходной таблицы располагаются вертикально. Используя конструктор отчетов, вы можете разрабатывать собственные форматы отчета, где поля исходной таблицы будут расположены там, где вам нужно.
Рекомендации по созданию отчета
Если вам требуется создать простой табличный отчет, в котором используются поля из одной таблицы, то трудностей, скорее всего, у вас не возникнет. При разработке более сложного отчета прежде чем приступить к его созданию, вы должны четко представлять, что же хотите получить в результате. Поэтому продумайте следующие вопросы.
Получив четкие ответы на поставленные вопросы, вы облегчите свою работу при создании отчета.
Создавая первые отчеты, прежде чем приступить к работе с конструктором отчетов, прорисуйте формат отчета на бумаге. Это избавит вас от ошибок и сократит время, затрачиваемое на разработку отчета.
При создании сложных отчетов, использующих данные из нескольких таблиц с отношением "один-ко-многим", желательно идти последовательными шагами от простого к сложному. Сначала добавить в среду окружения главную таблицу и расположить в отчете ее поля. После этого просмотреть отчет в окне предварительного просмотра и убедиться, что он формируется верно. Затем добавить в окружение вторую таблицу, связать ее с главной, задать тип используемого между таблицами отношения и расположить в отчете ее поля. И опять убедиться, что отчет печатает те данные, какие вы хотите получить. При таком подходе к созданию отчета вам будет значительно легче разобраться в появляющихся ошибках или вообще их избежать.
В Visual FoxPro для создания отчетов можно использовать следующие средства.
При создании отчета можно использовать любые средства, предлагаемые Visual FoxPro, какие вам кажутся более удобными. Конечно, больше возможностей предоставляет конструктор отчетов, позволяющий создавать отчеты как в табличном виде, так и в свободной форме. Разработке отчетов средствами конструктора будет посвящена следующая глава.
Использование мастера для создания однотабличного отчета
Для создания отчета с помощью мастера вам необходимо его запустить, а затем в открывающихся диалоговых окнах выбрать таблицы, входящие в отчет, определить список полей отчета и порядок их размещения, указать тип упорядочения данных.
Для запуска мастера отчетов выполните одно из следующих действий:
Рассмотрим создание однотабличного отчета с помощью мастера.
Рис. 7.1. Группа Reports в окне создания проекта
Рис. 7.2. Диалоговое окно New Report
Таблица 7.1. Типы отчетов
Тип отчета | Описание |
One-to-Many Report Wizard (Мастер отчетов с отношением "один-ко-многим") | Создает отчет для таблиц с отношением "один-ко-многим" |
Report Wizard {Мастер отчетов) | Создает простой однотабличный отчет |
Для создания простого однотабличного отчета выберите значение ReportWizard и нажмите кнопку ОК.
Рис. 7.3. Диалоговое окно для выбора типа создаваемого отчета
Рис. 7.4. Окно создания однотабличного отчета с помощью мастера
Замечание
Может оказаться, что в диалоговом окне мастера списки области Databasesand tables (Базы данных и таблицы) пусты или содержат не те данные, которые вы предполагаете использовать для построения отчета. Такая ситуация возникает в том случае, если предварительно вы не открыли необходимую базу данных. Ничего страшного. Для выбора базы данных и входящих в нее таблиц нажмите кнопку, расположенную рядом со списком баз данных. На экране откроется диалоговое окно Open (Открыть), позволяющее найти таблицу, которая будет использоваться в отчете.
Рис. 7.5. Определение полей для группировки данных в отчете
В центре диалогового окна расположены три раскрывающихся списка, позволяющих задать до трех группировок данных в отчете. Эти списки содержат все поля таблицы. Для осуществления группировки данных в отчете выберите нужное поле из раскрывающегося списка 1. При создании второй и третьей группировки используются, соответственно, списки 2 и 3.
Таблица 7,2. Описание интервалов группировки раскрывающегося списка Grouping intervals
Интервал группировки | Описание |
Entire Field (Полное поле) | Интервал группировки задается исходя из полного значения поля таблицы |
1st Letter (1 буква) | Группировка осуществляется по первой букве значения поля таблицы |
2, 3, 4, 5 Initial Letters (2, 3, 4, 5 начальных букв) | Группировка осуществляется по 2, 3, 4 или 5первым буквам значения поля таблицы соответственно |
Установите необходимое значение и нажмите кнопку ОК.
Рис. 7.6. Диалоговое окно Grouping Intervals
Таблица 7.3. Итоговые значения отчета
Столбец | Назначение |
Field | Наименование поля таблицы, по которому будет вычисляться итоговое значение в отчете |
Sum | При установке флажка в отчет будет помещена итоговая сумма поданному полю |
Avg | При установке флажка в отчет будет помещено итоговое среднее значение по данному полю |
Count | При установке флажка в отчет будет помещено итоговое количество строк |
Min | При установке флажка в отчет будет помещено минимальное значение поля таблицы |
Max | При установке флажка в отчет будет помещено максимальное значение поля таблицы |
Установите флажки для тех итоговых значений, которые хотите разместить в отчете.
Рис. 7.7. Диалоговое окно Summary Options
В диалоговом окне Summary Options (Итоговые опции) под таблицей расположен переключатель, управляющий отображением в отчете областей данных (табл. 7.4).
Таблица 7.4. Назначение опций переключателя окна Summary Options
Опция | Назначение |
Detail and Summary (Область данных и итоги) | При установке этой опции в отчете отображается область данных, промежуточные итоговые значения по группировкам и конечные итоговые значения по отчету |
Summary only (Только итоги) | При установке данной опции в отчете отображается область данных и конечные итоговые значения по отчету |
No totals (Нет итогов) | Если выбрана эта опция, то в отчете будет отображаться только область данных |
В нижнем правом углу диалогового окна Summary Options (Итоговые опции) расположен флажок Calculate percent of total for sums (Вычислить процент итоговых сумм), позволяющий в качестве итогового значения печатать процент промежуточного итогового суммарного значения от конечного итогового суммарного значения по отчету.
Завершив в диалоговом окне Summary Options (Итоговые опции) все необходимые установки, нажмите кнопку ОК.
Рис. 7.8. Выбор стиля отображения объектов отчета
Список Style (Стиль) содержит несколько вариантов отображения объектов (полей, линий, заголовков и т. д.) в отчете. При выборе стиля мастер позволяет просмотреть, как будут выглядеть элементы отчета. Для этого используется область просмотра в верхнем левом углу диалогового окна. Выбрав стиль, нажмите кнопку Next (Далее), чтобы перейти к следующему шагу.
Рис. 7.9. Установка порядка размещения объектов в отчете
Рис. 7.10. Установка критерия упорядочения данных
Используя опции Ascending (По возрастанию) и Descending (По убыванию), укажите тип сортировки выбранного поля: по возрастанию или по убыванию соответственно.
Сформировав список полей и указав тип сортировки, нажмите кнопку Next (Далее) для перехода к следующему шагу.
Таблица 7.5. Переключатели окна Report Wizard (Step 6)
Переключатель | Действие |
Save report for later use (Сохранить отчет) | Созданный отчет сохраняется на диске |
Save report and modify it in the Report Designer (Сохранить и открыть в конструкторе для модификации) | Созданный отчет сохраняется на диске и открывается в конструкторе отчетов для модификации |
Save and print report (Сохранить и распечатать отчет) | Созданный отчет сохраняется на диске и печатается |
Рис. 7.11. Заключительный этап создания отчета
В правом нижнем углу диалогового окна находится кнопка Preview(Просмотр), позволяющая просмотреть созданный отчет. Если созданный отчет не удовлетворяет вашим требованиям, с помощью кнопки Back (Назад) вы можете вернуться к предыдущим шагам построения отчета и изменить установленные там параметры.
Введя заголовок и установив требуемую опцию, для завершения создания отчета с помощью мастера нажмите кнопку Finish (Готово). Открывается диалоговое окно Save as (Сохранить как), в котором введите имя созданного файла.
На рис. 7.12 представлен отчет, созданный с помощью мастера. Если он вас полностью устраивает, вы можете его распечатать. Но скорее всего, вам захочется в нем что-то изменить. В этом случае откройте созданный отчет в конструкторе отчетов и модифицируйте его.
Рис. 7.12. Отчет, созданный с помощью мастера
Замечание
При создании отчета с помощью мастера надписи к полям отчета создаются на основе информации, введенной в поле Caption (Надпись) конструктора таблиц Table Designer (Конструктор таблиц). Если это поле пусто, надписи совпадают с именами полей таблицы.
Просмотр подготовленного отчета
Если вы хотите посмотреть, как ваш отчет выглядит, совсем не обязательно его распечатывать. Достаточно открыть его в окне предварительного просмотра, воспользовавшись любым из следующих средств, предоставляемых в ваше распоряжение программой Visual FoxPro:
Панель инструментов, используемая для просмотра отчета
При открытии отчета в окне предварительного просмотра на экране появляется панель инструментов Print Preview (Предварительный просмотр) (рис. 7.13), позволяющая перемещаться между страницами отчета и распечатать его. Назначение кнопок этой панели инструментов приведено в табл. 7.6.
Рис. 7.13. Панель инструментов, используемая в окне предварительного просмотра отчета
Таблица 7.6. Кнопки панели инструментов Print Preview
Кнопка | Назначение |
Открывает первую страницу отчета | |
Открывает предыдущую страницу отчета | |
Открывает диалоговое окно Go to Page (Переход на страницу) для перехода к заданной странице отчета | |
Открывает следующую страницу отчета | |
Открывает последнюю страницу отчета | |
Изменяет масштаб отображения отчета | |
Закрывает окно просмотра отчета | |
Печатает отчет |
Вы подготовили отчет, просмотрели его в окне предварительного просмотра и убедились, что он выглядит так, как вы хотите. Теперь можно распечатать отчет на принтере, воспользовавшись одним из предложенных ниже способов.
Открывается диалоговое окно Print (Печать) (рис. 7.14), позволяющее указать имя используемого для печати принтера, изменить, в случае необходимости, его настройки и установить параметры печати.
Рис. 7.14. Диалоговое окно Print
В верхней части диалогового окна Print (Печать) расположен раскрывающийся список Name (Наименование), позволяющий выбрать тип подключаемого принтера. Эта возможность особенно важна при работе в сети, когда у вас имеется несколько сетевых принтеров.
Переключатели области Print range (Печатать) позволяют указать печатаемые страницы и имеют следующее назначение:
Счетчик области Copies (Копии) позволяет указать количество печатаемых копий отчета.
В случае, если требуется дополнительная настройка параметров принтера, нажмите кнопку Options (Опции). В результате откроется диалоговое окно Print Options (Параметры печати) (рис. 7.15).
Рис. 7.15. Диалоговое окно Print Options
Поле Туре (Тип) области Print what (Что печатать) позволяет указать тип выводимой на печать информации. Поле File (Файл) содержит наименование и расположение печатаемого файла.
В области Options (Опции) расположены флажки, имеющие назначения, описанные в табл. 7.7.
Таблица 7.7. Назначение флажков окна Print Options
Флажок | Назначение |
Line numbers (Линии нумерации) | Печатает в левой части отчета номера строк. Данный флажок используется только при печати содержимого окна команд и временного буфера Windows |
Page eject before (Новая страница перед отчетом) | Выдает принтеру команду перехода на новую страницу перед печатью отчета |
Page eject after (Новая страница после отчета) | Выдает принтеру команду перехода на новую страницу после печати отчета |
Restore environment (Восстановить окружение) | Используется для совместимости с отчетами FoxPro версий 2.x |
При нажатии кнопки Options (Параметры) диалогового окна Print Options(Параметры печати) открывается диалоговое окно Report and Label Print Options (Параметры печати отчета и этикетки) (рис. 7.16).
Рис. 7.16. Диалоговое окно Report and Label Print Options позволяет указать критерий для выбора записей
В диалоговом окне Report and Label Print Options (Параметры печати отчета и этикетки) вы можете указать критерии для выбора записей, печатаемых в отчете (табл. 7.8).
Таблица 7.8. Критерии выбора записей
Критерий | Назначение |
Scope (Печатаемые записи) | Содержит раскрывающийся список Scope (Печатаемые записи), в котором указывается область печатаемых записей |
For (Пока) | Вызывает построитель выражений, в котором вы создаете логическое выражение, равное True (Истина) для всех печатаемых записей отчета |
While (При условии) | Вызывает построитель выражений, в котором вы создаете логическое выражение для выбора записей отчета. В отличие от критерия For, печать отчета прекращается при первом же значении выражения, равном False (Ложь) |
Для настройки дополнительных параметров печати отчета можно использовать диалоговое окно Свойства (рис. 7.17), открываемое при нажатии кнопки Properties (Свойства) в окне Print (Печать) (см. рис. 7.14).
На вкладке Бумага/Качество данного диалогового окна можно задать тип подачи бумаги в принтер. Вкладка Расположение позволяет указать расположение бумаги (книжная или альбомная), порядок печати страниц. Для того чтобы изменить размер используемой при печати бумаги, качество печати, используйте диалоговое окно Дополнительные возможности, открываемое при нажатии кнопки Дополнительно.
Рис. 7.17. Диалоговое окно Свойства