[Uwaga] Ten artykuł został pierwotnie przygotowany w języku angielskim i został przetłumaczony na język polski.
Realizując wewnętrzny projekt w technologii Oracle APEX, szukaliśmy rozwiązania, które usprawniłoby procesy tworzenia szablonów dokumentów i ich drukowania do formatów PDF, XLSx oraz DOCx. Celem było odejście od obecnie stosowanej technologii, która choć świetna, wspiera jedynie drukowanie do formatu PDF. Rozwiązanie? Pakiet pl-jrxml2pdf oparty na pracach firmy Jaspersoft. Firma ta ma bogatą historię tworzenia darmowych narzędzi do projektowania i generowania dokumentów w różnych formatach danych.
Produkty Jaspersoft okazały się trafnym wyborem. Doświadczenie zdobyte w iReport Designer pomogło w projektowaniu szablonów w Jaspersoft Studio, a proces raportowania został przypisany do serwera wydruku – JasperReports Server. Podążając tą drogą, zadanie zostało wykonane, a użytkownik zyskał możliwość drukowania dokumentów do wybranego przez siebie formatu.
JasperReports Server to bezpłatny i samodzielny serwer, który umożliwia dostarczanie kluczowych informacji biznesowych użytkownikom w czasie rzeczywistym, w stałym formacie danych i w różnych formatach plików. Raporty mogą być wykonywane i przeglądane wewnątrz aplikacji, eksportowane do pożądanego formatu wyjściowego lub planowane do wykonania w późniejszym czasie (scheduling). JRS pozwala na eksport plików w popularnych formatach, takich jak PDF, CSV, DOCx, XLSx, RTF, ODT, PPTx.
Darmowy serwer JasperReports to narzędzie stworzone dla analityków biznesowych i profesjonalistów IT. Jest łatwy w instalacji i konfiguracji, co jest jednym z powodów, dla których warto bliżej poznać to rozwiązanie. W tej części artykułu postaram się przybliżyć to narzędzie wszystkim grupom użytkowników. Moim celem jest omówienie możliwości, jakie daje wdrożenie tego typu serwera w Twojej firmie. Artykuł został napisany w oparciu o wersję 6.1.0 oprogramowania. Warto zauważyć, że produkt jest dostępny na licencji AGPL.
Interfejs aplikacji JasperReports Server 6.1.0.
Początki Jaspersoft Corporation sięgają 2001 roku. Zapotrzebowanie na raportowanie zaowocowało powstaniem pierwszego produktu firmy, JasperReports Library – biblioteki napisanej w języku Java do integracji aplikacji w tym środowisku. Kolejnym krokiem było stworzenie edytora wizualnego do tworzenia szablonów raportów, dzięki czemu w 2002 roku wydano Jaspersoft iReport Designer, edytor graficzny dla JasperReports Library. Produkt ten znacznie uprościł raportowanie.
W międzyczasie rozwijał się rynek Business Intelligence, głównie dzięki rosnącej dostępności narzędzi open-source. Firma stworzyła JasperReports Server, nową linię produktów łączącą zalety JasperReports Library i iReport. Kolejnym krokiem Jaspersoftu było opracowanie produktu Jaspersoft OLAP, co doprowadziło do powstania Jasper Business Intelligence Suite, integrującego wszystkie poprzednie produkty firmy.
Obecnie firma oferuje narzędzia dla sektora Business Intelligence, ale marka jest również zaangażowana w rynek OpenSource, gdzie udostępnia swoje rozwiązania za darmo pod nazwą Community. W 2014 roku firma została kupiona przez TIBCO za 185 milionów dolarów i od tego czasu istnieje pod nazwą TIBCO Jaspersoft.
JasperReports Server Community do poprawnego działania wymaga serwera aplikacji Java oraz bazy danych do utworzenia repozytorium. Po pobraniu JRS proces instalacji może automatycznie zainstalować dla nas serwer Tomcat i bazę danych PostgreSQL, a usługi będą uruchamiane w zależności od serwera Jasper. Możliwe jest również podłączenie JRS do usług już zainstalowanych na serwerze. Co więcej, podczas gdy darmowa wersja wspiera serwer MySQL, w wersji płatnej można również wykorzystać komercyjne bazy danych, na przykład ORACLE Database, jako repozytorium danych.
Darmowa wersja JRS nie posiada edytora szablonów dokumentów. W tym celu można wykorzystać inne narzędzie firmy Jaspersoft – Jaspersoft Studio.
JasperReports Server pozwala na integrację z wieloma źródłami danych jednocześnie. Źródłami danych mogą być pliki tekstowe, relacyjne i nierelacyjne środowiska bazodanowe, aplikacje Java połączone przez JavaBean Datasource. JRS może być scentralizowanym repozytorium informacji biznesowych agregującym dane z wielu innych systemów wewnętrznych i zewnętrznych. W praktyce wystarczy jeden serwer JRS podłączony do wielu źródeł danych. Pobrane informacje mogą być prezentowane w sposób czytelny dla zwykłego użytkownika.
Administrator serwera może tworzyć konta dla użytkowników i przypisywać ich do wybranych grup – ról, nadając uprawnienia do przeglądania, tworzenia i wykonywania wybranych raportów. Nie powinno być również problemu z konfiguracją uwierzytelniania przez LDAP.
Według producenta, komercyjna wersja JRS dodatkowo umożliwia użytkownikowi tworzenie szablonów raportów metodą przeciągnij i upuść (drag and drop) z poziomu przeglądarki internetowej, podobnie jak w Jaspersoft Studio. Ponadto daje opcje tworzenia i przeglądania dashboardów oraz wirtualizacji danych z wielu zdalnych systemów do jednego ciągu metadanych. To z kolei pozwala na złożone analizy bez ETL czy dużych hurtowni danych. Z JRS można tworzyć interaktywne transformacje tabel (pivot), budować tabele przestawne, wykresy i przeliczenia w czasie rzeczywistym.
Szczegółowe porównanie wersji można znaleźć tutaj.
JRS umożliwia łączenie się z wieloma źródłami danych jednocześnie w ramach jednej instancji serwera. Administrator serwera może tworzyć źródła połączeń do baz danych takich jak PostgreSQL, MySQL, Oracle DB, Microsoft SQL Server, Sybase czy IBM DB2. Wersja komercyjna pozwala dodatkowo na wykorzystanie Hadoop, Hibernate i wielu innych.

JasperReport Server pozwala na podłączenie wielu źródeł danych.
Zbiory danych dostępne z serwera JasperReports mogą być wykorzystane do tworzenia czytelnych dla użytkownika raportów przygotowanych w przejrzystej formie. Do takiej prezentacji można wykorzystać wykresy słupkowe, kolumnowe, siatki, tabele, listy, obrazy i inne. Jedną z funkcji jest również serwer wydruku. Dzięki wsparciu dla REST Web Service API, JRS pozwala na integrację serwera z innymi aplikacjami. Dzięki temu rozwiązaniu deweloper może wykorzystać usługę jako serwer wydruku dokumentów i raportów, drukowanych np. do plików PDF lub Excel.
JasperReports Server może być scentralizowanym repozytorium informacji firmowych lub serwerem wydruku dla mniej lub bardziej złożonych raportów. Jak wspomniano wcześniej, komercyjna wersja JRS pozwala na projektowanie dokumentów graficznych bezpośrednio w przeglądarce internetowej. W wersji darmowej nic nie stoi na przeszkodzie, aby skorzystać z innego bezpłatnego narzędzia – Jaspersoft Studio. Oferuje ono zaletę intuicyjnego interfejsu, który pozwala na szybkie tworzenie szablonów metodą drag and drop. Użytkownicy znający produkty Jaspersoft prawdopodobnie pamiętają poprzednią generację narzędzia o nazwie Jaspersoft iReport Designer, jednak oficjalne wsparcie dla tego oprogramowania zakończyło się w grudniu 2015 roku.
Silnik Jaspersoft Studio oparty jest na Eclipse, stąd jego podobieństwo do tego popularnego IDE.
Zarówno w darmowej, jak i komercyjnej wersji JRS znajduje się warstwa usług sieciowych (web services). Pozwala ona na łatwe podłączenie dowolnej aplikacji do serwera JasperReports przy użyciu prostego API. Usługi sieciowe są zaimplementowane przy użyciu REST (Representational State Transfer) Web Services API, co znacząco rozszerza funkcjonalność serwera. Jak wspomniano wcześniej, pozwala to na integrację z innymi aplikacjami. Deweloperzy mający dostęp do serwera są w stanie stworzyć szablon dokumentu (np. fakturę VAT), wyeksportować taki szablon do JRS i połączyć go ze swoją aplikacją za pomocą dostępnego API. Więcej informacji na temat tej funkcjonalności można znaleźć w dokumentacji Jaspersoft. Również część tego artykułu jest poświęcona tematowi integracji JasperReports Server z aplikacją Oracle APEX.
Każde przedsiębiorstwo potrzebuje dokumentów i raportów. W tej części artykułu znajdziesz informacje o tym, jak korzystać z Jaspersoft Studio, darmowego programu od TIBCO Jaspersoft, który jest udostępniany na licencji Eclipse. Jest to narzędzie, które skutecznie upraszcza proces tworzenia szablonów. W treści do pobrania znajduje się gotowy do importu szablon faktury VAT, udostępniony na licencji MIT.
Zanim zaczniemy pracę nad szablonem faktury VAT, jak każdy szanujący się rzemieślnik, będziemy potrzebować narzędzi. Przede wszystkim należy pobrać darmowy program Jaspersoft Studio. W zakładce Release można znaleźć aktualną wersję – 6.17.0 (artykuł został napisany w oparciu o wersję 6.1.1.). Produkt dostępny jest dla najpopularniejszych środowisk systemowych – macOS, Linux, Windows.
W kolejnym kroku potrzebujemy danych. Udostępniam skrypt dla bazy danych Oracle Express Edition (pracowałem z wersją 11g, obecna to 21c), który należy uruchomić zgodnie z instrukcją zawartą w pliku. Po zakończeniu powinieneś mieć dostęp do danych, na których będziemy pracować w dalszej części materiału. Jeśli nie posiadasz bazy danych Oracle na swoim komputerze, zachęcam do pobrania i zainstalowania pliku ze strony Oracle.
Jeśli Jaspersoft Studio jest zainstalowane, a baza danych Oracle skonfigurowana, możesz teraz utworzyć do niej połączenie w Jasperze. Aby to zrobić, uruchom program i przejdź do zakładki Repository Explorer, gdzie kliknij prawym przyciskiem myszy na Data Adapters. Z menu kaskadowego wybierz Create Data Adapter.

Podłączanie nowego źródła danych w Jaspersoft Studio.
W nowym oknie Data Adapter Wizard wyszukaj i kliknij Database JDBC Connection, a następnie przejdź dalej.

Wybór źródła danych w Jaspersoft Studio.
W nowym oknie uzupełnij formularz w następujący sposób:
W kolejnym kroku należy podać ścieżkę do sterownika JDBC dla bazy danych Oracle, której aktualnie używasz. Aby to zrobić, przejdź do zakładki Driver Classpath i wybierz sterownik, który można pobrać ze strony Oracle.

Wypełniony formularz rejestracji nowego źródła danych.

Okno wyboru sterownika JDBC dla Oracle Database 11g R2.
Po wypełnieniu formularza możesz przetestować połączenie klikając przycisk Test. Jeśli otrzymasz pozytywny komunikat, możesz zapisać ustawienia przyciskiem Finish.
Po pierwszych sukcesach czas na bliższe zapoznanie się z narzędziem, z którym pracujemy. Jaspersoft Studio to edytor szablonów dokumentów. Program działa na silniku Eclipse i jest udostępniany na licencji o tej samej nazwie. Oficjalnie Jaspersoft Studio stało się następcą iReport Designer i jest zalecane do dalszej pracy nad dokumentami. Warto tutaj zaznaczyć, że najnowsza aktualizacja narzędzia nie jest kompatybilna wstecz i próba kompilacji raportów stworzonych w iReport Designer może się nie udać. To samo działa w drugą stronę.
Program nie powinien sprawiać większych problemów, szczególnie użytkownikom, którzy wcześniej pracowali w Eclipse IDE. Po lewej stronie programu mamy znany już Repository Explorer, w którym możemy tworzyć połączenia do naszych źródeł danych. Poniżej, w tym samym oknie (sekcja Servers), możemy nawiązać połączenie z JasperReports Server, o którym mowa była w poprzedniej części artykułu. Na tej samej stronie, w kolejnej zakładce powinien znajdować się Project Explorer. Znajdziesz tam nasz nowy projekt, który za chwilę utworzymy. Po prawej stronie aplikacji znajduje się Palette i Composite Elements, zbiór przydatnych komponentów, które będziemy mogli przeciągać do naszych szablonów.

Paleta komponentów Jaspersoft Studio.
Na dole aplikacji powinieneś zobaczyć okno Outline, w którym znajdziesz wszystkie komponenty znajdujące się na szablonie.

Ramka Outline dla pustego szablonu faktury.
To powinno wystarczyć na początek. Należy pamiętać, że konfiguracja okien aplikacji może różnić się od tego, co widzi czytelnik na swoim ekranie. Jeśli którekolwiek z omawianych okien nie jest widoczne, można je włączyć w menu Window -> Show view.
Jeśli poprawnie skonfigurowałeś połączenie z bazą danych Oracle, wystarczy pobrać udostępniony szablon faktury VAT i uruchomić podgląd, aby zobaczyć przykład. Dodatkowo polecam przejrzenie struktur danych, które powinny być już zainstalowane w bazie Oracle. Tabele zawierają dane faktury, które za chwilę zobaczymy w dokumencie PDF.
Musisz zaimportować projekt szablonu faktury VAT do Jaspersoft Studio. Po prostu pobierz plik, nie musisz go rozpakowywać. W Jaspersoft Studio utwórz nowy projekt, a następnie z menu kaskadowego wybierz Import. W nowym oknie rozwiń General i wybierz Archive File.

Importowanie archiwum *.zip do nowego projektu.
W nowym oknie wybierz pobrany plik JasperInvoice.zip, a następnie projekt, do którego chcesz zaimportować pliki. Następnie po prostu kliknij Finish. Jeśli paczka została zaimportowana poprawnie, w Project Explorer powinny pojawić się nowe pliki projektu:
Możesz przejrzeć dokument klikając Preview w zakładkach pod raportem.

Szablon faktury VAT gotowy do edycji. Na obrazku zakreślono obszar podglądu faktury.
W oknie Preview wybierz odpowiednie źródło danych (data source), wybierając utworzone połączenie z listy rozwijanej. Szczegóły znajdują się na zrzucie ekranu poniżej. Gdy program zapyta o parametr invoice_id, wpisz liczbę „1” (jeśli zainstalowałeś skrypt bazy danych Oracle dołączony do tego artykułu).

Podgląd szablonu – wybór źródła danych.
W tym samym oknie Jaspersoft Studio pozwala nam na podgląd naszego szablonu w kilku wersjach. Po rozwinięciu listy (zobacz ekran powyżej) mamy dostęp do wielu formatów danych, takich jak HTML, PDF, DOCx, XLS i wiele innych. Wystarczy wybrać jeden z nich, a program wygeneruje fakturę w odpowiednim formacie. Z poniższej listy można wybrać i podejrzeć przykładowy eksport do różnych typów:
Przykładową fakturę można pobrać tutaj -> invoice.pdf.
Oprogramowanie Jaspersoft Studio daje możliwość dynamicznego i szybkiego tworzenia szablonów dokumentów. Wystarczy raz stworzyć szablon, a następnie używać go do generowania wielu różnych dokumentów. Wszystkie edycje szablonu mogą być wdrażane błyskawicznie, a zaoszczędzony czas można zainwestować w inne zadania.
Zapoznaliśmy się już z Jaspersoft Studio, mamy gotowy szablon dokumentu i możemy zaimportować wynik naszej pracy do serwera JasperReports. Teraz nasuwają się pytania: jak to zrobić? Czy istnieje prosty sposób? Odpowiedź brzmi: tak. Narzędzie, którego użyliśmy do budowy szablonu, posiada jeszcze jedną ciekawą funkcję – pozwala na eksport plików do serwera repozytorium.
W tej części artykułu czytelnik dowie się, jaki jest najprostszy sposób na zintegrowanie raportu Jaspersoft Studio z JasperReports Server.
Do pracy potrzebujesz JasperReports Server oraz Jaspersoft Studio. Zakładam, że zarówno serwer, jak i aplikacja są zainstalowane na tym samym komputerze, na którym pracujesz (localhost). Jeśli jeszcze tego nie zrobiłeś, zachęcam do kliknięcia w linki, pobrania i zainstalowania narzędzi.
Jeśli przeczytałeś już poprzednią część artykułu, wiesz, jak stworzyć prosty szablon faktury i nie powinieneś mieć problemu ze znalezieniem zakładki Repository Explorer. Przy standardowej instalacji Jaspersoft Studio zakładka ta znajduje się po lewej stronie.
W tej zakładce kliknij na Servers i wybierz Create JasperReports Server Connection z menu kaskadowego.

Jaspersoft Studio: tworzenie nowego połączenia z JasperReports Server.
W nowym oknie uzupełnij formularz według schematu:
I kliknij Finish, aby kontynuować.
Po dodaniu serwera i rozwinięciu jego szczegółów otrzymujemy zestaw folderów dokładnie tak, jak w aplikacji JasperReports Server. Możesz rozwinąć każdy folder, aby dowiedzieć się o nim więcej.
Przejdź do zakładki Project Explorer i kliknij na szablon faktury, ten sam, który możesz pobrać z poprzedniej części artykułu. Teraz odnajdujemy przycisk wyróżniony na ekranie poniżej.

Jaspersoft Studio: publikowanie szablonu faktury na serwerze JasperReports można wykonać klikając wybrany przycisk.
W nowym oknie kliknij Reports lub inny katalog, w którym chcesz przechowywać szablon faktury. Jeśli potrzebujesz innego lub nowego katalogu, możesz go utworzyć w JasperReports Server pod adresem http://localhost:port/jasperserver.

Jaspersoft Studio: publikowanie raportu – krok 1.
Przechodzimy dalej klikając Next. W kolejnym oknie przesyłamy zasoby szablonu – czyli pliki takie jak logo faktury czy parametr wejściowy faktury, który również jest zasobem.

Jaspersoft Studio: publikowanie raportu – krok 2.
W kolejnym kroku klikamy jeszcze raz Next i wybieramy źródło danych (Select Data Source z Repository i rozwijamy Data Sources). Wybierz połączenie z serwerem bazy danych Oracle. Uwaga: jeśli nie masz skonfigurowanego połączenia z bazą danych Oracle w swojej aplikacji JasperReports Server, powinieneś to zrobić teraz i wrócić, aby ponownie opublikować szablon. Jeśli potrzebujesz informacji o tym, jak stworzyć nowe połączenie w JasperReports Server, zachęcam do zapoznania się z artykułem na stronie Jaspersoft.

Jaspersoft Studio: publikowanie raportu – krok 3.

Jaspersoft Studio: przy publikowaniu szablonu do repozytorium JasperReports Server można wybrać odpowiednie źródło danych (Data Source).
Po wybraniu odpowiedniego serwera możesz zakończyć proces klikając Finish.
Szablon faktury został przesłany do repozytorium. Teraz możesz przetestować raport w aplikacji JasperReports Server. W tym przypadku przechodzimy na stronę http://localhost:port/jasperserver/, logujemy się jako jasperadmin (hasło: jasperadmin), rozwijamy sekcję „Reports” (lub inny wcześniej wskazany katalog) i klikamy nazwę szablonu (w moim przypadku „invoice”).
W wyświetlonym oknie jako parametr invoice_id wpisz liczbę „1” i kliknij OK. W rezultacie na ekranie pojawi się dokument HTML dla faktury o identyfikatorze nr 1.

JasperReports Server: wywołanie szablonu faktury o identyfikatorze nr 1.

JasperReports Server: wyświetla fakturę VAT w formacie HTML.
Jak widać, proces publikowania nowego lub zmodyfikowanego szablonu dokumentu jest prosty i intuicyjny. W większości przypadków publikowanie szablonu nie powinno sprawiać żadnych problemów. Wyjątkiem są projekty zawierające podraporty, których Jaspersoft Studio nie chce wysyłać. W takiej sytuacji możemy użyć elementu List, który ma własne źródło danych. Innym rozwiązaniem jest edycja szablonu na stronie serwera JasperReports.
Jak widać, oprogramowanie Jaspersoft to potężny zestaw narzędzi, które można wykorzystać do tworzenia szablonów dokumentów i drukowania ich w różnych popularnych formatach. Rozwiązania te można stosować w połączeniu z technologią Oracle DB oraz aplikacjami opartymi na Oracle APEX (ten ostatni temat omówię w drugiej części artykułu). Programy Jaspersoft można również pobrać za darmo, a wybór ten nie wymaga żadnych kompromisów w zakresie bezpieczeństwa ani stabilności. Czego więcej można rozsądnie oczekiwać od oprogramowania przeznaczonego do tego konkretnego celu? Szczerze mówiąc, niewiele – jest to bardzo dobra alternatywa dla rozwiązań komercyjnych. Aby uzyskać więcej informacji na temat tej technologii, zapraszam również do zapoznania się z moim innym artykułem: Samouczek dotyczący oprogramowania TIBCO Jaspersoft: Integracja serwera JasperReports z aplikacją w Oracle APEX.
Jaspersoft Studio to tylko wierzchołek góry lodowej – Pretius doskonale zna wiele różnych technologii. Mamy ogromne doświadczenie w realizacji dużych projektów dla firm z różnych branż. Jeśli potrzebujesz programistów, napisz do nas na adres hello@pretius.com (lub skorzystaj z formularza kontaktowego poniżej). Odpowiemy w ciągu 48 godzin i powiemy, jak możemy pomóc.