
Лабораторное задание и порядок выполнения работы
Ознакомиться с назначением компонентов генератора отчетов QuickReport и технологией создания отчетов; освоить технологию, создав отчеты, рассмотренные в лабораторной работе.
Воспользовавшись созданным простейшим отчетом, разработать приложение, которое формирует отчет с таблицей Person, в котором выводятся заголовки столбцов на русском языке (Номер, ФИО, Дата рожд. и т.д.), а строки отсортированы по адресам квартир. Предусмотреть обрамления строк и столбцов отчета линиями.
Изучить назначение параметров, устанавливаемых с помощью редактора свойств компонента TQuickRep, и разработать приложение, которое формирует отчет с таблицей Person, в котором выводятся верхний и нижний колонтитулы, номера страниц, дата и время формирования отчета.
Разработать приложение, которое формирует трехколоночный отчет для таблицы Person, в котором выводятся только адреса квартир, количество жителей и среднедушевой доход жителей каждой квартиры (использовать компонент TQRGroup и индексирование таблицы по адресу квартиры; полосу детальной информации сделать невидимой или пустой, но сохранить в сетке отчета).
Разработать приложение, которое формирует отчет с таблицами Flat и Person, в котором выводятся сведения о квартире и жителях, зарегистрированных в ней (использовать компонент TQRSubDetail и соединение таблиц как главной и подчиненной).
Модифицировать прикладную систему, спроектированную в последней работе первой части лабораторного практикума в соответствии с конкретным вариантом задания, реализовав в ней процедуры формирования отчетов, связанные с пунктами меню "Отчеты".
Оформить отчет по результатам выполнения лабораторной работы.
Требования к отчету
Отчет должен содержать:
название и цель работы;
сведения о компонентах, используемых для формирования отчетов;
сведения о настройке компонентов, использованных в разработанных приложениях;
эскизы отчетов, формируемых модифицированной прикладной системой, спроектированной в последней работе первой части лабораторного практикума для конкретного варианта задания, и схему реализованных прикладных процессов выдачи отчетов.
Литература
Илюшечкин, Илюшечкина
Петров
Фаронов, Шумаков
Ковязин А., Востриков С. Мир InterBase. Архитектура, администрирова-ние и разработка приложений баз данных в InterBase/Firebird/Yaffil./ 2-е издание. - М.: Кудиц-Образ, 2003. - 496 с.
Таблица 1
Основные свойства компонента TQuickRep
Свойство |
Назначение |
Bands |
Множество полос, включаемых в отчет. Каждой полосе соответствует определенный элемент свойства: HasColumnHeader - заголовки столбцов; HasDetail - детальная информация; HasPageFooter - нижний колонтитул; HasPageHeader - верхний колонтитул; HasSummary - итоги для отчета; HasTitle - заголовок отчета. Полоса включается в отчет, если соответствующий элемент свойства равен True |
DataSet |
Указывает набор данных, для которого создается отчет. Если нужно вывести связанную информацию из нескольких таблиц базы данных, то ее объединяют в одном наборе данных при помощи компонента Tquery. Если таблицы связаны отношением "главная-подчиненная", то указывается главная таблица, а ссылка на соответствующие подчиненные таблицы задается в компонентах TQRSubDetail |
Description |
Описание отчета |
Font |
Шрифт, которым будет печататься информация в отчете |
Frame |
Параметры рамки отчета |
Options |
Параметры отчета |
Page |
Параметры страницы отчета |
ShowProgress |
Разрешает (True) или запрещает (False) показывать индикатор процесса печати отчета |
Units |
Единицы измерения расстояний в отчете (дюймы, миллиметры, пиксели и т.д.) |
Zoom |
Масштаб отображения отчета (в процентах от его размеров на листе бумаги) на этапе разработки |
Таблица 2
Основные свойства компонента TQRBand
Свойство |
Назначение |
AlignToBottom |
Если значение этого свойства задано равным True, то полоса печатается всегда внизу страницы; причем если это полоса детальной информации, то она будет единственной на странице |
BandType |
Назначение полосы |
Font |
Шрифт, которым будет печататься информация, размещенная на полосе. Это свойство имеет более высокий приоритет, чем аналогичное свойство компонента TQuickRep |
Frame |
Параметры рамки вокруг полосы |
Size |
Размер полосы |
Таблица 3
Операции и функции, используемые в выражениях
Операция или функция |
Действие |
+ - * / |
Арифметическое сложение, вычитание, умножение, деление. Операция "+" может также использоваться для сцепления строк |
And Or Not |
Логическое умножение (И), сложение (ИЛИ), отрицание (НЕ) |
> < >= <= <> = |
Сравнение значений |
average (expr) |
Агрегатная функция возвращает среднее значение для выражения expr, содержащего имя поля (столбца) |
COPY (str,pos,len) |
Возвращает для строки символов str подстроку длиной len, начиная с позиции pos |
COUNT |
Агрегатная функция возвращает количество записей (строк) в таблице или группе |
DATE |
Возвращает текущую дату в виде строки символов |
DIV (x,y) |
Целочисленное деление x на y |
FALSE |
Возвращает логическую константу "ложь" |
FORMATNUMERIC (f,num) |
Форматирует числовое значение num, используя шаблон f. Шаблон задается так же, как для функции FormatFloat языка Object Pascal |
FRAC (num) |
Возвращает дробную часть числового значения num |
IF (expr, x, y) |
В зависимости от логического значения выражения expr возвращает либо x (expr=True), либо y (expr=False) |
INT (num) |
Возвращает целую часть числового значения num |
LOWER (str) |
Преобразует все символы строки str в нижний регистр |
MAX (expr) |
Агрегатная функция возвращает максимальное значение для выражения expr, содержащего имя поля (столбца) |
MIN (expr) |
Агрегатная функция возвращает минимальное значение для выражения expr, содержащего имя поля (столбца) |
PRETTY (str) |
Преобразует первый символ строки в верхний регистр, а все остальные - в нижний |
SQRT (num) |
Вычисляет квадратный корень из числового значения num |
STR (num) |
Преобразует числовое значения num в строку символов |
SUM (expr) |
Агрегатная функция возвращает сумму значений для выражения expr, содержащего имя поля (столбца) |
TIME |
Возвращает текущее время в виде строки символов |
TRUE |
Возвращает логическую константу "истина" |
TYPEOF (expr) |
Возвращает тип выражения expr в виде строки символов (например, 'BOOLEAN') |
UPPER (str) |
Преобразует все символы строки str в верхний регистр |
Таблица 4
Значения свойства Data компонента TQRSysData
Значение |
Включаемая информация |
qrsDate |
Текущая дата |
qrsDateTime |
Текущие дата и время |
qrsDetailCount |
Количество строк (записей) в таблице, а при использовании нескольких таблиц - количество строк в главной таблице |
qrsDetailNo |
Номер текущей строки (записи) в таблице |
qrsPageNumber |
Номер текущей страницы отчета |
qrsReportTitle |
Имя отчета, являющееся значением свойства ReportTitle компонента TQuickRep |
qrsTime |
Текущее время |
Рис.1. Окно установки параметров
отчета
Рис.4. Отчет с заголовком, полосой
детальной информации и итогами
Рис.3.Окно редактора формул
Рис.5. Отчет с группировкой данных
Рис.6.Компоненты отчета с информацией
из главной и подчиненной таблиц
Рис.7.Предварительный просмотр
отчета с информацией из главной и
подчиненной таблиц
Рис.8.Компоненты отчета
в свободной форме
Рис.9.Предварительный
просмотр отчета всвободной
форме
на стадии разработки
Рис.10.Предварительный
просмотр отчета всвободной
форме
при выполнении приложения
Рис.2. Окно предварительного просмотра
отчета