FastReport. Динамический вывод отчетов. Начало

Решил более детально изучить FastReport VCL, так как разрабатываю программу, в которой нужно динамически выводить отчеты. Это будет небольшой цикл статей, в котором мы пройдем от простого к сложному и по шагам разберем основные моменты работы с FastReport. Акцент я решил сделать именно на динамическом выводе отчетов, потому что информации в сети по этой части не так много.

В данной статье мы научимся создавать страницы и добавлять на них текст из кода Delphi и добьемся вот такого результата

16

17


Начнем!

Создадим VCL приложение и разместим на нём следующие компоненты

19

Далее, начнем обрабатывать кнопку следующим образом

Комментарии по коду

Разберем основные моменты.

Создание новых страниц. В отчете создано 2 страницы. Прямо из Delphi это можно сделать следующим образом

Это не единственный способ создавать страницы динамически. Можно также воспользоваться встроенными скриптами, стр. 20 мануала для программистов.

Суть простая, заходим в дизайнер отчетов > События > OnManualBuild > и далее пишем такой код

Если запустить это из дизайнера, то всё в порядке – 2-я страница открывается, а вот как запустить это из Delphi, вызвать метод

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

Мне, в моей задаче – нужен полный контроль над отчетами, поэтому позволить себе заготовку я не могу, я имею ввиду – заранее заготовленный файл формата fr3. В моей программе, пользователь формирует список нужных элементов и далее всё это должно формироваться в отчете, также должны быть титульная и финальная страницы. Поэтому динамический вывод отчетов – то, что необходимо как воздух.

Добавление новых элементов. Мне понравилось решение FastReport не плодить 1000 переменных, а использовать метод

Таким образом, алгоритм добавления сводится к следующему

-Создать элемент, например Memo, указать в скобках его родителя, я так понимаю, кого мы укажем, в качестве родителя, на том месте и будет наш элемент, в данном случае, для Memo, мы указывали Page

-Настроить элемент (размещение, оформление и так далее)

Настройка Preview. Как указано в документации, мы можем использовать и своё окно Preview, но поговорим об этом в другой раз. Здесь, я лишь хотел сказать, что и стандартное окно Preview можно настроить достаточно привлекательно. Для этого всего лишь можно использовать стили Delphi и опцию

Благодаря которой в левой части, мы увидим маленькие симпатичные превьюшки!


Проверим работу нашего приложения

20

16

17


Выводы

В данной статье мы сделали самое простое – динамически вывели текст на 2-х страницах и немного оформили его. Используя этот принцип можно создавать титульную и финальную страницы, а страницы, которые находятся между ними, будут автоматически “размножаться”, при нехватке пустого места при выводе данных, благодаря удивительным возможностям FastReport!

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

This entry was posted in Delphi, FastReport. Bookmark the permalink.