Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабы / мп44_45 / DB / БДлаб7.doc
Скачиваний:
29
Добавлен:
16.04.2013
Размер:
821.25 Кб
Скачать

Компоненты генератора отчетов QuickReport

Компонент TQuickRep, размещенный на форме, представляется сеткой отчета, в которую затем помещаются составные части отчета , например, полосы TQRBand. Основные свойства компонента TQuickRep приведены в табл.1.

Многие из этих свойств можно установить на этапе конструирования с помощью редактора свойств, если в локальном меню компонента TQuickRep выбрать пункт Report settings (рис.1).

Компонентом TQuickRep можно управлять с помощью имеющихся у него методов. В частности, метод Preview активизирует окно предварительного просмотра отчета (рис.2), а метод Print инициирует печать отчета на принтере. Чтобы на этапе конструирования просмотреть в окне предварительного просмотра содержимое отчета в том виде, как он будет выводиться на печать, нужно выббрать пункт Preview в локальном меню компонента TQuickRep. При этом некоторые данные (например, значения вычисляемых полей) отображаться не будут, поскольку они вычисляются только во время выполнения приложения.

Стандартное окно предварительного просмотра отчета не всегда удобно, поскольку его элементы управления невозможно изменить (например, русифицировать). Вместо этого окно можно использовать компонент TQRPreview, предназначенный для создания нестандартного окна просмотра. Чтобы отобразить отчет в нестандартном окне просмотра, нужно в форму с компонентом TQuickRep поместить компонент TQRPreview, настроить его и предусмотреть его активизацию методом Show.

Компоненты TQRBand задают полосы отчета и используются для размещения на них таких компонентов, отображающих информацию, как TQRLabel, TQRDBText, TQRDBImage и т.п. Основные свойства компонента TQRBand приведены в табл.2.

Свойство BandType указывает назначение полосы, например: rbTitle - полоса содержит заголовок отчета; rbPageHeader - полоса содержит верхний колонтитул; rbDetail - полоса содержит информацию из набора данных, заданного свойством DataSet компонента TQuickRep (полоса выводится каждый раз при переходе на новую запись в наборе данных; эта полоса повторяется для всех записей набора данных, начиная с первой записи и кончая последней; позиционирование на первую запись и последовательный их перебор осуществляется компонентом TQuickRep автоматически).

Поместить компонент TQRBand в сетку отчета и указать назначение представляемой им полосы отчета можно двумя способами:

  1. выбрать компонент TQRBand в палитре компонентов, разместить его на компоненте TQuickRep и выбрать значение свойства BandType, соответствующее назначению полосы;

  2. в группе Bands окна установки параметров отчета (см. рис.1) пометить "галочкой" переключатель, соответствующий включаемой в отчет полосе. Все указанные таким способом полосы будут помещены в сетку отчета после закрытия окна.

Компонент TQRBand может обрабатывать только события AfterPrint и BeforePrint, которые наступают соответственно после окончания и перед началом печати или просмотра полосы отчета.

Компонент TQRExpr позволяет поместить в отчет результат вычисления выражения, которое формируется с помощью редактора формул. Окно редактора формул (рис.3) активизируется кнопкой, имеющейся в поле свойства Expression этого компонента, которое отображается в окне инспектора объектов.

Поле Enter expression служит для ввода и редактирования выражения, которое может состоять из имен полей (столбцов) таблиц, функций и переменных, связанных знаками операций, набираемыми с помощью среднего ряда кнопок (табл.3). Имя поля таблицы (Data field), функция (Function) или переменная (Variable) добавляется в выражение с помощью вспомогательного окна, которое появляется при нажатии на соответствующую кнопку верхнего ряда.

Компонент TQRExpr может использоваться для вычисления итогов для групп строк в таблице. Чтобы функция, заданная свойством Expression, применялась отдельно к каждой группе, необходимо свойству ResetAfterPrint компонента TQRExpr присвоить значение True.

Компонент TQRSysData используется для включения в отчет вспомогательной или системной информации, вид которой определяется свойством Data этого компонента. Возможные значения свойства Data указаны в табл.4.

Компонент 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, имеющееся у всех компонентов, представляющих полосы в сетке отчета, и содержащее 7 свойств: логические свойства DrawBottom, DrawTop, DrawLeft, DrawRight, управляющие отображением нижней, верхней, левой и правой обрамляющих линий полосы соответственно; свойства Color, Width и Style, управляющие цветом, шириной и типом линии. Все эти составляющие свойства обрамления доступны в инспекторе объектов.

Соседние файлы в папке DB