logo
small logo
  • Produkty
  • Zamów
  • Wsparcie techniczne
  • About
  • Customer panel Wsparcie techniczne
    • en
    • de
    • JP
    • ZH
  • Glówna strona
  • /
  • Articles
  • /
  • Wykorzystanie zasobów do przechowywania raportów FastReport
  • Tworzenie kodu kreskowego CODE 39 i rozszerzonego CODE 39 w środowisku Delphi / Lazarus

    23 października 2020

    CODE 39 jest kodem kreskowym opracowanym przez Intermec Corporation w 1975 roku. Kod kreskowy może

    read more
  • W jaki sposób generować kod kreskowy ITF (przeplatany, przemysłowy, macierzowy) w środowisku Delphi / Lazarus / C ++ Builder

    11 listopada 2020

    Trochę teorii dotyczącej kodów kreskowych Trudno wyobrazić sobie dzisiaj nasze życie bez kodów kreskowych, szczególnie teraz,

    read more
  • Instalowanie Fastreport w Lazarus

    17 marca 2021

    W ramach programu edukacji akademickiej postanowiliśmy stworzyć kilka artykułów wsparcia dla studentów. Jeśli tworzysz oprogramowanie biznesowe

    read more
  • Jak utworzyć plik PDF z Delphi / C ++ Builder / Lazarus

    14 maja 2020

    Dość często potrzebujesz uzyskać dokument PDF z aplikacji Pascal - albo Delphi lub Lazarus.Zazwyczaj zaleca

    read more
  • Praca z wykresami i wykresami w FastReport VCL

    22 marca 2021

    Nadal publikujemy artykuły pomocnicze dla studentów w ramach programu edukacyjnego Akademii. Każdy programista w pewnym

    read more

Wykorzystanie zasobów do przechowywania raportów FastReport

1 grudnia 2021

Czasami możesz potrzebować ograniczyć użytkownikom możliwość edycji i kopiowania raportów. Kluczem jest zrobienie tego tak, aby nawet nie domyślili się, że program korzysta z tak wspaniałego produktu, jakim jest FastReport. Porozmawiajmy o tym, jak ukryć szablony raportów przed niepowołanym dostępem.

Pomysł jest dość prosty: przechowywać szablony raportów w pliku wykonywalnym, a następnie wyodrębniać je i wykonywać w razie potrzeby.

Najpierw utworzymy pliki raportów w FastReport VCL i zapiszemy je do katalogu ReportList. Zasoby opiszemy za pomocą pliku tekstowego o następującej zawartości:

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

Zapiszmy ten plik pod nazwą "TestFR.rc". Następnie skompilujmy go poleceniem BRCC32 TestFR.rc i otrzymamy TestFR.res. Na początku modułu należy dodać następujący ciąg znaków:

1
{$R TestFR.res} 

Można to sobie ułatwić korzystając z biblioteki RxLib. Po jej zainstalowaniu, w menu Widok pojawi się pozycja Zasoby projektu. Wybierz Zasoby projektu-> Nowy-> Dane użytkownika i dodaj wymagane pliki raportów.

Wykorzystanie zasobów do przechowywania raportów FastReport

Napiszmy procedurę wyodrębniającą potrzebny nam zasób.

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;

Teraz napiszmy obsługę wydruku dla naszego raportu.  

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 ');
 //Dla checkoutu, wciąż wygodniej jest użyć LoadFromFile. Po wykonaniu checkout' u i po 
 //utworzeniu pliku do opisu zasobu raportu, możesz zastosować procedurę LoadRptFromResource 
 LoadRptFromResource(Report, 'Test'); //loading report from resources
 Report.PrepareReport(True);
 
 //Report.LoadFromFile( ExtractFilePath(Application.ExeName) + 'ReportList\Test2.fr3 ');
 //
 LoadRptFromResource(Report, 'Test2'); // loading report from resources
 Report.PrepareReport(False);
 
 Report.Preview:= PreviewForm.frxPreviewMain;
 PreviewForm.ShowModal;
end;

Oczywiście takie rozwiązanie ma wady. Pierwszą z nich jest duża zajętość zasobów programu, ponieważ plik wykonywalny zwiększa się kilkukrotnie, ale pakery dobrze go kompresują. Drugą to wolne generowanie raportów.

Autor artykułu: Oleg Leontiew Gennadiewicz

about product zamów
avatar
Den Zubov
VCL Development
Fast Reports Team: Den Zubov - VCL Development at Fast Reports
VCL Lazarus FastReport Delphi

Add comment
logo
  • 800-985-8986 (English, US)
  • +4930568373928 (German)
  • +55 19 98147-8148 (Portuguese)
  • info@fast-report.com
  • 901 N Pitt Str #325 Alexandria VA 22314
  • Zamów
  • Pobierz
  • Dokumentacja
  • Opinie użytkowników
  • Jak odinstalować nasze produkty
  • FAQ
  • Tutorial Video
  • Forum
  • Support SLA
  • Articles
  • Our News
  • Prasa o nas
  • Partnerzy
  • Partner program
  • Kontakty

© 1998-2023 by Fast Reports Inc.

  • Poufność
  • Cookies Policy

Trustpilot
By clicking “Accept all, you agree Fast Reports can store cookies on your device and disclose information in accordance with our Cookie Policy.