Печать таблиц с помощью Quick Reports — КиберПедия 

Общие условия выбора системы дренажа: Система дренажа выбирается в зависимости от характера защищаемого...

Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов (88‰)...

Печать таблиц с помощью Quick Reports

2020-06-05 122
Печать таблиц с помощью Quick Reports 0.00 из 5.00 0 оценок
Заказать работу

Как видишь, создание отчётности с помощью Quick Report задача не сложная. За каких-то 10 минут мы создали красивый и удобный отчёт, который легко распечатать. В нём мы подготавливали к печати одну запись из таблицы. Но что делать, если нужно распечатать все записи базы данных? Неужели нужно для каждой строчки ставить отдельные компоненты? Ну конечно же нет, всё делается очень даже просто.

Открывай пример из прошлой части, сейчас мы его подкорректируем. Открой модуль ReportForm, где у нас находятся компоненты отчётности. Выдели QuickRep1 и в свойстве Bands установи true у параметра HasColumnHeader. На форме появиться новый блок Column Header, который можно использовать для создания заголовков таблиц.

Теперь удерживая Ctrl обведи все компоненты QRLabel в блоке DetailBand1. Выбери из меню Edit главного меню Delphi пункт Cut, чтобы вырезать компоненты в буфер обмена. Теперь выдели блок ColumnHeaderBand1 и выбери из меню Edit главного меню Delphi пункт Paste, чтобы вставить вырезанные компоненты из буфера обмена в блок ColumnHeaderBand1.

Снова выделяем компонент QuickRep1 и в свойстве DataSet указываем таблицу DataModule1.BookTable. Если сделать это, то компонент QuickRep1 автоматически будет перебирать все записи из этой таблицы и использовать их в компонентах, которые стоят в блоке DetailBand1. Как я уже говорил, этот блок предназначен для создания строк таблиц, так что теперь ты можешь увидеть это на практике.

Запусти программу и нажми кнопку печати. Перед тобой должно открыться окно, похожее на рисунок 15.3.1. Как видишь, блок заголовка и ColumnHeaderBand1 распечатались только по одному разу, а блок DetailBand1 был напечатан для каждой строки нашей таблицы. Блок заголовков колонок будет печататься по одному разу вверху каждой страницы, а после него будут идти строки таблиц.

Рисунок 15.3.1 Окно предварительного просмотра.

В принципе, на этом можно было бы закончить разговор но мы же создаём таблицу, а для этого нужно нарисовать сетку. Вот тут можно заметить единственный недостаток отчётности с помощью Quick Report – каждую ячейку придётся рисовать отдельно, с помощью компонентов QRShape. В примере на диске я сделал рамку. Правда она получилась немного некрасивая, но у меня просто не было времени её поправлять. Если захочешь, то можешь украсить её на своё вкус, заодно и потренируешься работать с отчётами.

Печать связанных таблиц.

У нас уже получился достаточно хороший отчёт, но теперь я хочу ещё более усложнить задачу. У нас же в телефонном справочнике используется связанная таблица и хотелось бы, чтобы в выходном документе печатались все телефоны, принадлежащие людям!!! Можно снова написать SQL запрос, который будет создавать сводную таблицу из двух и потом использовать этот запрос для отчёта, вместо таблиц, но это не выход.

Брось на нашу форму отчёта ещё один компонент – QRSubDetail с закладки QReport. Этот компонент предназначен для перебора данных относящихся к подчинённым таблицам. Установи у него следующие свойства:

DataSet – здесь установи DataModule1.TelephonTable, чтобы связать блок к с таблицей «Телефоны», которая у нас является подчинённой к основному справочнику.

Master – здесь нужно указать главный компонент с основными данными. Выбери в этом свойстве QuickRep1.

Теперь брось на этот блок компонент QRLabel, чтобы сделать надпись «Телефон». Справа от него брось компонент QRDBText. У него установи свойство DataSet в DataModule1.TelephonTable, а свойство DataField в «Телефон».

Рисунок 15.4.1 Окно предварительного просмотра.

Теперь можешь запускать программу. Нажимай кнопку печати, и если ты ввёл в свою базу данных хоть какие-нибудь телефоны, то у тебя должно получиться нечто похожее на рисунок 15.4.1.

Дополнительные прибомбасы.

Здесь я покажу некоторые прибомбасы, которые можно добавить в свои отчёты. Я покажу некоторые компоненты, которые не только украшают любой отчёт, но и делают его более удобным и мощным.

Первый компонент в моём обзоре – QRExpr. Этот компонент очень удобен для создания вычисляемых полей именно для отчёта. Вычисления будут происходить автоматически и практически не влияют на скорость работы самой программы. У компонента есть свойство Expression. Если дважды щёлкнуть по нему, то перед тобой откроется окно, в котором можно создавать достаточно сложные расчёты. На рисунке 15.5.1 ты можешь увидеть это окно. Если нажать на кнопку Database field, то перед тобой откроется окно, в котором можно выбрать таблицу (таблица должна находиться на этой же форме) и поле, которое должно участвовать в расчёте.

Рисунок 15.5.1 Окно предварительного просмотра.

Если нажать на кнопку Function, то ты увидишь громадный список доступных функций. Под кнопкой Variable спрятаны переменные, которые могут так же помочь в расчётах.

Всё это расписывать нет смысла, потому что здесь возможностей просто куча плюс ещё тысяча. По работе с Quick Report можно писать отдельную книгу, а моя задача показать тебе основные возможности и направить на путь истинный. Что-то я заговорил, как самый настоящий проповедник.

Теперь посмотрим на компонент QRSysData. Мы уже использовали его и в свойстве Data ставили параметр qrsDateTime, чтобы можно было видеть дату и время распечатки документа. Но тут есть ещё несколько полезных параметров:

qrsDate – дата распечатки.

qrsDetailCount – количество строк в таблице.

qrsDetailNo – номер строки в таблице.

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

qrsReportTitle – заголовок отчёта.

qrsTime – время распечатки отчёта.

Теперь я хочу показать тебе, как можно ещё больше упростить создание отчёта. В Delphi есть мастер, который может облегчить создание отчётов. Для его вызова выбери из главного меню File пункт New и затем пункт Other. В появившемся окне перейди на закладку Business и выбери пункт QuickReport Wizard (рисунок 15.5.2).

Рисунок 15.5.2 Окно предварительного просмотра.

В принципе, мастер достаточно прост, но при использовании ADO таблиц он абсолютно не подходит. Если ты будешь работать с старыми базами типа dbf или paradox, (об этом в следующей главе) то этот мастер принесёт свои плоды, но при работе с ADO, он практически бесполезен.

Пока что нам больше подходят шаблоны, которые есть в том же окне создания новой формы, но на закладке Forms (смотри рисунок 15.5.3). Здесь три шаблона (все они содержат имя QuickReport), содержащие всё необходимое для создания отчёта и хорошо документированные поля. Попробуй посмотреть их сам.

Рисунок 15.5.3 Окно с шаблоном.


Поделиться с друзьями:

История развития пистолетов-пулеметов: Предпосылкой для возникновения пистолетов-пулеметов послужила давняя тенденция тяготения винтовок...

Общие условия выбора системы дренажа: Система дренажа выбирается в зависимости от характера защищаемого...

Особенности сооружения опор в сложных условиях: Сооружение ВЛ в районах с суровыми климатическими и тяжелыми геологическими условиями...

Кормораздатчик мобильный электрифицированный: схема и процесс работы устройства...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.014 с.