Dzisiaj przyjrzymy się złożonemu raportowi z podejściem pasmowym, które zazwyczaj jest wykorzystywane w FastReport. Na przykład raport sprzedaży w rozbiciu na lata, kwartały i miesiące, gdzie chcemy wyświetlić trzy tabele z danymi, które powinny być rozmieszczone nie z góry na dół, ale od lewej do prawej. Na szczęście taki raport możemy wykonać w FastReport.NET przy pomocy kilku obiektów Matrix.
Przyjrzyjmy się danym. Są one generowane losowo według pewnego schematu:
Baza danych zawiera dane dotyczące importu owoców z różnych krajów w rozbiciu na miesiące. Każdy rekord posiada pole "amount", w którym zapisana jest ilość importowanych owoców.
Do wyświetlania danych wykorzystamy obiekt Matrix. Przejdźmy do jego ustawień:
Nazwa kraju i rodzaj owocu będą naszymi ciągami znaków, wiersze będą zawierały podział na rok, kwartał i miesiąc, a liczba owoców będzie komórkami macierzy.
Określiliśmy, jakie dane będą wykorzystywane w macierzy. Zastosujmy obramowania dla wszystkich komórek i dostosujmy ustawienia strony. Zastosujemy "nieograniczoną wysokość" i "nieograniczoną szerokość" tak, aby nasz raport zajmował jeden arkusz. Po wykonaniu tych czynności przygotujemy następujący raport:
Po prawej stronie znajdą się dane za lata 2018 i 2019.
Przede wszystkim zauważ, że sumy zostały automatycznie dodane dla wszystkich kolumn. Jeśli ich nie potrzebujemy, możemy je usunąć, co też uczynimy. Aby zamiast pustych komórek wyświetlały się zera, należy ustawić właściwość NullValue komórki. W efekcie powinno pojawić się w niej 0. Dodatkowo wyłączmy autosize dla tabeli i dostosujmy wynik:
Naszym zadaniem jest wykonanie statystyki z wykorzystaniem kilku macierzy:
1) W podziale na lata;
2) W podziale na kwartały;
3) W podziale na miesiące.
Skopiujmy matrycę i umieśćmy jej dwie kopie obok oryginału. Następnie zastosujemy "dodatkowe miejsce w konstruktorze", aby wstawić wszystko. Zwróć uwagę, że podczas kopiowania macierzy jest ona odłączona od danych i musisz wybrać wymaganą tabelę danych we właściwości DataSource.
Usuńmy zbędne pola z macierzy i przesuńmy je bliżej siebie:
Spróbujmy przygotować taki raport:
Jak widać, w sprawozdaniu jest kilka nieprawidłowości:
1) Macierze są wyświetlane w różny sposób, ponieważ nagłówki mają różną wysokość;
2) Kraje i rodzaje owoców powtarzają się w drugiej i trzeciej macierzy.
Zwiększmy wysokość wiersza "Rok" w pierwszej i drugiej macierzy. Aby wybrać wiersz, możesz najechać myszką na lewą stronę macierzy. Gdy mysz znajdzie się nad jednym z wierszy, zmieni się w czarną strzałkę w prawo. Dodatkowo można zaznaczyć wiersz w drzewie raportu:
Teraz wszystkie kolektory są tej samej wysokości:
Macierze w FastReport pozwalają na "ukrycie" kolumny lub wiersza poprzez zmniejszenie ich rozmiaru do zera. W naszym przypadku musimy ukryć "nazwy krajów" z "owocami" w drugiej i trzeciej matrycy. Wybierz kolumnę i zredukuj jej szerokość do zera:
Po kilkukrotnym powtórzeniu tej czynności, jak również po przesunięciu macierzy do siebie, otrzymujemy następujący wzór:
Zauważ, że są to trzy oddzielne macierze, a nie jedna. Ale działają one jako jedna złożona macierz, ponieważ mają identyczny nagłówek i wysokość komórek, a także ten sam zestaw danych.
Przyjrzyjmy się teraz temu raportowi:
Ten zrzut ekranu pokazuje, że nazwy krajów nie są już wyświetlane i nie ma konfliktu pomiędzy matrycami.
Na koniec uporządkujmy naszą matrycę:
Na przykład, aby do numeru roku dodać słowo, należy pamiętać, aby pola macierzy zawierały wyrażenia. Jeśli pole będzie zawierało taki tekst, to wystąpi błąd:
Year [fruit_import_database.year]
Właściwy sposób to:
"Year " + [fruit_import_database.year]