Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛР_РиЭУБД.doc
Скачиваний:
2
Добавлен:
01.05.2025
Размер:
4.09 Mб
Скачать

Задание для самостоятельного выполнения

Добавьте в разработанное приложение критерий фильтрации «Обложка».

Лабораторная работа №13 Создание отчетов

Цель работы:

- научиться создавать отчеты с помощью RaveReport;

Теоретическая часть

Изучите теоретический материал, загрузив из папки файл RaveReport.pps

Практическая часть

  1. Скопируйте любой старый проект целиком в новую папку и откройте.

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

  3. Добавьте компонент MainMenu и создайте разделы:

Таблица 13.1.

Разделы главного меню Раздел Подразделы

Файл Выход Отчеты Кадры По телефонам По адресам

  1. Для самого отчета нам потребуется новая форма. Создайте ее, свойству Name присвойте значение fRepKadr, а модуль сохраните под именем RepKadr.

  2. Командой "File -> Use Unit" подключим к этой форме модуль данных DM, а к главной форме - только что созданный новый модуль.

  3. В палитре компонентов перейдем на вкладку QReport. Самым первым компонентом на вкладке является QuickRep - основа всех отчетов. Установите его на новую форму, и он примет вид разлинованного листа. Это своего рода холст, на котором мы будем собирать различные части нашего отчета.

  4. Выделите QuickRep и обратите внимание на его свойства. В самом верху находится свойство Bands (Ленты, полосы - англ.). Это раскрывающееся свойство, оно содержит шесть параметров. Щелкните по плюсу слева от свойства, чтобы раскрыть его. По умолчанию, все параметры имеют значение False, то есть, не установлены. Если какой-либо параметр перевести в значение True, на холсте появится соответствующая полоса. Попробуйте установить все параметры:

- HasColumnHeader - Заголовки колонок. Здесь мы будем вписывать названия колонок таблицы.

- HasDetail - Детальная информация. На этой ленте формируются строки таблицы.

- HasPageFooter - Подвал (нижний колонтитул). Здесь можно установить информацию, которая будет появляться в нижней части каждой страницы.

- HasPageHeader - Шапка (верхний колонтитул). Здесь можно установить информацию, которая будет появляться в верхней части каждой страницы.

- HasSummary - Суммарная информация. Содержимое этой полосы печатается один раз в самом конце отчета.

- HasTitle - Заголовок отчета.

  1. Переведите в True полосы HasPageHeader, HasTitle, HasColumnHeader, HasDetail и HasPageFooter. Не установленной останется только полоса HasSummary. Если вы дважды щелкните мышью по свободному месту холста, появится настроечное окно:

Рис.13.2. Окно настроек компонента QuickRep

  1. Теперь приступим к формированию отчета. На холсте у нас уже должны быть расположены пять полос. Теперь мы можем на эти полосы устанавливать другие компоненты. На самом верху холста находится полоса Page Header, которая, как мы уже знаем, является верхним колонтитулом. Установите в левой части этой полосы компонент QRSysData - компонент с различного рода системной информацией. Нас интересует свойство Data этого компонента. Data содержит несколько свойств, формирующих отображаемую информацию. Разберем эти свойства.

- qrsDate (Вывод текущей даты)

- qrsDateTime (Вывод текущих даты и времени)

- qrsDetailCount (Количество строк формируемой таблицы)

- qrsDetailNo (Номер текущей строки таблицы)

- qrsPageNumber (Номер текущей страницы отчета)

- qrsReportTitle (Заголовок отчета)

- qrsTime (Вывод текущего времени)

  1. Установим для этого свойства значение qrsDateTime, чтобы пользователь мог видеть, когда был сформирован отчет. Далее выделим всю полосу Page Header и в свойстве Frame переведем в True параметр DrawBottom. Это свойство позволяет задать обрамление выделенной полосе, а параметр DrawBottom рисует линию в нижней части полосы. То есть, мы визуально отделили колонтитул от данных листа.

  2. В нижней части холста располагается полоса Page Footer (подвал). Здесь желательно установить верхнюю линию в свойстве Frame, отделив от данных нижний колонтитул. А по центру полосы установить еще один компонент QRSysData, установив свойство Data в значение qrsPageNumber. Этот компонент будет выводить номер текущей страницы в нижней части листа.

  3. Напишем заголовок отчета. Для этого установите компонент QRLabel в центре полосы Title. QRLabel похож на обычный Label и служит тем же целям: выводит на лист какой то текст.

  4. Выделите его, и в свойстве Caption напишите "Отчет по кадрам".

  5. Чтобы заголовок был красивым, щелкните дважды по свойству Font, чтобы открылось окно шрифта. Здесь установите шрифт Times New Roman, начертание выберите жирное, а размер шрифта пусть будет 18 (вы можете использовать настройки по собственному выбору). Можно изменять и цвет шрифта, но при этом имейте в виду, что чаще всего отчеты печатают на черно-белых принтерах, так что злоупотреблять разными цветами не рекомендуется.

  6. Далее займемся полосой Column Header (Заголовки колонок). Здесь установите рядом пять компонентов QRLabel, в свойстве Caption которых напишите:

Фамилия

Имя

Отчество

Дата рождения

Образование

  1. Далее займемся полосой Detail, на которой, собственно, и будет формироваться таблица. Здесь нам нужно будет в самом крайнем положении слева установить компонент QRSysData, в свойстве Data которого выбрать qrsDetailNo - перед каждой строкой будет выходить ее номер.

  2. Далее установите пять компонентов QRDBText, в которых будут отражаться данные из соответствующих полей таблицы. Эти компоненты соответствуют обычному DBText, с которым мы неоднократно сталкивались. Расположите их точно под названиями столбцов, чтобы таблица была красивой. При этом может оказаться, что компонент QRSysData "наплывает" на QRDBText - ничего страшного, данные все равно не будут мешать друг другу.

  3. Выделите все QRDBText, и в их свойстве DataSet выберите нашу таблицу fDM.TLichData, затем поочередно в свойстве DataField этих компонентов выберите соответствующие поля таблицы

Фамилия

Имя

Отчество

Дата_Рожд

Образование

  1. Кроме того, сам компонент QuickRep1, который является "холстом" отчета, также должен знать, из какой таблицы ему нужно брать данные. Поэтому выделите его, и в свойстве DataSet также выберите нашу таблицу fDM.TLichData. Если этого не сделать, то в отчете будет выходить лишь текущая запись таблицы, а не все ее записи.

Собственно, отчет уже готов:

Рис. 13.2. Отчет

  1. Вернитесь в главное окно проекта и сгенерируйте обработку команды меню "Отчеты - Кадры". В созданной процедуре напишите такую строку (вы ведь добавили к главному окну командой File - Use Unit наш отчет?):

{Отчет Кадры}

procedure TfMain.N5Click(Sender: TObject);

begin

fRepKadr.QuickRep1.PreviewModal;

end;

  1. После того, как вы сохраните проект, скомпилируете его и выполните команду меню, появится подобное окно с отчетом:

Рис. 13.4. Окно отчета