Отчет "Список клиентов"

       Наш второй отчет будет значительно сложнее первого - он будет содержать данные из таблицы БД - список клиентов некоторой фирмы. Для этого воспользуемся демонстрационной базой данных, которая идет в комплекте с Delphi – DBDEMOS. Создадим новый проект в Delphi. На форму положим компонент TTable и настроим его свойства:

 

DatabaseName = 'DBDEMOS'

TableName = 'Customer.db'

 

       Для того, чтобы работать с таблицей из FastReport, добавим компонент TfrxDBDataSet и настроим его свойство:

 

DataSet = Table1

 

       Наконец, положим на форму основной компонент FastReport - TfrxReport. Зайдем в дизайнер и нажмем кнопку "Новый отчет", чтобы FastReport автоматически создал пустой шаблон с тремя бэндами - "Заголовок отчета", "Данные 1 уровня" и "Подвал страницы". Чтобы наша таблица стала видна в FastReport, необходимо разрешить ее использование. Для этого выберем пункт меню "Отчет|Данные..." и пометим нашу таблицу (она сейчас единственная в списке) галочкой. После того, как мы закрыли диалоговое окно, таблица и ее поля стали видны в служебном окне "Данные".

 

       Приступим к созданию формы отчета. На бэнд "Заголовок отчета" положим объект "Текст" с текстом "Список клиентов". Бэнд "Данные 1 уровня" подключим к нашему источнику данных. Это можно сделать тремя способами:

 

- сделать двойной щелчок на бэнде;

- выбрать пункт "Редактировать..." из контекстного меню бэнда;

- щелкнуть на свойстве DataSet в инспекторе объектов.

 

       Теперь разместим на бэнде четыре объекта, которые будут отображать номер клиента, его наименование, телефон и факс. Сделаем это разными способами, чтобы  продемонстрировать широкие возможности дизайнера FastReport. Первый объект "Текст" положим на бэнд и наберем в нем текст "[frxDBDataSet1."CustNo"]". Это самый неудобный способ, т.к. приходится ссылку на поле писать вручную, и мы можем легко ошибиться. Чтобы облегчить вставку таких ссылок в текст, можно воспользоваться конструктором выражений - кнопка его вызова расположена на панели инструментов в редакторе объекта "Текст". Для вставки нашего поля нажмем эту кнопку и дважды щелкнем на нужном элементе в открывшемся диалоге. Нажав кнопку ОК, закрываем диалог и видим, что поле вставлено в текст.

 

       Второй способ вставки поля БД в отчет похож на тот, что широко применяется в среде Delphi - мы сделаем это с помощью настройки свойств в инспекторе объектов. Положим на бэнд второй объект, в редакторе ничего писать не будем. В инспекторе настроим свойства объекта:

 

DataSet = frxDBDataSet1

DataField = 'Company'

 

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

 

       Третий способ - drag&drop нужного поля из служебного окна "Данные" в отчет. Это самый простой и наглядный способ. Схватите мышкой поле "Phone" и перетащите его на бэнд. Единственное, что надо сделать в нашем случае - это отключить флажок "Создать заголовок" в нижней части окна "Данные", иначе вместе с нужным полем мы создадим лишний в данном случае объект, содержащий название поля.

 

       Наконец, четвертый способ. Поместите пустой объект "Текст" на бэнд. Теперь подведите указатель мыши к объекту. В правой части объекта вы увидите изображение кнопки со стрелкой вниз, как на раскрывающихся списках. Это и есть раскрывающийся список полей БД. Нажмите на кнопку и выберите из списка поле  "FAX". Вы можете пользоваться этой возможностью, когда бэнд подключен к данным. Эта возможность настраивается в опциях дизайнера (меню "Вид|Настройки...", флажок "Показывать выпадающий список полей").

 

clip0145

 

       Итак, наш отчет готов:

 

_img100

 

       Нажмем кнопку предварительного просмотра и посмотрим, что получилось.

 

_img101