Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

И методические указания по их выполнению




Лабораторная работа № 4

СОЗДАНИЕ ОТЧЕТОВ С ПОМОЩЬЮ

ГЕНЕРАТОРА QUICKREPORT В СРЕДЕ ООП DELPHI

ЦЕЛЬ РАБОТЫ

Изучение методов создания отчетов и приобретение навыков использования компонентов Delphi для формирования печатных документов, содержащих текстовые и графические данные.

ЗАДАЧИ РАБОТЫ

Изучение и приобретение навыков использования визуальных компонентов Delphi, предназначенных для создания отчетов, содержащих текстовые и графические данные.

Приобретение практических навыков разработки приложений, позволяющих формировать печатные документы - отчеты.

ИСПОЛЬЗУЕМЫЕ ПРОГРАММНО-АППАРАТНЫЕ СРЕДСТВА

ПЭВМ класса IBM PC с процессором Intel Pentium II стандартной конфигурации, среда объектно-ориентированного программирования Delphi 7.

УКАЗАНИЯ ПО ТЕХНИКЕ БЕЗОПАСНОСТИ

Перед выполнением лабораторной работы каждый студент должен изучить правила техники безопасности при работе с ПЭВМ в лаборатории. К работе допускаются студенты, прошедшие инструктаж по технике безопасности и расписавшиеся в регистрационном журнале.

ПОДГОТОВИТЕЛЬНОЕ ЗАДАНИЕ

5.1. Ознакомиться с основными свойствами визуальных компонентов Delphi, расположенных на вкладке QReport. Изучить процедуры и функции, предназначенные для работы с ними.

5.2. Изучить содержание работы, подготовиться к ответам на контрольные вопросы.

5.3. Заготовить установленную форму отчета по лабораторной работе. На титульном листе указать номер и название работы, в отчет записать цель и задачи работы, кратко отразить теоретические сведения.

ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ

Генератор отчетов QuickReport

Отчет - это печатный документ, содержащий определенные данные. Кнопки печати всевозможных бумажных документов присутствуют практически в каждой такой программе. Delphi предоставляет целый набор компонентов для конструирования отчетов, которые собраны на странице QReport Палитры компонентов.

Набор компонентов QuickReport позволяет быстро создавать отчеты прямо на стандартной форме проекта. При этом не используются никакие дополнительные интерфейсные средства - только компоненты, Редактор кода и Инспектор объектов. Код генератора встраивается в исполняемый файл приложения и не требует для работы дополнительных файлов.

Структура отчета

Компонент TQuickRep является основой создаваемого отчета. Его основное назначение - нести на себе другие компоненты набора QuickReport. Кроме этого, только TQuickRep умеет отправлять на печать или включать просмотр готового отчета во время выполнения приложения, так как он обладает методами Print и Preview.

Компонент TQuickRep представляет собой размеченное поле белого цвета, напоминающее чистый лист бумаги (рис. 1).

Рис. 1.

Отчет создается на базе самой обычной формы проекта: достаточно создать новую пустую форму, перенести на нее компонент TQuickRep, и основа нового отчета готова.

Для создания нового отчета можно также воспользоваться Репозиторием объектов, который вызывается командой New из меню File Главного окна Delphi.

Важнейшие параметры отчета можно задать в специальном диалоге, который открывается командой Report settings из всплывающего меню компонента, перенесенного на форму (рис. 2).

Рис. 2.

Элементы управления диалога дублируют многие опубликованные свойства компонента, поэтому изменение параметра в диалоге в большинстве случаев приводит к изменению значения соответствующего.свойства в Инспекторе объектов.

Группа Paper size определяет параметры листа отчета.

Группа Margins задает отступы от края листа до рабочей области. Параметр Number of columns относится к полосам Column Header и Detail и определяет число колонок, в которых будут отображаться данные. Параметр Column space задает расстояние между колонками.

Группа Other задает параметры шрифта и единицы измерения для отчета.

Группа Page frame управляет рамкой вокруг рабочей области отчета. Рамка для каждой стороны листа задается отдельно.

Группа Bands позволяет добавлять и удалять полосы и задавать их высоту.

Для применения сделанных настроек к отчету необходимо щелкнуть на кнопке Apply, после этого можно просмотреть результат, щелкнув на кнопке Preview.

Предварительный просмотр отчета также открывается командой Preview из всплывающего меню компонента.

Любой отчет должен состоять из полос, каждая из которых отвечает за создание одной структурной части документа. От того, на какой полосе расположены специализированные компоненты отображения данных, зависит, будут ли в отчете показаны все записи набора данных или только текущая запись. Для управления стандартным набором полос компонент TQuickRep имеет специальное свойство Bands.

При создании стандартной структуры отчета необязательно использовать компоненты полос из Палитры компонентов. Для этих целей можно применить свойство Bands, которое определяет множество имеющихся в отчете полос. Полоса включается в отчет, если для соответствующего параметра задается значение True. Свойство Bands использует следующее множество значений:

· HasColumnHeader — заголовок колонки;

· HasDetaii — полоса данных;

· HasPageFooter — окончание страницы;

· HasPageHeader — заголовок страницы;

· Has summary — итоговая полоса;

· HasTitie — заголовок отчета.

Сам отчет состоит из нескольких частей - полос. С их помощью можно создавать отчеты произвольной структуры. Большинство полос создается компонентом TQRBand, который предназначен для того, чтобы отобразить принадлежащие ему элементы отчета в нужном месте.

Каждая полоса предназначена для представления одной части отчета - заголовка, таблицы, колонтитула и т. д. В зависимости от типа, полосы в отчете располагаются в строго определенном порядке. Например, полоса названия отчета всегда будет находиться первой или сразу после полосы заголовка страницы.

К стандартным типам относятся те полосы, которые можно создать при помощи свойства Bands компонента TQuickRep. Все они создаются экземплярами компонента TQRBands и образуют стандартный отчет. В таблице 1 приведены обозначения стандартных полос и их описание. В отчете они расположены в том же порядке, что и в таблице.

Таблица 1 - Структура стандартного отчета QuickReport

Обозначение Описание
Page Header Заголовок страницы. Полоса размещается в верхней части каждой страницы отчета. Обычно здесь размещается служебная информация об отчете
Title Заголовок отчета. Полоса располагается после заголовка только на первой странице отчета. Содержит название отчета
Column Header Заголовок столбца. Может размещаться в произвольных местах отчета, предназначен для выведения общей информации перед началом печати строк данных (шапка таблицы, описание нижеследующих данных и т. д.).
Detail Полоса данных. Содержит информацию из заданных оформлением отчета полей набора данных.
Summary Итоговая полоса. Располагается сразу после полосы данных. Предназначена для размещения общей информации, суммирующей данные
Page Footer Окончание страницы. Полоса появляется в нижней части каждой страницы. Предназначена для отображения служебной информации

Все полосы располагаются в рабочей области компонента TQuickRep и выравниваются по левой и правой границе этой области.

При подготовке отчета к печати или просмотру ключевую роль играет свойство printer, для печати используется канва объекта TQRPrinter, связанного через это свойство с отчетом. Такой объект создается автоматически для каждого отчета. Чаще всего при разработке отчета использовать это свойство нет необходимости.

Свойство options позволяет задать параметры отчета в целом. Класс TQuickReportOptions имеет следующие доступные для разработчика свойства:

· FirstPageHeader — управляет отображением заголовка на первой странице отчета;

· LastpageFooter — управляет отображением окончания на последней странице отчета;

· compression — управляет сжатием служебного метафайла, используемого при перерисовке отчета.

Свойство page позволяет задать параметры страницы отчета. Класс токраде позволяет устанавливать значения для следующих опубликованных свойств:

· BottomMargin — нижний отступ;

· Columns — число колонок;

· coiumnspace — расстояние между колонками;

· LeftMargin — левый отступ;

· Length — длинна;

· orientation — ориентация страницы;

· papersize — формат бумаги;

· RightMargin правый отступ;

· Ruler — разметка по краям листа;

· TopMargin — верхний отступ;

· width — ширина.

Параметры страницы используются не только при печати отчета, но и в процессе разработки, изменяя внешний вид компонента TQuickRep на форме.

Свойство PrinterSettings типа TQRPrinterSettings позволяет установить параметры печати отчета:

· copies — число копий каждой страницы отчета;

· Duplex — включает или отключает параллельную печать страниц;

· pi rsipage — номер первой печатаемой страницы отчета;

· LastPage — номер последней печатаемой страницы отчета;

· outputBin — определяет выходной лоток принтера.

Рис. 19.4. Диалог предварительного просмотра отчета

Во время выполнения приложения при использовании метода preview появляется стандартный диалог предварительного просмотра отчета (рис. 19.4). При выполнении метода print отчет сразу отправляется на принтер.

При помощи процедуры onpreview можно переопределить диалог предварительного просмотра отчета:

procedure TReportlForm.QuickRepPreview(Sender: TObject);

begin

PreviewForm.QRPreviewl.QRPririter:= Sender as TQRPrinter;

PreviewForm.Show;

end;

В этом случае в секцию uses модуля отчета необходимо добавить модуль QRPrntr.

При разработке стандартных отчетов для компонента TQuickRep обычно задаются значения всего нескольких свойств. Определяются параметры листа отчета: отступы, единицы измерения, ориентация и т. д. При помощи свойства DataSet с отчетом связывается основной набор данных (это не значит, что в нем нельзя будет использовать другие наборы данных). Свойство ReportTitie поможет идентифицировать отчет в очереди на печать принтера. При помощи свойства Bands задаются стандартные полосы.

Компонент TQRBand

Компонент инкапсулирует основные свойства стандартной полосы отчета и предназначен для создания структуры отчета (табл. 19.3). На нем можно размещать другие компоненты, определяющие внешний вид отчета и отображающие информацию. Компонент может играть роль любой полосы, тип которой определяется свойством BandType. При создании отчетов для приложений, работающих с БД, основную роль играет тип Detail.

В зависимости от выбранного типа полосы, изменяется повеление компонента во время печати или просмотра. Ширина компонента не может быть изменена — она определяется только шириной рабочей области отчета. Высота компонента в большинстве типов полос регулируется обычными способами. Исключение составляют типы Detail и SubDetail, высота которых при печати или просмотре зависит от первоначальной высоты и количества за писей в связанном наборе данных.

Оформление отчета

Для оформления внешнего вида отчета и представления данных в наборе QuickReport имеется широкий выбор компонентов. Часть из них просто отображается в отчете, часть предназначена для показа значений полей из связанного с отчетом набора данных.

Подавляющее большинство этих компонентов копирует стандартные компоненты VCL, поэтому мы не будем подробно останавливаться на их свойствах и методах.

Чаще всего при оформлении отчетов используются три компонента.

· Компонент TQRLabel копирует стандартный компонент TLabel из VCL. Он предназначен для создания статических текстов заголовков, комментариев, сносок и т.д.

· Компонент TQRDBTexr. обеспечивает отображение полей связанного с отчетом набора данных. Он во многом повторяет компонент TDBText со страницы DataControls Палитры компонентов. Набор данных и поле задается свойствами DataSet и DataField. Необходимый для этого компонент доступа к данным должен располагаться на форме отчета или быть доступным через секцию uses модуля формы отчета.

· Компонент TQRShape позволяет оформлять отчет простейшими геометрическими фигурами. С его помощью обычно создаются таблицы. Тип фигуры задается свойством shape. Аналог компонента — компонент TShape со страницы Additional Палитры компонентов.

Нижеследующие компоненты используются несколько реже для решения более специальных задач оформления отчетов.

Компоненты TQRMemo и TQRRichText используется для представления нескольких связанных между собой текстовых строк. Набор строк определяется свойством Lines. Компонент TQRExprMenio отличается от компонента

TQRMemo одним свойством RemoveBlankLines, которое при значении True разрешает удаление из свойства Lines пустых строк. Это свойство работает только для исходных данных, заданных во время разработки, новые строки, вносимые в свойство Lines, например, в методе-обработчике Beforeprint, обрабатываться не будут.

Компонент TQRDBRichText предназначен для представления в отчетах полей типа Memo набора данных.

Компонент TQRimage позволяет оформить отчет с картинками. Компонент TQRDBimage представляет в отчете изображения из графического поля набора данных.

Данные в отчетах QuickReport можно представлять и в графическом виде. Для этого используется компонент создания графиков в отчетах TQRChart. Система управления графиком основана на аналогичной системе компонента TDBChart (гл. 18).

При создании отчетов помимо основной информации часто требуется отображать и служебные, вспомогательные данные. Чаще всего это дата и время создания отчета и номера страниц. Для решения этой проблемы отчет имеет набор системных переменных.

· Переменная PAGENUMBER определяет выражение для расчета номера текущей страницы.

· Переменная COLUMNNUMBER определяет номер очередной колонки в полосе данных Detail.

· Переменная REPORTTITLE задает заголовок отчета (свойство ReportTitle компонента TQuickRep).

· Переменная APPNAME задает имя приложения, из которого просматривается или печатается отчет.

· Переменная APPSTARTDATE устанавливает дату печати отчета, а переменная APPSTARTTIME устанавливает время печати отчета.

Для представления системных данных в отчете применяется компонент TQRSysData. Для определения вида отображаемой компонентом информации используется свойство Data, которое имеет следующие значения:

· qrsCoiumnNo — номер текущей колонки в полосе данных Detail;

· qrsDate — текущая дата;

· qrsDateTime — текущие дата и время;

· qrsDetailCount — число записей в связанном с отчетом наборе данных;

· qrsDetaiiNo — номер текущей записи набора данных.

· qrsPageNumber — номер текущей страницы;

· qrsPageCount — число страниц отчета;

· qrsReportTitle — заголовок отчета;

· qrsTime — текущее время.

 


ЛАБОРАТОРНЫЕ ЗАДАНИЯ

И МЕТОДИЧЕСКИЕ УКАЗАНИЯ ПО ИХ ВЫПОЛНЕНИЮ

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...