Данная статья об отображении данных из БД в отчете FastReport.
Продолжаем исследовать FastReport. Подключим базу данных. Я делаю это через FireDAC, но для примера это не так важно, так как FastReport обладает собственным компонентом TfrxDBDataSet, который подключается напрямую к TDataSet.
Вот что написано в руководстве пользователя
Компонент отвечает за навигацию по записям и обращение к полям. Это позволило не привязывать ядро FastReport к какой-либо библиотеке доступа к данным.
Создадим новый проект VСL и разместим следующие компоненты
Создадим подключение и отобразим множество в FDQuery1. Этот шаг я пропущу, так как про FireDAC все подробно расписано в другом разделе. Выберем компонент frxDBDataSet1 и выберем для него множество
Теперь 2 раза кликнем на frxReport1 > Попадем в визуальный редактор FastReport и выберем в нем Файл > Новый отчет, в результате увидим следующую картину
Обратите внимание – на центральном листе добавилось 3 блока
-ReportTitle1
-MasterData1
-PageFooter1
Это так называемые “бэнды”. Это что-то специфическое для FastReport. Но суть ясна, это некий логический блок, в котором отображаются те или иные данные и который обладает своими свойствами. “Бэнды” бывают разные. Вставлять их можно следующим образом
Но пока не будем усложнять и сделаем простой пример,таким образом…
Отчет > Данные Ставим галочку на frxDBDataSet1
После чего, в правой части увидим поля нашей базы данных
Теперь, согласно руководсву пользователя, у нас аж целых 4 варианта, я рассмотрю здесь только 2 самых простых
Способ №1
На бэнде с оранжевой полосой создать текстовое поле и написать на нем
[frxDBDataSet1.”Имя поля из БД”], например вот так
Способ №2
Просто перенести мышкой из дерева полей БД справа на бэнд с оранжевой полосой – на бэнд данных
В результате получим следующее
Последний штрих
Теперь на бэнде данных появилась надпись, которая отражает его ДатаСет.
Проверяем как отображаются данные
Теперь повесим на кнопку нашей формы такой обработчик
1 2 3 4 5 |
procedure TForm2.bShowReportClick(Sender: TObject); begin frxReport1.PrepareReport(); frxReport1.ShowPreparedReport; end; |
Проверяем и получаем такой же результат
Я здесь не стал заниматься оформительством – просто хотелось показать принцип отображения данных из БД в FastReport.