Глава VIII. Работа с отчетами 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Глава VIII. Работа с отчетами



Объект QuickRep

Отчет – это печатный документ, содержащий данные из таблиц или текстовых файлов.

Компоненты, предназначенные для создания отчетов, находятся на странице QReport Палитры компонентов. Большинство из них визуальные и похожи на компоненты страниц Standard, Additional, Data Controls.

Главным элементом отчета является компонент-отчет QuickRep – это основа, на которой размещаются другие компоненты. Он обычно размещается на отдельной форме, предназначенной для создания отчета.. При помещении на форму компонент QuickRep имеет вид страницы формата А4, масштаб которой можно изменить (свойство Zoom типа integer (по умолчанию – 100 %))

Помимо компонента QuickRep на форме размещают тот НД Table, для которого создается отчет.

Компонент QuickRep связывается с НД Table, для которого создается отчет, с помощью свойства DataSet, в котором выбирается имя НД, для которого создается отчет (например, Table1). При печати отчета в процессе выполнения приложения НД должен быть открыт. Если перед печатью отчета пользователь произвел фильтрацию или сортировку записей, то в распечатанный отчет попадут отфильтрованные или отсортированные записи НД.

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

При построении отчета на форму помещается компонент QuickRep и связывается с НД Table с помощью свойства DataSet. Потом компоненты QRBand (полосы) в соответствующем порядке. Свойство BandType определяет тип вставляемой полосы:

§ rbTitle – заголовок отчета (печатается вначале отчета под верхним колонтитулом);

§ rbPageHeader – верхний колонтитул, который печатается сверху на каждой странице;

§ rbDetail – данные записей НД; выводятся для каждой записи НД;

§ rbPageFooter – нижний колонтитул; печатается внизу на каждой странице;

§ rbSummary – итог отчета; выводится в конце отчета под всеми другими сведениями отчета, но выше нижнего колонтитула;

§ rbSubDetail – данные подчиненного НД для отчета “мастер-детальный”;

§ rbColumnHeader – заголовки столбцов; печатаются один раз на каждой странице над данными.

При создании в отчет нужно включать не более одной полосы каждого вида, так как при печати отчета «лишние» полосы одного и того же вида учитываться не будут.

Каждая полоса может иметь рамку, которой управляет свойство Frame.

Страница отчета тоже может иметь рамку, параметры которой задает свойство Frame компонента QuickRep. Рамку можно установить и с помощью диалогового окна изменения параметров страницы отчета (двойной щелчок по компоненту QuickRep или контекстное меню компонента QuickRep→Report Settings).

Для печати отчета предназначен метод Print, сразу после вызова которого отчет подготавливается к печати и направляется на установленный в системе принтер. Метод Print может вызываться, например, при нажатии кнопки «Печать», расположенной на форме, с которой пользователь работает. Для этой кнопки можно написать следующий обработчик события:

procedure TForm1.BitBtn1Click(Sender: TObject);

Begin

QuickRep1.Print;

end;

Если компонент-отчет QuickRep связан с НД, записи которого находятся в сетке DBGrid формы, то порядок записей отчета соответствует порядку записей, видимых пользователем на форме. После фильтрации или сортировки при печати отчета учитывается новый состав и порядок следования записей.

Для предварительного просмотра отчета перед печатью служит метод Preview компонента QuickRep, вызывающий окно просмотра. В этом окне можно:

§ просмотреть отчет в различных масштабах;

§ сохранить отчет в файле;

§ загрузить предварительно сохраненный отчет;

§ направить отчет на печать.

Пример

Table1.Preview; – команда для кнопки «Предварительный просмотр».

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

 

Компоненты, размещаемые в полосе

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

Можно разместить компонент и вне полосы отчета – на компоненте QuickRep. В этом случае он будет выводится на каждой странице отчета.

Обычно используются следующие компоненты отчета:

QRLabel – позволяет разместить в отчете произвольную текстовую строку.

QRDBText – служит для вывода значения поля записи НД; обычно размещается в полосе данных.

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

QRSysData – служит для вывода в отчете системной информации; свойство Data – выбор типа информации:

qrsColumnNo – номер текущего столбца;

qrsDate – текущая дата;

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

qrsDetailCount – число записей в НД;

qrsDetailNo – номер текущей записи;

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

qrsPageCount – общее число страниц отчета;

qrsTime – текущее время.

Свойство Text – отображает надпись, которая будет присутствовать перед компонентом QRSysData

QRImage – служит для вывода в отчете графической информации (аналогично компоненту Image); свойство Picture – загрузка рисунка.

QRShape – геометрическая фигура, размещаемая в любой полосе.

Практическая работа

Создадим отчет для таблицы Chitateli.db с возможностью предварительного просмотра перед печатью.

Расположить на форме три компонента для работы с таблицей Chitateli.db. Связать их между собою. Расположить кнопку Button «Предварительный просмотр».

Добавить к проекту еще одну форму, на которой будет располагаться отчет. Разместите на этой форме компонент QuickRep и Table (скопировать с первой формы). Для компонента QuickRep1 найдите свойство DataSet и выберите значение Table1.

На компоненте QuickRep1разместите один под другим 6 компонентов QRBand.

В свойстве BandType для каждой полосы (начиная с последней) установите значения:

§ верхний колонтитул (первая полоса);

§ заголовок отчета;

§ заголовки столбцов;

§ данные;

§ итог отчета;

§ нижний колонтитул (последняя полоса).

Необходимо создать отчет в соответствии с рисунком:

В верхнем колонтитуле расположите компонент QRSysData (свойство Data – qrsDate; свойство Text – Сегодня).

В заголовке отчета слева расместить компонент QRImage (свойство Picture→ вставить картинку bookopen.bmp). Рядом – компонент QRLabel (свойство Caption – Список читателей)

В строке заголовков столбцов – компоненты QRLabel.

В строке данных – компоненты QRDBText (для каждого свойство DataSet – Table1; свойство DataField – соответствующее поле).

В строке итог отчета – компонент QRLabel (свойство Caption.– Всего записей:), а рядом – компонент QRExpr (свойство Expression; в появившемся окне нажать кнопку Function; в списке Category выбрать Statistical; в списке Available function выбрать Count; нажать на кнопку Continue и ОК).

В строке нижнего колонтитула разместить компонент QRSysData (свойство Data – qrsPageNumber; свойство Text – Номер страницы отчета).

Просмотрите отчет в окне предварительного просмотра.

 

 

 

Подсоедините вторую форму к первой.

Для кнопки «Предварительный просмотр» напишите обработчик события:

QuickRep1.Preview;



Поделиться:


Последнее изменение этой страницы: 2016-06-23; просмотров: 181; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.21.100.34 (0.01 с.)