- •Создание отчетов с использованием генератора отчетов QuickReport
- •Теоретические сведения
- •Компоненты генератора отчетов QuickReport
- •Основные свойства компонента tQuickRep
- •Основные свойства компонента tqrBand
- •Операции и функции, используемые в выражениях
- •Значения свойства Data компонента tqrSysData
- •Технология создания отчетов
- •Лабораторное задание
- •Порядок выполнения лабораторной работы
- •Требования к отчету
Значения свойства Data компонента tqrSysData
Значение |
Включаемая информация |
qrsDate |
Текущая дата |
qrsDateTime |
Текущие дата и время |
qrsDetailCount |
Количество строк (записей) в таблице, а при использовании нескольких таблиц - количество строк в главной таблице |
qrsDetailNo |
Номер текущей строки (записи) в таблице |
qrsPageNumber |
Номер текущей страницы отчета |
qrsReportTitle |
Имя отчета, являющееся значением свойства ReportTitle компонента TQuickRep |
qrsTime |
Текущее время |
Компонент TQRGroup предназначен для группировки данных с целью подведения некоторых итогов в каждой группе. Он является потомком класса TQRBand и представляет собой полосу GroupHeader, которая печатается в начале каждой группы и предшествует в сетке отчета полосе Detail. Важнейшими свойствами компонента TQRGroup являются Expression и FooterBand.
Свойство Expression, задаваемое с помощью редактора формул (см. рис.3), используется как признак группировки данных и представляет собой выражение, по значению которого данные объединяются в группу. Если требуется показать в отчете значение этого выражения, то в полосе GroupHeader следует разместить компонент TQRExpr, у которого свойство Expression будет таким же, как у компонента TQRGroup. В качестве выражения можно использовать только индекс, имеющийся у таблицы, данные из которой группируются. Этот индекс должен быть определен в качестве текущего для компонента доступа к данным таблицы, указанного в свойстве DataSet компонента TQuickRep. Например, для компонента TTable текущий индекс определяется свойством IndexName или IndexFieldNames.
Чтобы итоги для группы отображались в отчете, помимо полосы GroupHeader в сетке отчета необходимо разместить полосу GroupFooter и расположить на ней компоненты TQRExpr для вычисления агрегатных (Statistical) функций: average - среднее значение для столбца (поля) или выражения, заданного в качестве аргумента; COUNT - количество строк (записей); Max - максимальное значение для столбца или выражения, заданного в качестве аргумента; MIN - минимальное значение для столбца или выражения, заданного в качестве аргумента; SUM - сумма значений для столбца или выражения, заданного в качестве аргумента.
Полоса GroupFooter образуется при размещении компонента TQRBand в сетке отчета, если для этого компонента задать свойство BandType равным rbGroupFooter. Соответствие полос GroupHeader и GroupFooter для каждой группы задается свойством FooterBand компонента TQRGroup, которое ссылается на компонент TQRBand, являющийся полосой GroupFooter, содержащей итоги для определенной группы.
Задавая пары полос GroupHeader и GroupFooter, можно сформировать несколько вложенных друг в друга групп, если такая вложенность обеспечивается текущим индексом таблицы.
Компонент TQRSubDetail предназначен для показа в отчете информации из подчиненной таблицы. Его свойство DataSet указывает имя компонента доступа к подчиненной таблице, информация из которого будет выводиться в полосу, заданную компонентом TQRSubDetail. В остальном компонент TQRSubDetail аналогичен компоненту TQRBand, у которого свойство BandType имеет значение rbDetail. Для строк подчиненной таблицы можно задать группировку с помощью компонента TQRGroup и соответствующего компонента TQRBand, настроенного на представление полосы GroupFooter.
Если необходимо задать заголовок и итоги для информации, выводимой в полосе, представленной компонентом TQRSubDetail, то следует воспользоваться составным свойством Bands, в которое входят два логических свойства HasHeader и HasFooter, указывающих на наличие или отсутствие заголовка и итогов соответственно.
Компонент TQRShape можно использовать для отображения внутренних вертикальных линий, разделяющих столбцы таблицы, разместив его в соответствующем месте конкретной полосы отчета. Далее следует задать свойству Shape компонента значение qrsVertLine (вертикальная линия) и установить в свойстве Height высоту линии, равную высоте полосы, на которой размещен компонент TQRShape.
Чтобы таблица в отчете отображалась с разделительными линиями, обрамляющими полосы отчета, удобно использовать составное свойство Frame, имеющееся у всех компонентов, представляющих полосы в сетке отчета, и содержащее семь свойств: логические свойства DrawBottom, DrawTop, DrawLeft, DrawRight, управляющие отображением нижней, верхней, левой и правой обрамляющих линий полосы соответственно; свойства Color, Width и Style, управляющие цветом, шириной и типом линии. Все эти составляющие свойства обрамления доступны в инспекторе объектов.