logo
small logo
  • Продукты
  • Купить
  • Поддержка
  • Статьи
  • Клиентская панель Поддержка
  • Главная
  • /
  • Статьи
  • /
  • Использование ресурсов для хранения отчетов FastReport
  • Использование интерактивных карт в FastReport VCL 2021

    30 апреля 2021 г.

    Представляем вам заключительную статью по курсам образовательной программы «Академик». В предыдущих публикациях было рассмотрено

    Подробнее
  • Построение отчетов с диалоговыми формами

    26 апреля 2021 г.

    В предыдущих статьях по образовательной программе Академик мы научились устанавливать FastReport в Lazarus, освоили работу

    Подробнее
  • Отчет с двумя уровнями данных (master-detail) в Delphi/Lazarus на примере FastReport VCL / FMX

    15 октября 2021 г.

    В этой статье я хочу вам рассказать о такой мощной возможности FastReport, как “многоуровневые отчёты”

    Подробнее
  • Работа и тонкая настройка штрих-кода ITF-14 в Delphi / Lazarus

    7 сентября 2021 г.

    С версией FastReport VCL 2021.2 был добавлен новый штрих-код ITF-14. Напомню, что ITF-14 (Interleaved Two

    Подробнее
  • Как добавить Swiss QR-код в счёт на Delphi и Lazarus

    2 июня 2020 г.

    Сейчас многие страны проводят «диджитализацию» платежных систем, то есть оцифровывание. Самый распространенный способ автоматизации платежей

    Подробнее

Использование ресурсов для хранения отчетов FastReport

1 декабря 2021 г.

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

Идея очень проста - темплейты отчетов хранить внутри исполняемого файла, а в нужный момент извлекать и выполнять.

Для начала мы создадим файлы отчетов в FastReport VCL и сохраним их в директорию ReportList. Объявляем описание ресурсов через текстовый файл со следующим содержанием:

1
2
TEST RCDATA ".\ReportList\Test.fr3"
TEST2 RCDATA ".\ReportList\Test2.fr3"

Сохраняем файл с названием «TestFR.rc». После компилируем его командой BRCC32 TestFR.rc и получаем TestFR.res. В начало модуля нужно дописать строку:

1
{$R TestFR.res} 

Можно пойти более простым путём использовав библиотеку RxLib. После его установки в меню View появится пункт Project Resources. Выбираем Project Resources->New->User Data и добавляем нужные файлы отчетов.

Использования ресурсов для хранения отчетов FastReport

Напишем процедуру извлечения нужного нам ресурса.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
private
 { Private declarations }
 procedure LoadRptFromResource(Report: TfrxComponent; const ResName: string);
...............
procedure TFormMain.LoadRptFromResource(Report: TfrxComponent;
 const ResName: string);
var
 m: TResourceStream;
begin
 m := TResourceStream.Create(HInstance, ResName, RT_RCDATA);
 try
 m.Position := 0;
 Report.LoadFromStream(m);
 finally
 m.Free;
 end;
end;

Теперь напишем обработчик печати нашего отчета.   

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
procedure TFormMain.Button1Click(Sender: TObject);
var
Report: TfrxReport;
begin
 
 Report:= frxReportMain ;
 Report.Preview := nil ;
 
 Report.Script.Variables['dDAT'] := Edit1.Text;
 
 //Report.LoadFromFile( ExtractFilePath(Application.ExeName) + 'ReportList\Test.fr3 ');
 // Для отладки все таки, удобнее использовать LoadFromFile. После отладки и после 
 // создания файла описания ресурсов отчета, можно применить процедуру LoadRptFromResource 
 LoadRptFromResource(Report, 'Test'); // загрузка репорта из ресурсов
 Report.PrepareReport(True);
 
 //Report.LoadFromFile( ExtractFilePath(Application.ExeName) + 'ReportList\Test2.fr3 ');
 //
 LoadRptFromResource(Report, 'Test2'); // загрузка репорта из ресурсов
 Report.PrepareReport(False);
 
 Report.Preview:= PreviewForm.frxPreviewMain;
 PreviewForm.ShowModal;
end;

Конечно, у такого решения есть недостатки. Первый - это ресурсоемкость программы, ведь исполняемый файл увеличивается в разы, но зато хорошо сжимается упаковщиками. Второй - это заторможенность построения отчета.

Автор статьи: Леонтьев Олег Геннадьевич

О продукте Скачать Купить
avatar
Den Zubov
VCL разработка
Fast Reports Team: Den Zubov - VCL Development at Fast Reports
VCL Lazarus FastReport Delphi

Добавить комментарий
logo
  • +7(800)551-75-80
  • info@fastreport.ru
  • Ростов-на-Дону, Россия, 344082, ул.Обороны 24, офис 311
  • Купить
  • Загрузить
  • Документация
  • Отзывы
  • Как деинсталировать
  • Онлайн поддержка
  • FAQ
  • Видео уроки
  • Форум
  • Статьи
  • Наши Новости
  • Пресса о нас
  • Реселлеры
  • Нестандартное лицензирование
  • ВУЗам
  • Карьера
  • Контакты

© 1998-2022 ООО «Фаст Репортс»

  • Согласие с обработкой персональных данных
  • Не является публичной офертой