Samouczek JasperReports: Do czego służy raport Jasper Java?
⚡ Inteligentne podsumowanie
Raporty Jasper dla Java to silnik raportowania typu open source, który przekształca dane aplikacji w dokumenty o doskonałej jakości. W tym artykule omówiono cykl życia raportów, instalację Jaspersoft Studio, tworzenie szablonów raportów, strukturę pasma, porównanie z Pentaho oraz praktyczne ograniczenia, z jakimi borykają się zespoły.

Do czego służy JasperReports Java?
JasperRaporty to narzędzie do raportowania typu open source dla Java Służy do raportowania aplikacji. To narzędzie do raportowania pomaga w tworzeniu rozbudowanych treści na ekranie, drukowaniu lub w różnych plikach, takich jak HTML, PDF, XLS, RTF, CSV, XML, ODT i TXT. JasperReports może być również używany do Java-włączone aplikacje, takie jak Java EE lub aplikacje internetowe do generowania treści dynamicznych.
W większości dyskusji pojawiają się razem trzy nazwy produktów, a rozdzielenie ich na początku pozwala uniknąć nieporozumień w dalszej części tej strony.
| Imię i nazwisko | Co to jest | Kto tego używa |
|---|---|---|
| Biblioteka JasperReports | Java biblioteka, która kompiluje, wypełnia i eksportuje raporty | Java programiści osadzający raporty w aplikacji |
| Studio Jaspersoft | Eclipse projektant wizualny oparty na technologii JRXML, który tworzy pliki JRXML | Projektanci raportów budują układy |
| Serwer JasperReports | Samodzielny serwer, który przechowuje, planuje i dostarcza raporty | Zespoły dystrybuujące raporty do użytkowników biznesowych |
Ta strona koncentruje się na bibliotece i Jaspersoft Studio, ponieważ te dwa komponenty są wystarczające do zaprojektowania i uruchomienia pierwszego raportu. Należy pamiętać, że wersja Community obejmuje teraz tylko te dwa komponenty, ponieważ JasperReports Server nie jest już oferowany do pobrania w ramach społeczności.
Dlaczego warto korzystać z raportów Jaspera?
Oto wiele powodów, dla których warto korzystać z narzędzia do tworzenia raportów Jasper:
- Oferuje wydajność generowania raportów i dostarczanie ich użytkownikom.
- Pomaga przedstawić dane w formacie tekstowym lub graficznym.
- Jest to samodzielny i wbudowany serwer raportowania służący do kompilacji i wykonywania raportów.
- Umożliwia kontrolę dostępu opartą na rolach do wszystkich raportów w repozytorium.
- Dostępna jest infrastruktura Spring Security umożliwiająca integrację z wewnętrznymi systemami uwierzytelniania.
- Oferuje bezpieczny, zaplanowany i automatycznie dostarczany interaktywny moduł raportowania.
- Możesz osadzać raporty w Java lub nieJava aplikacji.
- Można eksportować różne formaty raportów.
- Może generować znaki wodne nakładane na obraz główny.
- Oferuje kompletny zestaw SOAP, REST i usługi internetowe.
- Umożliwia wykorzystanie danych z jednego raportu z wielu źródeł danych.
Ponieważ biblioteka jest udostępniana na licencji LGPL, można ją dołączać do produktów komercyjnych bez opłaty za każde stanowisko, co jest powodem, dla którego wiele Java Zespoły wybierają ją zamiast zastrzeżonych silników raportowania.
Funkcje raportów Jaspera
Teraz omówimy funkcje JasperReports.
Oto najważniejsze funkcje narzędzia Jasper Reports:
- Oferuje elastyczny układ raportu w pasmach, kolumnach i obszarach o dowolnym kształcie.
- Programiści mogą dostarczać dane na wiele sposobów, w tym: JavaKolekcje Beans, zapytania SQL i dokumenty XML.
- Za pomocą podraportów i adapterów danych można łączyć wiele źródeł danych w jednym raporcie.
- Znaki wodne można również stosować na obrazie głównym.
- Można generować podraporty, które są zagnieżdżone w układzie nadrzędnym.
- Pomaga eksportować raporty w różnych formatach, np PDF, HTML, RTF i Microsoft Pliki Excel.
- Silnik pozwala na uwzględnienie w definicjach raportów wykresów takich jak: słupkowy, kołowy, liniowy i szereg czasowy.
- Wyrażenia raportu można zapisać w Java, Groovylub JavaScenariusz.
Możliwości te ujawniają się poprzez ustaloną sekwencję przetwarzania, którą w następnej sekcji opisano etap po etapie.
Cykl życia JasperReports
Teraz poznamy cykl życia JasperReports.
Poniżej przedstawiono ogólny przebieg cyklu życia Jasper Reports:
Powyższy diagram przedstawia cztery etapy w kolejności. Każdy etap generuje plik, który staje się danymi wejściowymi dla kolejnego etapu, dlatego tej sekwencji nie da się odwrócić.
| STAGE | Wkład | Wydajność | Rozszerzenie pliku |
|---|---|---|---|
| Projektowanie | Decyzje dotyczące układu | Szablon raportu | .jrxml |
| Kompilowanie | Plik .jrxml | Skompilowany szablon binarny | .jaspis |
| Wykonanie | Plik .jasper plus dane | Wypełniony raport | .jrprint |
| Eksportowanie | Plik .jrprint | Dokument końcowy | .pdf, .html, .xls i inne |
Projektowanie raportu
To będzie pierwszy krok, w którym utworzymy plik JRXML. Jest to prosty dokument XML, który definiuje układ raportu. Możesz utworzyć ten plik za pomocą dowolnego edytora tekstu lub projektanta raportów.
Jeśli jednak używasz projektanta raportów, możesz zwizualizować układ raportu, a rzeczywistą strukturę JRXML możesz zignorować.
Sporządzanie raportu
Na tym etapie cyklu życia kompilowany jest plik JRXML utworzony na pierwszym etapie, a następnie generowany jest obiekt binarny zwany plikiem Jasper (plik z rozszerzeniem jasper).
Ta kompilacja ma na celu uzyskanie lepszej wydajności podczas wykonywania. Wygenerowane pliki Jasper należy dostarczyć wraz z aplikacją w celu uruchomienia raportów.
Wykonywanie raportu
Na tym etapie zbierane są dane z aplikacji i wypełniane w formie opracowanego raportu. Istnieje klasa o nazwie net.sf.jasperreports.engine.JasperFillManager, która oferuje funkcje wypełniania danych w raportach.
Dane wyjściowe zostaną zapisane w pliku wydruku Jasper (plik z rozszerzeniem jrprint), którego można użyć do wydrukowania lub wyeksportowania raportu.
Eksportowanie raportu do żądanego formatu
W tym ostatnim etapie należy wyeksportować utworzony wcześniej plik wydruku Jaspera do dowolnego formatu przy użyciu klasy JasperExportManager. Ponieważ Jasper oferuje wiele formatów eksportu, możemy użyć tych samych danych wejściowych do utworzenia różnych reprezentacji danych.
Jak zainstalować raporty Jasper – konfiguracja środowiska
Teraz poznajmy krok po kroku proces konfiguracji środowiska JasperReports. Poniższe zrzuty ekranu zostały wykonane za pomocą instalatora 6.9. Aktualna wersja społecznościowa to 6.21.3, opublikowana 23 kwietnia 2024 r., a kolejność ekranów pozostaje niezmieniona, chociaż numer wersji w nazwie pliku jest inny.
Krok 1) Pobierz jasper reports community edition
Idź do tego Połączyć i kliknij opcję Pobierz teraz, aby zainstalować wersję Jasper Reports Community.
Krok 2) Wybierz Jaspersoft Studio CE
Spośród edycji społecznościowych wybierz Jaspersoft Studio CE.
Krok 3) Pobierz Jaspersoft Studio
Idź do tego link i kliknij przycisk Pobierz, a następnie otwórz pobrany plik wykonywalny instalatora odpowiedni do Twojego systemu operacyjnego.
Krok 4) Kliknij przycisk „zgadzam się”
Pojawi się następujący ekran. Kliknij przycisk „Zgadzam się”.
Krok 5) Wybierz lokacje
Wybierz miejsce instalacji i kliknij przycisk Dalej.
Krok 6) Postęp już trwa
Postęp zobaczysz na następnym ekranie.
Krok 7) Kliknij przycisk Zakończ
Na następnym ekranie kliknij przycisk Zakończ.
Krok 8) Postęp jest zakończony
W Twoim oknie pojawi się następujący ekran.
Krok 9) Zacznij teraz
Następnie kliknij opcję Rozpocznij.
Krok 10) Rozpocznij współpracę ze studiem Jasper Reports
Pojawi się poniższy ekran i będziesz mógł rozpocząć pracę w studiu Jasper Reports.
💡 Wskazówka: Jaspersoft Studio to Eclipse oparta na aplikacji i wymaga kompatybilnego Java Środowisko wykonawcze jest obecne na komputerze. Jeśli instalator odmawia uruchomienia, przed ponowną instalacją sprawdź zainstalowaną wersję JDK.
Tworzenie przykładowego szablonu raportu
Teraz nauczymy się, jak utworzyć szablon raportu w JasperReports.
Plik szablonu raportu używany w JasperReports to prosty plik XML z rozszerzeniem jrxml. Ten plik zawiera znacznik jasperReport jako element główny. Framework JasperReports obsługuje różne typy źródeł danych.
Szablon raportu jest projektowany i tworzony w następujący sposób.
Krok 1) Tworzenie pliku JRXML w Jaspersoft Studio.
- Przejdź do opcji Plik.
- Wybierz podmenu Nowy.
- Kliknij opcję Raport Jasper.
Krok 2) Wybór żądanego szablonu.
- Wybierz swój szablon, na przykład wiśnia.
- Kliknij przycisk „Dalej”.
Krok 3) Wybieranie folderu nadrzędnego.
- Wybierz folder MyReports.
- Wprowadź nazwę pliku, na przykład „Raport Wiśniowy”.
- Kliknij przycisk „Dalej”.
Krok 4) W oknie Źródło danych kliknij przycisk „Nowy”, aby utworzyć nowy adapter danych.
Krok 5) Wybór adaptera danych.
- Wybierz adapter danych z listy. Na przykład „Kolekcja JavaFasola.”
- Kliknij przycisk „Dalej”.
Krok 6) Wprowadzanie szczegółów adaptera danych i wybieranie klasy fabrycznej.
- Wprowadź nazwę adaptera.
- Wybierz klasę fabryczną klikając przycisk „…”.
Krok 7) Wprowadzanie prefiksu lub wzorca.
- Wprowadź przedrostek nazwy lub wzór.
- Kliknij pasujące elementy.
- Kliknij przycisk „OK”.
Krok 8) Zdefiniowanie klasy fabrycznej i dodanie ścieżki do plików jar.
- Wprowadź nazwę metody statycznej w klasie fabryki. W tym przykładzie raportu Jaspera jest to createBeanCollection.
- Jeżeli twój JavaDefinicja Beans zawiera opisy pól, a jeśli chcesz użyć ich jako nazw w Jaspersoft Studio, zaznacz pole wyboru Użyj opisu pola.
- Dodaj ścieżkę do plików jar.
- Kliknij przycisk „Zakończ”.
Krok 9) Kliknij przycisk „Dalej”.
Krok 10) Gratulacje! Pomyślnie dodałeś wszystkie niezbędne informacje do utworzenia raportu. Kliknij przycisk „Zakończ”.
Raport zostanie wygenerowany tak, jak pokazano na poniższym zrzucie ekranu.
Powyższy plik wymaga kompilacji do binarnego formatu JasperReport, który nazywany jest plikiem jasper.
Interfejs net.sf.jasperreports.engine.design.JRCompiler, który jest częścią biblioteki JasperReports, odgrywa ważną rolę w kompilacji pliku szablonu raportu.
Implementację tego interfejsu można zapisać Java, JAVASCRIPT, Groovylub dowolnym innym języku skryptowym.
Możesz skompilować plik JRXML, korzystając z dwóch następujących metod:
- Kompilacja programowa z Java kod.
- Kompilacja przy użyciu Mrówka Apache zadaniem.
Poniższy fragment kodu przedstawia ścieżkę programową, w której jeden wiersz kompiluje szablon, a drugi wypełnia go JavaKolekcja fasoli.
import net.sf.jasperreports.engine.*; import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource; public class ReportRunner { public static void main(String[] args) throws JRException { // 1. Compile the JRXML template into a .jasper file JasperReport report = JasperCompileManager.compileReport("CherryReport.jrxml"); // 2. Fill the compiled template with a collection of beans JRBeanCollectionDataSource source = new JRBeanCollectionDataSource(EmployeeFactory.createBeanCollection()); JasperPrint print = JasperFillManager.fillReport(report, null, source); // 3. Export the filled report to PDF JasperExportManager.exportReportToPdfFile(print, "CherryReport.pdf"); System.out.println("Report exported successfully"); } }
Wyjście:
Report exported successfully
Zrozumienie różnych pasm raportów
Układ JasperReports jest podzielony na poziome sekcje zwane pasmami. Każdy pas ma ustaloną regułę drukowania, a zrozumienie tych reguł pozwala projektantowi kontrolować, gdzie dokładnie wartość pojawi się w gotowym dokumencie.
Poniżej przedstawiono standardowe pasma raportów stosowane przez większość komercyjnych narzędzi do generowania raportów.
- Tytuł
- Nagłówek
- Nagłówek kolumny
- Szczegół
- Stopka kolumny
- Stopka stony
- Stopka ostatniej strony
- Podsumowanie
- Nagłówek grupy
- Stopka grupy
- Tło
- Brak danych
Przyjrzyjmy się bliżej każdemu zespołowi sprawozdawczemu.
Tytuł
Ten pasek jest wyświetlany na początku raportu. Można go umieścić na pierwszej stronie, ustawiając atrybut isTitleNewPage="true".
Nagłówek
Pasek nagłówka strony jest wyświetlany na początku każdej strony. Nie obejmuje on pierwszej strony, jeśli używany jest pasek tytułu, ani ostatniej strony, jeśli używany jest pasek podsumowania z ustawieniem isSummaryWithPageHeaderAndFooter="false".
Nagłówek kolumny
Nagłówki kolumn pojawiają się przed paskiem szczegółów na każdej stronie.
Szczegół
Sekcja szczegółów jest iterowana dla każdego rekordu w dostarczonym źródle danych. Dozwolone jest również posiadanie wielu pasm szczegółów (1, 2 itd.).
Stopka kolumny
Ta sekcja pojawia się pod pasmem szczegółów na każdej stronie, na której występuje pasmo szczegółów. Domyślnym ustawieniem jest koniec strony, ale można je zmienić, aby znajdowało się pod ostatnim pasmem szczegółów, ustawiając atrybut. isFloatColumnFooter="true".
Stopka stony
Ta sekcja będzie wyświetlana na końcu każdej strony, z wyłączeniem pasma podsumowującego, pasma tytułowego i ostatniego pasma niepodsumowującego.
Stopka ostatniej strony
Ta sekcja pojawia się na ostatniej stronie, w miejscu normalnej stopki strony, jeśli nie podano podsumowania.
Podsumowanie
Sekcja podsumowania pojawia się tylko na końcu raportu na nowej stronie, gdy isSummaryNewPage="true" jest ustawiony, a wraz z nagłówkiem i stopką strony, gdy isSummaryWithPageHeaderAndFooter="true" jest ustawiona.
Nagłówek grupy
Sekcja ta pojawia się tylko wtedy, gdy jest zdefiniowana, za każdym razem, gdy wyrażenie grupy ulega zmianie, przed pasmem szczegółów.
Stopka grupy
Ta sekcja wyświetla się tylko wtedy, gdy grupa jest zdefiniowana, za każdym razem przed zmianą wyrażenia grupy, po paśmie szczegółów.
Tło
Jest on wyświetlany na wszystkich stronach jako tło dla wszystkich innych pasm sprawozdawczych.
Brak danych
Ten pasek pojawi się, gdy nie przekazano żadnego źródła danych lub gdy źródło danych jest puste i whenNoDataType="NoDataSection" jest ustawiona.
Jasper kontra Pentaho
Teraz poznamy różnice pomiędzy Jasperem i Pentaho.
Oto główne różnice między Jasper i Pentaho:
| Parametry | Jaspis | Pentaho |
|---|---|---|
| Raporty | Do projektowania raportów Jasper używa Jaspersoft Studio. | Wykorzystuje Pentaho Report Designer. |
| Wsparcie ETL | Do celów ETL firma Jaspersoft wykorzystuje wersję Talend Open Studio. | Domyślnie korzysta z Pentaho Data Integrator Narzędzie ETL. |
| Panel | Funkcjonalność pulpitu nawigacyjnego jest dostępna wyłącznie w wersji Enterprise oprogramowania Jaspersoft. | Pentaho oferuje szeroką gamę funkcji w swoich panelach sterowania. |
| Mobilna inteligencja biznesowa | Jaspersoft oferuje lepszą obsługę mobilnych rozwiązań BI. | Pentaho musi skorzystać z narzędzia innej firmy, aby usprawnić działanie mobilnego narzędzia BI. |
| Dokumenty | Lepszy marketing, witryny i dokumentacja. | Obsługa dokumentacji jest słaba. |
| Najlepszą cechą | Łatwiejsze wyszukiwanie i znajdowanie tego, czego potrzebujesz. | Oferuje eksplorację danych i integrację z iPhonem. |
| Wersja płatna | Wersja płatna oferuje funkcje takie jak zapytanie ad hoc tworzenie interfejsu użytkownika sieci Web i pulpitu nawigacyjnego. | Oferuje funkcje takie jak integracja LDAP, logowanie jednokrotne i audyt. |
Zespoły już zainwestowały w Java Stack zazwyczaj wybiera Jasper, podczas gdy zespoły, które potrzebują intensywnej integracji danych wraz z raportowaniem, często wybierają Pentaho.
Wyzwania stojące podczas tworzenia JasperReports
Oto kilka wyzwań, z którymi będziesz musiał się zmierzyć podczas tworzenia raportów Jasper:
- Zmiany podstawowe – gdy reguły biznesowe ulegają zmianie lub zostają udoskonalone, konieczna jest zmiana podstawowej logiki raportu.
- Skomplikowane raporty – dobrymi przykładami są podraporty i raporty tabelaryczne.
- Raporty wykresowe lub wykresy wizualne, na przykład wykresy liniowe, XY, kołowe, słupkowe, szeregi czasowe i wykresy miernikowe.
Wady korzystania z raportów Jaspera
Oto wady korzystania z Jasper Reports.
- Gdy zaczniesz wprowadzać jakiekolwiek zmiany w częściach pakietu i usuwać funkcje, bardzo trudno będzie powrócić do domyślnych ustawień pakietu.
- Jest zbyt sztywny, a edycja linii i tworzenie tabel krzyżowych jest trudnym zadaniem.
- Niektóre typowe zadania, takie jak określanie sum częściowych dla raportu grupowego, są łatwiejsze do wykonania w innych projektantach raportów.
- Jasper wymaga kompilacji raportów przed ich uruchomieniem. Oznacza to, że twórcy raportów muszą mieć całość Java Zainstalowano SDK.
- Czasami podczas edycji raportu jego podgląd nie jest taki sam, jak ten wyświetlany w Internecie.






















