Wróć do informacji o e-podręczniku Wydrukuj Pobierz materiał do PDF Pobierz materiał do EPUB Pobierz materiał do MOBI Zaloguj się, aby dodać do ulubionych Zaloguj się, aby skopiować i edytować materiał Zaloguj się, aby udostępnić materiał Zaloguj się, aby dodać całą stronę do teczki

Ćwiczenia, które pozwolą nam opanować generowanie, edycję i użytkowanie raportów, przeprowadzimy na przykładzie bazy danych dziennika szkolnego. Pochodzi ona z zadania maturalnego z informatyki rozszerzonej.

Zadanie zostało opracowane przez Centralną Komisję Egzaminacyjną i pojawiło się na egzaminie maturalnym z informatyki w maju 2010 r. (poziom rozszerzony, część II). Cały arkusz można znaleźć na stronie internetowej CKE.

Aby przystąpić do pracy nad tym zadaniem, należy pobrać plik Szkola.accdb lub Szkola.odb, zależnie od wybranego systemu DBMSDBMSDBMS – odpowiednio MS Access lub LibreOffice Base. Obydwa pliki można pobrać poniżej:

RKReQO1xkSrL7

Plik ZIP zawierający przykładową bazę danych.

Plik ZIP o rozmiarze 1.23 MB w języku polskim

W bazie danych znajdują się zaimportowane tabele:

  • Uczniowie – zawiera atrybuty opisujące uczniów: IDucznia, nazwisko, imie, ulica, dom, IDklasy,

  • Oceny – dane na temat uzyskanych ocen: IDoceny, IDucznia, Ocena, Data, IDprzedmiotu,

  • Przedmioty – informacje o realizowanych w szkole przedmiotach: IDprzedmiotu, NazwaPrzedmiotu, Nazwisko_naucz, Imie_naucz.

Oprócz powyższych tabel, baza danych zawiera zdefiniowane powiązania logiczne (relacje) występujące pomiędzy kluczami podstawowymi i obcymi:

R11ndI1K70Vyu
Źródło: Contentplus.pl sp. z o.o., licencja: CC BY-SA 3.0.

Model danych występujący w tym zadaniu maturalnym został szczegółowo omówiony w e‑materiale Wprowadzenie do kwerend, etap IPSNzn2826Wprowadzenie do kwerend, etap I

Dlaczego używamy raportów?

Raporty to starannie przygotowane interfejsy, prezentujące w zaplanowany przez autora sposób informacje wyjęte z tabel lub kwerend bazy danych. Istnieje kilka klasycznych zastosowań raportów, są to m.in.:

  • generowanie zbiorczego podsumowania informacji dotyczących wielu rekordów – przykładem może być raport miesięcznych wyników sprzedaży w sklepie internetowym albo zestawienie ocen uzyskanych przez uczniów wybranej klasy w dzienniku elektronicznym w pierwszym semestrze nauki,

  • prezentacja dużej liczby szczegółowych danych dotyczących konkretnego, pojedynczego rekordu, np. zestawienie wszystkich zamówień klienta w serwisie aukcyjnym albo frekwencji wybranego ucznia z ostatniego tygodnia w dzienniku elektronicznym,

  • tworzenie zestawień archiwizujących stan systemu bazodanowego, czyli przygotowanie tzw. „migawek” – wygenerowany raport jest wówczas zapasową kopią danych, np. zestawienie wszystkich detali transakcji przeprowadzonych w sklepie internetowym albo ocen w dzienniku elektronicznym.

Najprościej mówiąc: zestawienia szczegółowe lub podsumowujące bywają użyteczne tak w codziennej pracy z modelem danych, jak i do celów archiwizacji lub kontroli integralności przechowywanych informacji.

Analiza struktury raportu

W programie MS Access wyróżniamy następujące sekcje w strukturze raportów:

  • nagłówek i stopka raportu – sekcje umieszczone na początku i na końcu całego raportu; w nagłówku możemy umieścić np. logo organizacji albo metadane: datę i godzinę wygenerowania raportu; jeżeli w tej sekcji pojawi się wartość sumy, którą wyznaczono z użyciem funkcji agregującej, to wynik odzwierciedli wartość zbiorczą dla wszystkich rekordów zestawienia,

  • nagłówek i stopka strony – sekcje umieszczane na początku i na końcu każdej strony raportu,

  • nagłówek i stopka grupy – zostaną wstawione do zestawienia dla każdego poziomu grupowania – takich sekcji może więc pojawić się w raporcie wiele; jeżeli w tej sekcji pojawi się wartość sumy, którą wyznaczono z użyciem funkcji agregującej, to wynik odzwierciedli wartość zbiorczą dla jednej, konkretnej grupy raportów,

  • szczegóły – obiekty interfejsu, które zostaną umieszczone w tej sekcji, będą wypisane wielokrotnie (z użyciem pętli) dla każdego rekordu pobranego z bazy danych jako dane wejściowe.

Warto także zwrócić uwagę na umiejscowienie pól, których wartość powstaje w wyniku zastosowania funkcji agregującej – w zależności od umiejscowienia kontrolki, wyniki mogą dotyczyć grupy rekordów albo wszystkich danych.

Analogiczne reguły logiczne planowania struktury raportu obowiązują w zestawieniach tworzonych w aplikacji LibreOffice Base. Warto jedynie zwrócić uwagę, że aby nagłówek i stopka całego raportu były widoczne, trzeba je wstawić, wybierając odpowiednią opcję w menu kontekstowym w widoku projektu raportu:

R101zloIzgYFs
Źródło: Contentplus.pl sp. z o.o., licencja: CC BY-SA 3.0.

Zwróćmy uwagę, że nieco odmienna jest nomenklatura używana w polskim tłumaczeniu programu – zamiast słowa „nagłówek” w LibreOffice Base używamy terminu „główka”.

Stworzenie pierwszego raportu

Zobaczmy, jak wygenerować zestawienie średnich ocen wszystkich uczniów, sortując uzyskane wyniki w sposób malejący:

R1Vb42LOjG2Ky
Film nawiązujący do treści materiału: Przygotowywanie interfejsu raportu.

Zaokrąglenie wartości średniej oceny w raporcie generowanym w MS Access możliwe jest w Arkuszu właściwości pola raportu zawierającego średnią – konfiguracja pokazana w filmie prezentuje się następująco:

R1aPcfUUvXqdP

W programie LibreOffice Base, aby można było wartość średnią zaokrąglić, w kwerendzie stanowiącej podstawę raportu użyto funkcji CAST, której zadaniem jest tzw. rzutowanie (konwersja, zamiana) typu zmiennej. W praktyce jest to więc odpowiednik nadania formatu w Arkuszu właściwości programu MS Access.

Zdecydowano się na typ DOUBLE, który obsługuje liczby zmiennoprzecinkowe. Słówko AS to klauzula oznaczająca: traktuj jako. A zatem kompletny zapis miał postać:

Linia 1. CAST otwórz nawias okrągły cudzysłów Ocena cudzysłów AS DOUBLE zamknij nawias okrągły.

Polecenie to przeczytamy jako: wartość pola Ocena traktuj jako liczbę zmiennoprzecinkową typu DOUBLE.

Arkusz właściwości

Jak mieliśmy okazję przekonać się przy zaokrąglaniu wartości średniej oceny, Arkusz właściwości to zestawienie atrybutów oraz metod wszystkich obiektów raportu. W tym oknie przechowywany jest indywidualny zestaw informacji konfiguracyjnych dla aktualnie zaznaczonego w widoku projektu formantu.

Zapewnia nam więc możliwość przeprowadzania bezpośrednich zmian w wyglądzie (stylach) lub zachowaniu wybranych kontrolek interfejsu:

RlKuvUI2QqstR1
Wygląd Arkusza właściwości z lewej strony w Microsoft Access, z prawej w LibreOffice Base.
Źródło: Microsoft Access.

Ponadto w MS Access obiekt reprezentujący w systemie raport także posiada własny, odrębny zestaw konfiguracyjny. Do edycji konkretnego formantu albo właściwości całego raportu przechodzimy w menu kontekstowym widoku projektu:

RYk7SzKRvLfYu
Z lewej strony menu kontekstowe projektu raportu w Microsoft Access, z prawej w programie LibreOffice Base.

Jak widzimy, menu kontekstowe w MS Access oferuje nam także dodatkową opcję: Właściwości raportu.

Grupuj i sortuj – zmiana anatomii raportu

Ważnym narzędziem służącym do edycji raportów jest zdecydowanie funkcjonalność o nazwie Grupuj i sortuj. Za jego pomocą ustalimy podział informacji prezentowanych w raporcie na poszczególne grupy, jak również dostosujemy kolejność wyświetlania danych wewnątrz grupy rekordów.

W programie MS Access do tego narzędzia możemy dostać się w widoku projektu raportu, na wstążce Tworzenie, w sekcji Grupowanie i sumy:

R12UYPb1kDffG

Natomiast w LibreOffice Base analogiczne narzędzie dostępne jest w menu kontekstowym widoku projektu raportu:

RKAp5W5hGYAI5

Przebudujemy teraz istniejący raport średnich ocen wszystkich uczniów do postaci, w której przedstawimy użytkownikowi zestawienie najlepszych uczniów z podziałem na poszczególne klasy.

Zrealizujemy zatem grupowanie prezentowanych rekordów według wartości parametru IDklasy, a przy okazji zobaczymy, jak za pomocą Arkusza właściwości zmienić style nagłówków interfejsu:

RlU1gyy5z4IKq
Film nawiązujący do treści materiału: Przygotowywanie raportów

Dodawanie nowych pól do zestawienia

Program MS Access umożliwia dodawanie nowych pól do już wygenerowanego interfejsu raportu – w tym celu wystarczy na wstążce Projektowanie, w sekcji Narzędzia wybrać przycisk Dodaj istniejące pola:

RCYvsd71xz8ua

Nawet jeżeli pole nie występuje w wynikach kwerendy stanowiącej fundament raportu, to dysponujemy opcją Pokaż wszystkie tabele, która umożliwi nam dodanie atrybutu, pod warunkiem że istnieje on we wskazanej tabeli bazy danych.

Odpowiednikiem tej mechaniki w programie LibreOffice Base jest opcja Widok
---
Dodaj pole dostępna w menu głównym okna edycji konstrukcji raportu.

Możemy dodać na płótno zestawienia pola zwróconego przez kwerendę stanowiącą fundament raportu:

RNekiepGbzoQL1

W razie konieczności osadzenia w raporcie pola spoza atrybutów dostępnych na liście, należy przebudować źródłową kwerendę, na podstawie której wygenerujemy nowy raport.

Raport parametryczny

Jest to zestawienie powstałe na bazie kwerendy parametrycznej, czyli specjalnego rodzaju zapytania. Jest ono podobne do zapytania wybierającego, z tą jednak różnicą, iż poszukiwaną wartość kryterium można wprowadzić z klawiatury dopiero po uruchomieniu zapytania.

Ciekawostka

Słowo parametr oznacza wprowadzoną przez nas wartość argumentu – tak jak w funkcjach w matematyce – w zapisie: fx parametrem funkcji jest x. A zatem zwracana wartość funkcji zależy wprost od podanego parametru, tak samo jak wyniki zwrócone przez kwerendę parametryczną zależą od podanego kryterium.

Możliwe staje się więc przygotowanie np. raportu prezentującego wszystkie informacje dotyczące wybranego ucznia, w którym decyzję, czyje dane zaprezentować, podejmiemy dopiero po uruchomieniu raportu.

Słownik

DBMS
DBMS

(ang. Database Management System) lub w wersji polskiej: SZBD (System Zarządzania Bazą Danych) – oprogramowanie, które obsługuje wszystkie działania administracyjne związane z bazami danych i odpowiada za realizację podstawowych funkcji: zarządzanie użytkownikami, ochronę integralności danych, zapewnienie możliwości wykonywania na zgromadzonych informacjach kwerend, dbanie o bezpieczeństwo zbioru informacji; przykładowe systemy DBMS: MySQL, MariaDB, FireBird, PostgreSQL, Microsoft SQL Server, SQLite, Oracle Database, Microsoft Access, LibreOffice Base.