Raporty są bardzo podobne do formularzy, ale są ukierunkowane na drukowanie
...
(Nie ma możliwości wprowadzania/ modyfikowania danych).
Podobnie jak formularz, raport składa się z sekcji. Istnieją następujące sekcje:
UWAGA: żeby się pojawiła sekcja raportu czy sekcja strony trzeba ją włączyć:
menu Widok | Nagłówek/stopka raportu
menu Widok | Nagłówek/stopka strony
Czymś co różni raporty od formularzy jest możliwość grupowania.
Powstają wtedy dodatkowe sekcje związane z grupami, podgrupami, podpodgrupami,
...
Grupy definiuje się w specjalnym okienku uruchamianym guzikiem "Sortowanie
i grupowanie":
Każda grupa może posiadać nagłówek i/lub stopkę, które włącza się w powyższym okienku, we właściwościach grupy.
Właściwości "Grupuj według" (ang. GroupOn) i "Przedział grupowania" (GroupInterval) określają sposób grupowania; ich działanie zależy od typu pola grupującego, przykładowo dla pola tekstowego można grupować według kilku pierwszych znaków tekstu (ich liczba jest określona w polu "Przedział gr."), dokładniejsze informacje znajdziesz w pomocy (kursor w polu "Grupuj wg" + klawisz F1).
Widok sekcji raportu w trybie projektowania:
(widzimy tutaj sekcje:
"Nagłówek raportu",
"Stopka raportu",
"Nagłówek grupy - kat",
"Nagłówek podgrupy - imie i nazwisko" oraz
"Szczegóły")
Możliwe jest stosowanie podraportów w raportach dokładnie na tej samej zasadzie jak podformularzy w formularzach ...
W każdej sekcji można użyć kontrolek niezwiązanych z funkcjami agregującymi (takimi jak w kwerendach).
Funkcje agregujące działają na grupie rekordów należących do danej sekcji
(nagłówek i stopka używają tego samego zbioru rekordów, tj obliczenia będą
dawały identyczne wyniki niezależnie od tego czy je umieścimy w nagłówku
X czy w stopce X).
Zadanie 31
Utwórz kwerendę złączającą tabele:
Kategorie, TowaryKategorii,
Towary, Klienci, Zamówienia
a następnie utwórz raport oparty na tej kwerendzie;
raport ten powinien pokazywać wszystkie wprowadzone zamówienia odpowiedni
uporządkowane.
Wskazówki do zadania 31:
Nazwy pól w kwerendzie pomocniczej na której jest oparty raport powinny
być "dobrze dobrane"; dodaj także pole obliczane "Wartość" zawierające
wartość danego zamówienia (Wartość: cena*ilosc).
Aby uzyskać początkową postać raportu użyj kreatora "Autoraport tabelaryczny".
Włącz grupowanie wg:
kategorii
imienia i nazwiska klienta
(wew. każdej kategorii)
Całość powinna wyglądać mniej więcej tak:
Zadanie 31a
Dodaj do raportu z poprzedniego zadania :
Sprawdź czy wszystko się prawidłowo oblicza (w tym celu dodaj do bazy dane
w których "ilosc" i "cena" są niezerowe !).
.............................................................................
Zadanie 32
Do tabeli "Towary" magazynowej bazy danych dodaj pola:
Do tabeli "Zamowienia" dodaj pole:
Następnie do formularza "Klienci" dodaj guzik "Zrealizowano wszystkie zamówienia", który uaktualnia nowe pola tabel Towary i Zamowienia. Uwaga: nie powinno się realizować zamówień wcześniej "zrealizowanych", a także tych które są niemożliwe do zrealizowania (wtedy należy zmodyfikować "niemozliwe do zreal").
Zdefiniuj też kwerendę o nazwie "Brakuje towaru" informującą magazyniera które towary należy sprowadzić.
Wskazówki do zadania 32:
W tym zadaniu trzeba modyfikować
tabele Zamowienia i Towary, tak więc wygodnie będzie zdefiniować kwerendę (modyfikowalną) o
nazwie ZT1 złączającą obie tabele. Tym razem użyj
programowej + kwerendalnej
metody modyfikowania danych (reakcją na naciśnięcie guzika będzie uruchomienie
procedury VBA). Użyj polecenia SELECT SQLa, zwracającego info o zamówieniach
bieżącego klienta (tego na formularzu), a następnie przy pomocy metod Move*,
Edit, Update dokonaj odpowiednich
modyfikacji ...
Zadanie 32a
Czy powyższe zadanie można wykonać używając "czystego" SQL-a
?.
Czy można wykonać modyfikację danych przy pomocy pojedynczego polecenia UPDATE
SQL-a?.
Wskazówka: Patrz konstrukcje SQL z funkcjami VBA typu:
UPDATE Towary SET Towary.cena = IIf([cena]>0,[cena]*2,100);