Строим кросс-отчет |
Перейдем от теории к практике. Построим простой кросс-отчет, показывающий зарплату сотрудников за четыре года. Для этого нам понадобится таблица 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 из палитры компонент FastReport. Просто положите его на форму – ничего настраивать не требуется. При этом в список "uses" вашего проекта добавится модуль frxCross – он содержит всю необходимую функциональность.
Зайдем в дизайнер отчета. Первым делом подключим наш источник данных в меню "Отчет|Данные…". На лист отчета положим объект "Кросс-таблица БД" :
Все настройки делаются с помощью редактора объекта. Вызовем его, сделав двойной щелчок мышью на объекте:
Цифрами отмечены:
1 – выпадающий список доступных источников данных; 2 – список полей в выбранном источнике данных. Поля из этого списка можно перетаскивать в списки 3, 4, 5; 3 – список полей, которые образуют заголовок строки; 4 – список полей, которые образуют заголовок столбца; 5 – список полей, которые образуют ячейку таблицы; 6 – здесь отображается структура будущей таблицы. 7 – настройки объекта.
Как видно, действовать здесь придется только мышью. В нашем случае достаточно перетащить поля из списка 2 в списки 3, 4, 5, как показано на рисунке. Пока больше делать ничего не будем - закроем редактор кнопкой ОК. Мы увидим, что объект отображает свою структуру на странице отчета:
Если сейчас запустить отчет, мы увидим следующее:
|