logo
small logo
  • Produkty
  • Zamów
  • Wsparcie techniczne
  • About
  • Customer panel Wsparcie techniczne
    • en
    • de
    • JP
    • ZH
  • Glówna strona
  • /
  • Articles
  • /
  • Podłączenie raportu do danych z FastReport w Lazarusie
  • 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
  • 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 interaktywnych map w FastReport VCL 2021

    30 kwietnia 2021

    To już ostatni artykuł z cyklu kursów programu edukacyjnego Akademik. W poprzednich publikacjach rozważaliśmy

    read more
  • Tworzenie raportów za pomocą formularzy dialogowych

    26 kwietnia 2021

    W naszych poprzednich artykułach w ramach programu edukacyjnego "Akademik" nauczyliśmy się instalować FastReportw Lazarusie,

    read more
  • Przekształcanie danych z bazy danych w dokument w Delphi / Lazarus / C++ Builder

    3 lutego 2021

    Jak z gąszczu danych zrobić czytelny raport? Oracle DB, MySQL, Microsoft SQL Server, PostgreSQL, FireBird to

    read more

Podłączenie raportu do danych z FastReport w Lazarusie

26 marca 2021

W poprzednim artykule o pracy z wykresami i wykresami, poznaliśmy już grafikę biznesową i kody kreskowe. Teraz nadszedł czas, aby utrudnić sobie zadanie i popracować z różnymi źródłami danych. Większość raportów opiera się zazwyczaj na danych pochodzących z baz danych. Aby uzyskać dostęp do tych danych Lazarus dostarcza potężne mechanizmy, które są wykorzystywane przez FastReport. 

Komponenty dostępu do danych

Odnosi się to do komponentów w zakładce DataAccess, które mogą służyć jako źródła danych dla raportu. Do tego celu można wykorzystać dowolny komponent następnik TDataSet.
Oprócz dostępu do danych zdefiniowanych w projekcie, FastReport pozwala na tworzenie nowych komponentów w trybie run-time. Zasady tworzenia komponentów dostępu do danych w naszej firmie są bardzo podobne do tych stosowanych w środowisku Lazarus - nakładamy komponent na formularz i konfigurujemy jego właściwości w inspektorze obiektów. Funkcjonalność połączeń run-time jest nieco bardziej ograniczona w wyborze formatów baz danych, dlatego w chwili pisania tego artykułu w run-time można tworzyć jedynie DBF i SqLite3.

Chodzi o komponenty w zakładce DataAccess, które wykorzystują komponent konektor TfrxDBDataSet z zakładki FastReportn do podłączenia tabeli lub innego źródła danych do zespołu. Komponent ten działa jako pośrednik pomiędzy źródłem danych a rdzeniem FastReport. Komponent jest odpowiedzialny za nawigację po rekordach i dostęp do pól. Dzięki temu można uniknąć wiązania rdzenia FastReport z jakąkolwiek biblioteką dostępu do danych.

FastReport może pracować jednocześnie z BDE i każdą inną biblioteką, lub w ogóle pobierać dane ze źródła niezwiązanego z bazą danych, jak np. tablica lub plik.

Komponent TfrxDataSet został zaprojektowany do pracy ze źródłami danych i należy zwrócić uwagę na jego uniwersalność. Może on korzystać z wszystkich połączeń odziedziczonych po TDataSet. A jest to BDE, CVS i zdecydowana większość innych bibliotek! Do pracy z innymi źródłami danych (tablica, plik, itp.) służy komponent TfrxUserDataSet.

Aby połączyć komponent TfrxDBDataSet ze źródłem danych, musi być skonfigurowana jedna z opcji:

  • Właściwość DataSet, która łączy się bezpośrednio z tabelą lub zapytaniem.
  • Właściwość DataSource, która łączy się z komponentem TDataSource.

Obydwie metody połączenia są równoważne, tylko pierwsza z nich robi to bez komponentu TDataSource.

Aby komponent i związane z nim dane były dostępne w raporcie, należy jednoznacznie określić, które źródła danych będą wykorzystywane w raporcie. W projektancie FastReport wybierz pozycję menu "Raport/Dane..." i w oknie, które się pojawi zaznacz pola przy wymaganych źródłach.

Okno wyboru źródła danych

Opis komponentów w projektancie FastReport

Komponent TfrxDBFTable jest przeznaczony do organizacji dostępu do tabeli bazy danych .dbf i posiada następujące właściwości:

  • FilePath określa ścieżkę do folderu bazy danych.
  • TableName przypisuje nazwę bazy danych. Wybierając bazę danych, zmienisz również ścieżkę dostępu.
  • FieldAliases umożliwia określenie własnych nazw pól.
  • Filtr zawiera wyrażenie do filtrowania rekordów.
  • Filtered określa, czy zastosować filtr.
  • IndexFieldNames przechowuje nazwy pól, które tworzą indeks.
  • IndexName określa nazwę indeksu wtórnego.
  • MasterFields zawiera pola związane z głównym zbiorem danych.
  • Master jest tożsamy z głównym zbiorem danych.
  • UserName określa Alias (nazwę użytkownika) zbioru danych.

Przypisanie właściwości komponentu jest takie samo jak właściwości TDbf w Lazarusie. Aby podłączyć komponent do tabeli w bazie danych, wystarczy wypełnić właściwość TableName. Otwórz tabelę poprzez ustawienie Active := True.

Edytor właściwości FieldAliases pozwala wybrać pola, które będą dostępne podczas dostępu do tabeli oraz ustawić własne nazwy dla każdego pola i całej tabeli.

Edytor aliasów

Edytor MasterFields używany jest do tworzenia relacji master-detail między dwoma tabelami. Aby połączyć dwie tabele relacją master-detail w tabeli podrzędnej, określ tabelę nadrzędną we właściwości Master i wywołaj edytor MasterFields. Jeśli tabela posiada indeksy drugorzędne, najpierw skonfiguruj właściwość IndexName.

Edytor ten pozwala na wizualne powiązanie pól nadrzędnych i szczegółowych zestawów danych. Gdy zestawy są połączone relacją nadrzędny-szczegółowy, zawartość zestawu szczegółowego jest filtrowana podczas nawigacji po zestawie nadrzędnym, tak aby zawierała tylko rekordy, które są istotne dla bieżącego rekordu zestawu nadrzędnego.
Aby połączyć pola zestawu należy wybrać pole z listy po lewej stronie (zestaw szczegółowy), następnie pole z listy po prawej stronie (zestaw główny) i kliknąć przycisk "Dodaj". Spowoduje to przeniesienie mapowania pola na dolną listę. Aby wyczyścić dolną listę, użyj przycisku "Wyczyść". Należy pamiętać, że pola, które mają być połączone muszą być tego samego typu i być kluczowe.

Ale w samym Lazarusie te właściwości nie działają z selekcjami (sortowanie i filtrowanie Master-Detail) dla komponentów TDbf, a ponieważ używamy tego komponentu, nie działa to również dla nas.

Komponent TfrxLazSqliteQuery jest przeznaczony do wykonywania zapytań SQL do bazy danych przy użyciu SqLite3 i posiada następujące właściwości:

  • Database określa nazwę połączenia z bazą danych (domyślnie jest to zawsze "sqlLite").
  • FieldAliases umożliwia określenie własnych nazw pól.
  • Filtr przechowuje wyrażenie do filtrowania rekordów.
  • Filtered określa, czy zastosować filtr.
  • Master jest tożsamy z Master dataset.
  • Params wyświetla listę parametrów zapytania.
  • SQL zawiera tekst zapytania.
  • UserName ustawia alias (nazwę użytkownika) zbioru danych.
  • IgnoreDupParams - jeśli true to nazwy parametrów zapytania nie będą duplikowane w edytorze parametrów.

Właściwość SQL posiada swój własny edytor do wypełniania zapytań SQL: 

Edytor zapytań SQL w komponencie TfrxLazSqliteQuery

Właściwość Params również posiada swój własny edytor. Jest on dostępny, jeśli tekst zapytania zawiera parametry.

Edytor parametrów w komponencie TfrxLazSqliteQuery

Parametr może być dwojakiego rodzaju: jeden przypisany ze zbioru danych głównych i drugi z określoną wartością, gdzie wartością może być stała, odwołanie do zmiennej lub właściwość obiektu.

W przypadku, gdy parametr jest pobierany z głównego zbioru danych, musi być skonfigurowana właściwość TfrxLazSqliteQuery.Master. Zbiór danych musi zawierać pole o takiej samej nazwie jak parametr. Określanie typu i wartości parametru nie jest konieczne.

Komponent TfrxLazSqliteDataBase służy do łączenia się z bazą danych SqLite3. Jego przeznaczenie jest podobne do komponentów TSQLite3Connection i TSqlTransaction, a posiada następujące właściwości:

  • Connected - gdy True jest aktywne, połączenie jest włączone.
  • DatabaseName pozwala wybrać nazwę bazy danych.
  • LoginPrompt określa, czy użytkownik musi zostać poproszony o podanie hasła podczas łączenia się z bazą danych. Jeśli LoginPrompt = False, wówczas nazwa użytkownika oraz hasło muszą być podane w łańcuchu połączenia.

Tworzenie raportów z dostępem do bazy danych

Rozważmy zbudowanie prostego raportu, który zawiera komponenty dostępu do danych, jako przykładu użyjemy demonstracyjnej bazy danych LDemo.

Na początek stwórzmy projekt, z którym będziemy przeprowadzać nasze eksperymenty. Utwórz nowy projekt w Lazarusie i umieść w nim na formularzu komponenty TfrxReport, TfrxDesigner, TfrxDialogControls, TfrxDBDataset, TDbf.

Formularz w Łazarzu z komponentami FastReport

Skonfiguruj połączenie z bazą danych. W tym celu należy odnaleźć właściwość TableName dla Dbf1 i w oknie dialogowym wybrać plik bazy danych - wszystko z rozszerzeniem .dbf będzie działać. Następnie ustaw właściwość frxDBDataset1 DataSet na "Dbf1".

Następnie dodaj przycisk do formularza i wpisz w OnClick następujący kod:

1
2
3
4
procedure TForm1.Button1Click(Sender: TObject);
begin
 frxReport1.DesignReport;
end;

Pamiętaj, aby zezwolić na tworzenie wątków dla projektu linuksowego. Zostało to opisane w artykule dotyczącym instalacji. Po tym, skompiluj i uruchom projekt. Nic więcej nie jest wymagane do utworzenia projektanta raportów dla użytkownika końcowego.

Po kliknięciu na Projekt, projektant otwiera się z pustym raportem. Rozważ zbudowanie prostych raportów w tym środowisku. Przy okazji, w tym momencie wiesz już, jak podłączyć bazy danych do FR z poziomu Lazarusa.

Prosty raport typu "Lista".

Będziemy teraz wyprowadzać dane z jednej tabeli bazy danych już przy użyciu FR w trybie runtime. Wykonaj następujące kroki, aby zbudować raport:

  1. Kliknij przycisk "Nowy raport" na pasku narzędzi kreatora. FastReport utworzy pusty raport zawierający strony "Kod", "Dane", "Strona1".
  2. Przełącz się na stronę "Dane" i umieść na niej komponent "Tabela DBF":

Dodawanie komponentu frxDBFTable do raportu

  1. Wybierz bazę danych, która ma zostać podłączona. W tym celu w Object Inspector ustaw właściwość TableName, wybierając plik customer.dbf z projektu demo.
  2. Aby połączyć Level 1 Data bank  z tabelą, kliknij na nim dwukrotnie i wybierz naszą tabelę w oknie, które się otworzy. Następnie przeciągnij i upuść żądane pola z okna Data Tree na arkusz raportu. Nasz raport będzie wyglądał tak jak poniżej:

Szablon raportu dla wyjścia listy

Aby obejrzeć raport wynikowy, kliknij na przycisk "Podgląd" na pasku narzędzi. 

Przydatne opcje obsługi danych

Zakładka Dane nie jest przeznaczona wyłącznie dla komponentów dostępu do danych. Używając obiektów Tekst i Rysunek, można umieszczać etykiety objaśniające i rysować proste diagramy, jak pokazano na poniższym rysunku:

Przykład opisu danych

about product zamów
avatar
Sergey Plastun
VCL Development
Fast Reports Team: Sergey Plastun - VCL Development at Fast Reports
VCL Lazarus FastReport Delphi Academic

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
  • Articles
  • Our News
  • Prasa o nas
  • Partnerzy
  • Extended licensing
  • Kontakty

© 1998-2023 by Fast Reports Inc.

  • Poufność