Первый отчет 7 Компоненты 11 Создание отчетов 19 Обзор печатных (printable) компонент 35

Вид материалаОтчет

Содержание


Copyright 1999, NPS, перевод на русский язык Оглавление
Что такое QuickReport 3?
Первый отчет
Секции (Band) компоненты
Печатные (Printable) компоненты
TQRMemo. Очень похож на стандартный компонент TMemo
TImage, и может быть установлено в design time с помощью свойства Picture
Просмотр и композитные отчеты
TQRCompositeReport компонента
Несовместимость версий
Создание отчетов
Добавляем TQuickRep
Свойства Units и Zoom
Размер страницы и границы
Units, в данном случае в дюймах. Границы видны в как синии линии в компоненте TQuickRep
Свойство Units
Свойство Units
Custom и установить Length
Свойство Units
Выбор шрифта
...
Полное содержание
Подобный материал:
  1   2   3   4   5   6


Build Reports
using
QuickReport 3


for Borland Delphi











Distributed Worldwide by QBS Software Ltd




















Copyright 1999, NPS, перевод на русский язык



Создание отчетов с помощью

QuickReport 3

для Borland Delphi











Distributed Worldwide by QBS Software Ltd




















Copyright 1999, NPS, перевод на русский язык

Оглавление


Оглавление 4

Что такое QuickReport 3? 5

Первый отчет 7

Компоненты 11

Создание отчетов 19

Обзор печатных (printable) компонент 35

Создание собственного просмотра 40

Дополнительные ресурсы 44

Что такое QuickReport 3?


QuickReport 3 это набор компонент для Delphi позволяющий вам построить отчет из базы данных быстро и просто. Позволяет не только отпечатать отчет, но и просмотреть его на экране, что позволяет пользователю проверить результат без порчи бумаги и экспортировать отчет в другие форматы, такие как простой ASCII текст, текст разделенный запятыми (CSV) и в HTML.

QuickReport сам написан на Delphi и знает все про модель Delphi обработки баз данных. Поэтому вы можете для создания отчетов в традиционных базах данных, базирующихся на BDE, таких как Paradox и dBase, клиентских наборов данных используемых в многоуровневой среде (multi-tier), новое для Delphi 5 ADO и Interbase Express components, так же альтернативные движки третьих сторон, такие как Apollo. Вы можете использовать QuickReport и для печати данных не из баз, если в этом есть потребность.

Данное руководство разработано для того, что бы быстрее освоить QuickReport, так что вы можете немедленно начать использовать его в ваших приложениях.

А также


QuickReport это прекрасный продукт, но если вам нужны расширенные возможности, то вы можете их расширить с помощью QuickReport Pro. В версию Pro включено все, что имеется в обычной версии плюс:
  • Три дополнительных фильтра:
  1. Excel XLS: XLS фильтр совместим с версией Excel 4 и позже, и предоставляет простой и надежный механизм для экспортирования данных в электронную таблицу.
  2. Rich Text RTF: RTF фильтр базируется на спецификации Microsoft RTF версии 1.5, поддерживает больше возможностей, чем TRichEdit.
  3. Windows Metafile WMF: WMF фильтр позволяет сохранить отчет в мета графическом формате.
  • Несколько дополнительных компонент.
  1. TQREditor построитель отчетов для конечного пользователя, что позволяет поставлять отчеты отдельно от программы.
  2. TQuickAbstractRep наследник от базового класса TcustomQuickRep, который не использует TDataset - используйте это для построения своих собственных систем
  3. TQRLoopBand печатает секцию несколько раз в зависимости от свойства PrintCount - прекрасная вещь для создания бланк форм.
  4. TQRListWizard позволяет создать отчет на основе списка полей вашей таблицы
  5. Прекрасная поддержка через email.
  6. Полные исходные тексты. Программист может просто модифицировать код для локализации на конкретный язык, адоптировать в соответствии с требованиями локального стандарта на интерфейсы, добавить новые свойства и т.д.
  7. Больше демо проектов, с углубленным качеством, включая примеры использования всех дополнительных свойств версии Pro, и дополнительная техника по написанию собственных функций для анализатора выражений.

Вы можете получить QuickReport Professional путем заполнения формы заказа на нашем web сайте, или у наших дистрибуторов QBS Software Ltd на ссылка скрыта или у вашего локального продавца Delphi.


Первый отчет


Наилучший путь познать QuickReport это посмотреть его в действии. Данная глава показывает, как создать очень простой отчет. Запустите Дельфи и выполните следующие шаги:
  1. Выберите File | New Application.
  2. Бросьте TTable компонент на главную форму.
  3. С помощью Object Inspector установите свойство DatabaseName на ‘DBDemos’, TableName на ‘CUSTOMER.DB’ и Active в True.
  4. Бросьте TQuickRep компонент на главную форму. Размеры и позиция не имеют никакого значения.
  5. Установите свойство DataSet на ‘Table1’. Это ключевой шаг. Генератор отчетов проходит по всем записям в DataSet, только в этом случае Table1, может быть распечатан или просмотрен.
  6. Если необходимо, то раскройте свойство Bands в Object Inspector путем нажатия на значок +. Установите HasDetail в True. Вы увидите, как появится секция в вашем отчете; смена свойства в действительности создает DetailBand1 объект.
  7. Бросьте TQRDBText компонент на вновь созданную секцию.
  8. Смените свойство DataSet на ‘Table1’ и DataField на ‘Company’.



В данный момент вы должны видеть не что подобное, изображенному на рисунке Figure 1.

Figure 1 – Setting up a basic report



Для проверки, что вы все выполнили правильно, просмотрите отчет, для этого в любом месте TQuickRep щелкните правой кнопкой мышки и выберите Preview из меню. Если вы все сделали правильно, то вы должны увидеть окно просмотра с вашими данными, как это показано на Figure 2.


Figure 2 – The preview window



Если вы видите это, то это значит, что вы создали отчет, который работает в design time. Конечно, не всегда все получается сразу. Если вы получили пустой лист, то проверьте, что выполнили все выше описанные шаги полностью – обычно забывают установить свойство TTable1.Active в значение True. Подобно если вы видите, что отчет содержит только одну строку – ‘Kauai Dive Shoppe’ – то проблема в том, что вы забыли связать QuickRep1 Dataset с TTable1.

Еще одна частая проблема, что вы не видите кнопок на линейке в форме просмотра. Тут никто не виноват (): вы должны связаться с производителем операционной системы вашего компьютера и сказать ‘DLL Hell’. Specifically, your machine’s copy of the common control library (comctrl32.dll) is before 4.72, and needs updating. (От переводчика - замените comctrl32.dll на более свежую).

Вы также можете загрузить самую свежую версию comctrl32.dll с сайта Microsoft soft.com. Но поскольку данный файл входит в комплект поставки Internet Explorer и Windows Service Packs, то вы можете взять его с вашего CD. (В действительности вряд ли подобный баг вас затруднит как разработчика)

Теперь заставим данный отчет работать в откомпилированной программе. Вы должны написать код для вызова TQuickRep.Preview:

  1. Разместите клавишу на вашей форме и установите ее свойство в ‘Просмотр’
  2. Дважды щелкните по данной кнопке, для добавления обработчика OnClick. Добавьте одну строчку кода:


procedure TForm1.Button1Click(Sender: TObject);

begin

QuickRep1.Preview;

end;


Теперь запустите программу и нажмите кнопку Просмотр. Должно появится окно просмотра. Если вы желаете напечатать отчет напрямую на принтер по умолчанию, то просто смените слово Preview на слово Print, то есть

procedure TForm1.Button1Click(Sender: TObject);

begin

QuickRep1.Print;

end;


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

Для того, что бы сделать данный пример похожим на настоящее приложение, сделаем еще несколько шагов:

  1. Создаем другую форму, назовем ее как Form2
  2. Сделаем ее главной формой Project | Options | Main form to Form2
  3. Бросим кнопку на Form2
  4. Напишем код в обработчике события кнопки

procedure TForm2.Button1Click(Sender: TObject);

begin

Form1.QuickRep1.Preview;

end;
  1. Откомпилируем проект. Компилятор возмутится, что на Unit1 нет ссылки в Unit2’s Uses, и предложит исправить код, соглашаемся.



Программа должна быть снова откомпилирована и запущена, и теперь выглядит лучше и более ‘реалистично’. Конечный пользователь уже не видит компонента TQuickRep.

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