Chciałbym utworzyć stronę dynamicznego raportowania za pomocą strony JSP. Zasadniczo powinien zawierać następujące części:JasperReports wyjście html i pdf
- Filtr: Użytkownik może określić warunki filtra i nacisnąć przycisk filtru.
- Dane wyjściowe HTML: Wynik filtru można zobaczyć tutaj. To jedna duża strona html (lub kilka, jeśli jedna strona byłaby zbyt duża). Może zawierać linki do innych części systemu.
- Wydruk PDF: Użytkownik powinien mieć możliwość zapisania wersji raportu PDF przeznaczonej do wydrukowania lub archiwizacji.
Zamiast implementować wszystko samodzielnie, chciałbym użyć biblioteki raportowania java, więc stworzyłem mój raport przy użyciu JasperReports. Wynik w formacie pdf jest naprawdę niezły, ale eksport html raportu nie jest odpowiedni dla moich celów.
Eksport html JasperReport tworzy plik html z dużą ilością hardwired kodu i całkiem losowymi opcjami konfiguracji. Na przykład domyślnie tworzy tabelę z białym tłem (<table style="... bgcolor="white" ... ">
), którą można wyłączyć przy użyciu opcji IS_WHITE_PAGE_BACKGROUND
, z drugiej strony cellpadding="0" cellspacing="0" border="0"
są podłączone w znaczniku cellpadding="0" cellspacing="0" border="0"
w znaczniku table
. Jest to również dziwne (i utrudnia stylowanie css), że zamiast klas rozpiętości plik html zawiera <span style="font-family: sansserif; color: #000000; font-size: 10.0px;">
dla wszystkich moich pól.
Oczywiście mogę zaimplementować wyjście HTML przy użyciu JSP, ale oznacza to, że muszę zaprojektować wyjście dwukrotnie (raz w jrxml dla JasperReports, raz w JSP), i muszę ponownie wdrożyć funkcje raportowania (takie jak obliczenia częściowe, obliczenie całkowite, grupowanie ...), co jest sprzeczne z zasadą DRY.
Jaka jest najlepsza praktyka wdrażania? Czy możliwe jest stworzenie lepszego eksportu HTML za pomocą JasperReports?
Natknąłem się na ten wpis dzisiaj, używam html i muszę usunąć ten zakres generowany. Jak już wspomniałeś w swojej odpowiedzi, zrozumiałem, używając jQuery. Mam pytanie, gdzie napisać ten kod i jak zintegrować go z moimi raportami? Proszę, prowadź mnie –