Строим кросс-отчет

 Перейдем от теории к практике. Построим простой кросс-отчет, показывающий зарплату сотрудников за четыре года. Для этого нам понадобится таблица crosstest, которая находится в папке FastReport DEMOS\MAIN. Таблица содержит данные следующего характера:

 

Name        Year        Salary

Ann        1999        3300

Ben        2002        2000

….

 

 Как обычно, создаем новый проект в Delphi, кладем на форму компоненты TTable, TfrxDBDataSet, TfrxReport и настраиваем их:

 

Table1:

DatabaseName = 'c:\Program Files\FastReports\FastReport 3\Demos\Main'

TableName = ' crosstest.db'

 

естественно, значение свойства DatabaseName должно соответствовать пути к вашей папке с FastReport!

 

frxDBDataSet1:

DataSet = Table1

UserName = 'SimpleCross'

 

 Для построения кросс-отчетов необходимо использовать компонент TfrxCrossObject _img184 из палитры компонент FastReport. Просто положите его на форму – ничего настраивать не требуется. При этом в список "uses" вашего проекта добавится модуль frxCross – он содержит всю необходимую функциональность.

 

 Зайдем в дизайнер отчета. Первым делом подключим наш источник данных в меню "Отчет|Данные…". На лист отчета положим объект "Кросс-таблица БД" 159:

 

_img186

 

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

 

_img187

 

 Цифрами отмечены:

 

1 – выпадающий список доступных источников данных;

2 – список полей в выбранном источнике данных. Поля из этого списка можно перетаскивать в списки 3, 4, 5;

3 – список полей, которые образуют заголовок строки;

4 – список полей, которые образуют заголовок столбца;

5 – список полей, которые образуют ячейку таблицы;

6 – здесь отображается структура будущей таблицы.

7 – настройки объекта.

 

 Как видно, действовать здесь придется только мышью. В нашем случае достаточно перетащить поля из списка 2 в списки 3, 4, 5, как показано на рисунке. Пока больше делать ничего не будем - закроем редактор кнопкой ОК. Мы увидим, что объект отображает свою структуру на странице отчета:

 

clip0155

 

 Если сейчас запустить отчет, мы увидим следующее:

 

_img196