Access/ raporty.

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

"Grupowanie" w raportach.

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")

 

"Podraporty" w raportach.

Możliwe jest stosowanie podraportów w raportach dokładnie na tej samej zasadzie jak podformularzy w formularzach ...

Obliczenia w sekcjach.

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 :  

  1. łączną wartość zamówienia obliczaną dla każdej grupy (i umieszczaną w nagłówku grupy)
  2. łączną wartość zamówienia obliczaną dla każdej podgrupy (i umieszczaną w nagłówku podgrupy)

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);