Tworzenie raportów
Komponent strony raportu TQuickRep
Wizualny komponent, który tworzy stronę raportu. W nim osadza się komponenty sekcji, a w nich komponenty drukowalne zawierające dane raportu. Dane do raportów pobierane są ze zbioru danych, który może być tabelą lub zapytaniem. Zbiór danych określany jest we właściwości DataSet. Dane raportu są podzielone na sekcje, które mogą być dodawane do raportu na dwa sposoby. Pierwszy sposób to ustawienie właściwości Bands, drugi to wykorzystanie dodatkowego komponentu sekcji TQRBand i ustawienie dla niego odpowiedniej właściwości BandType
Sekcje raportu:
Nagłówek strony
Tytuł raportu
Nagłówek kolumn
Szczegóły
Stopka raportu (podsumowanie)
Stopka strony
Komponent sekcji TQRBand
Możliwe wartości właściwości TQRBand:
RbTitle
RbPageHeader
RbDetail
RbPageFooter
RbSummary
RbGroupHeader
RbGroupFooter
RbSubDetail
RbColumnHeader
RbOverlay
RbChild
Komponenty drukujące w raporcie:
TQRDBText
TQRLabel
TQRExpr
TQRDBImage
Raporty
Tworzenie prostego raportu:
Wstaw komponent Table do formularza i złącz go z bazą danych we właściwości DatabaseName i tabelą we właściwości TableName. Na koniec ustaw jego właściwość Active na True.
Z zakładki Qreport wstaw do formularza komponent strony raportu QuickRep.
Ustaw jego właściwość DataSet na Table1.
We właściwości Bands ustaw element hasDetail na wartość True. W ten sposób ustawia się sekcję szczegółową, która drukowana jest raz dla każdego rekordu nadrzędnego zbioru danych. Do sekcji Detail można dodawać komponenty drukowalne.
Z zakładki QReport palety komponentów wstaw tyle komponentów QRBDText ile kolumn tabeli chcesz wydrukować. Właściwości DataFild obu komponentów ustaw na pola, których zawartość chcesz wydrukować.
Z menu kontekstowego, które pojawi się gdy naciśniesz prawy przycisk myszy na komponencie strony raportu, wybierz pozycję Preview w celu umożliwienia podglądu raportu.
Jeżeli odległość pomiędzy kolumnami jest zbyt mała możesz rozstawić komponenty QRDBText na odpowiednią odległość.
Aby dodać dodatkowe pola do raportu należy:
Aby dodać tytuł: ustaw we właściwość Bands element hasTitle na True i wstaw w sekcji Title raportu komponent QRLabel, który służy do drukowania na raporcie tekstów statycznych, które nie ulegają zmianie i nie pochodzą z żadnego zbioru danych. Wyświetlany tekst etykiety to wartość właściwości Caption. Właściowść Alignment służy do ustawienia pozycji tekstu w poziomie w obrębie obiektu. Ustaw rodzaj i rozmiar czcionki we właściwości Font.
Aby dodać nagłówek strony: ustaw we właściwość Bands element hasPageHeader na True i wstaw w sekcji PageHeader raportu komponent QRLabel. Ustaw wyświetlany tekst we właściwości Caption. Ustaw rodzaj i rozmiar czcionki we właściwości Font.
Aby dodać stopkę strony: ustaw we właściwość Bands element hasPageFooter na True i wstaw w sekcji PageFooter raportu komponent QRLabel. Ustaw wyświetlany tekst we właściwości Caption. Ustaw rodzaj i rozmiar czcionki we właściwości Font.
Aby dodać nagłówek kolumn: ustaw we właściwość Bands element haColumnHeader na True i wstaw w sekcji ColumnHeader raportu komponenty QRLabel ( tyle ile będzie wyświetlanych kolumn. Ustaw wyświetlany tekst we właściwości Caption każdego komponentu. Ustaw rodzaj i rozmiar czcionki we właściwości Font.
Aby dodać podsumowanie raportu: ustaw we właściwość Bands element hasSummary na True i wstaw w sekcji Summary raportu komponent QRExp. Komponent, który służy do drukowania wartości pól, wyników obliczeń, wyników predefiniowanych funkcji, które definiuje się we właściwości Expression.
Tworzenie raportu master/detail
Otwórz nowy projekt.
Stwórz dwie tabele, które mogą pozostawać w związku master/detail.
Pierwsza o nazwie płatnik zawierająca następujące dane: id, firma, imie, nazwisko, nip, kod miejscowość
Druga o nazwie dokumenty zawierająca następujące dane: id_dok, id, data_wyst, wartość, sposób zapłaty.
3. Odpowiednio poindeksuj tabele aby możliwe było ustawianie relacji pomiędzy nimi.
Stwórz odpowiedni alias.
Otwórz nowy projekt w Delphi. Na formularzu dodaj przycisk. Zmień jego właściowść Caption na Raport.
Utwórz nowy drugi formularz. Na form2 dodaj komponent Qreport, DataSource i dwa komponenty Table.
Dla komponentów Table ustaw właściwości w następujący sposób: dla Table1- DatabaseName - odpowiedni alias, TableName- tabela płatnik, Active na True,dla DataSource - DataSet na Table1, dla Table2- DatabaseName - odpowiedni alias, TableName- tabela dokumenty, Active na True, MasterSource na Table1, MasterFields na odpowiednie powiązanie.
Dla komponentu QReport: Bands : hasTitle- True, hasColumnHeader - True, has Detail- True, DataSet na Table1.
W sekcji Title komponentu Qreport wstaw komponent QRLabel i ustaw jego właściwość Caption na `Lista płatników'. Odpowiednio ustaw czcionkę.
W sekcji ColumnHeader wstaw kilka komponentów QRLabel i ustaw ich właściwości Caption na nazwy kolumn, które mają być drukowane dla płatników. Odpowiednio ustaw czcionkę.
W sekcji Detail wstaw kilka komponentów QRDBText i ustaw ich właściwości DataSet na Table1 a dla poszczególnych obiektów DataField na konkretne pola, które mają być wyświetlone na raporcie.
Za pomocą opcji Preview menu kontekstowego związanego z obiektem Qreport obejrzyj stworzony raport. Powinna pojawić się lista płatników.
Teraz należy dodać obiekt umożliwiający przedstawienie relacji master/detail.
Na formularzu należy dodać komponent TQRSubDetail. Sekcja SubDetail zostanie umieszczona pod sekcją szczegółową Detail. Dla tego komponentu ustaw odpowiednio właściwości: DataSet na Table2 i Bands- hasHeader na true.
W sekcji Subdetail umieść kilka komponentów QRDBText i ustaw ich właściwości DataSet na Table2 a dla poszczególnych obiektów DataField na konkretne pola, które mają być wyświetlone na raporcie.
Zmień odpowiednio czcionkę dla poszczególnych sekcji aby uzyskać porządny wygląd raportu. Za pomocą opcji Preview menu kontekstowego związanego z obiektem Qreport obejrzyj stworzony raport. Powinna pojawić się lista płatników wraz z dokumentami wystawionymi dla nich.
Kolejnym krokiem będzie podpięcie raportu stworzonego na formularzu2 pod przycisk
z formularza1. W procedurze obsługi przycisku wpisz następujące instrukcje: Form2.QuickRep1.preview;
W unit1 po słowie implementation wpisz następującą instrukcję: uses Unit2;
Zapisz wszystko i uruchom program za pomocą F9.
Do Form1 dodaj kilka przycisków i dodaj kilka operacji np.: wyszukiwanie rekordu, sortowanie, filtrowanie.
Cel ćwiczenia
Przebieg ćwiczenia
Warunki zaliczenia
Warunkiem zaliczenia ćwiczenia jest rozwiązanie zadania podanego przez prowadzącego. Po zakończeniu pracy każdy program powinien zostać zapisany
w odpowiednim katalogu. Pliki zapisane w innym niż podany przez prowadzącego katalogu nie będą sprawdzane.