JasperReports oktatóanyag: Mire való a Jasper Report? Java?

⚡ Okos összefoglaló

JasperReports ehhez: Java egy nyílt forráskódú jelentéskészítő motor, amely az alkalmazásadatokat pixelpontos dokumentumokká alakítja. Ez a cikk ismerteti a jelentéskészítési életciklust, a Jaspersoft Studio telepítését, a jelentéssablonok létrehozását, a sávszerkezetet, a Pentaho összehasonlítást és a csapatok által tapasztalt gyakorlati korlátokat.

  • 📊 Alapvető definíció: A JasperReports egy Java osztálykönyvtár, amely adatokat jelenít meg képernyőn, nyomtatón, PDF, HTML, XLS, RTF, CSV, XML, ODT és TXT formátumban.
  • 🔄 Életciklus szakaszok: Négy szakasz fut egymás után, nevezetesen a JRXML megtervezése, .jasper fájlba fordítása, adatokkal való feltöltése és az eredmény exportálása.
  • 🖥️ Tervezési környezet: A Jaspersoft Studio Community Edition biztosítja a vizuális tervezőt, és a 6.21.3-as verzió a jelenlegi közösségi kiadás.
  • 🧩 Sávszerkezet: A cím, az oldal fejléce, az oszlop fejléce, a részlet, az oszlop lábléce, az oldal lábléce és az összefoglaló sávok szabályozzák, hogy az egyes elemek hová jelenjenek meg.
  • 🔌 Adatok rugalmassága: Egyetlen jelentés kombinálható JavaBean-gyűjtemények, SQL-eredményhalmazok, XML-fájlok és egyéni adatadapterek.
  • 🇧🇷 Platform összehasonlítás: A Jaspersoft a dokumentáció és a mobil üzleti intelligencia területén vezet, míg a Pentaho az irányítópultok és az adatbányászat terén.
  • ⚠️ Ismert korlátozás: A jelentéseket végrehajtás előtt össze kell állítani, ezért minden jelentéskészítőnek teljes körű Java SDK telepítve.

JasperReports oktatóanyag

Mire való a JasperReports? Java?

JasperReports egy nyílt forráskódú jelentéskészítő eszköz Java amelyet alkalmazások jelentéskészítésére használnak. Ez a jelentéskészítő eszköz segít gazdag tartalom írásában a képernyőre, a nyomtatóra vagy különféle fájlokba, például HTML, PDF, XLS, RTF, CSV, XML, ODT és TXT formátumban. A JasperReports a következőkre is használható: Java-engedélyezett alkalmazások, mint pl Java EE vagy webes alkalmazások dinamikus tartalom generálására.

A legtöbb beszélgetésben három terméknév jelenik meg együtt, és a korai elkülönítésük megakadályozza a későbbi félreértéseket ezen az oldalon.

Név Ami Ki használja
JasperReports Könyvtár Az Java jelentéseket összeállító, kitöltő és exportáló könyvtár Java fejlesztők jelentéseket ágyaznak be egy alkalmazásba
Jaspersoft Stúdió Az Eclipse vizuális tervező, aki JRXML fájlokat készít Jelentéstervezők készítenek elrendezéseket
JasperReports szerver Egy önálló szerver, amely tárolja, ütemezi és kézbesíti a jelentéseket Csapatok, akik jelentéseket osztanak meg az üzleti felhasználóknak

Ez az oldal a könyvtárra és a Jaspersoft Studio-ra összpontosít, mivel ez a két komponens elegendő egy első jelentés megtervezéséhez és futtatásához. Fontos megjegyezni, hogy a közösségi kiadás mostantól csak ezt a két komponenst tartalmazza, mivel a JasperReports Server már nem érhető el közösségi letöltésként.

Miért használja a Jasper Reports szolgáltatást?

Íme számos ok, amiért érdemes Jasper jelentéskészítő eszközt használni:

  • Jelentéskészítési teljesítményt és kézbesítést kínál a felhasználóknak.
  • Segít az adatok szöveges vagy grafikus formátumban történő megjelenítésében.
  • Ez egy önálló és beágyazott jelentéskészítő szerver a jelentések összeállításához és végrehajtásához.
  • Lehetővé teszi a szerepkör alapú hozzáférés-szabályozást a lerakatban lévő összes jelentéshez.
  • A Spring Security keretrendszer integrálható a házon belüli hitelesítési rendszerekkel.
  • Biztonságos, ütemezett és automatikusan kézbesített interaktív jelentéskészítő motort kínál.
  • Beágyazhat jelentéseket Java vagy nemJava alkalmazásokat.
  • Különféle formátumú jelentések exportálhatók.
  • Képes vízjeleket generálni, amelyeket az elsődleges kép fölé helyez.
  • Teljes készletet kínál SOAP, REST és webszolgáltatások.
  • Lehetővé teszi egyetlen jelentés adatainak használatát több adatforrásból.

Mivel a könyvtár LGPL licenc alatt kerül kiadásra, kereskedelmi termékekbe is beépíthető helyenkénti díj nélkül, ami az oka annak, hogy sok... Java a csapatok a saját jelentéskészítő motorok helyett ezt választják.

A Jasper Reports jellemzői

Most a JasperReports funkcióit fogjuk áttekinteni.

Íme a Jasper Reports eszköz fontosabb funkciói:

  • Rugalmas jelentéselrendezést kínál sávok, oszlopok és szabad formátumú régiók között.
  • A fejlesztők többféleképpen is megadhatják az adatokat, beleértve JavaBean-gyűjtemények, SQL-lekérdezések és XML-dokumentumok.
  • Több adatforrás kombinálható egyetlen jelentésben aljelentések és adatadapterek segítségével.
  • Vízjelek az elsődleges képre is alkalmazhatók.
  • Létrehozhat olyan részjelentéseket, amelyek egy szülő elrendezésbe vannak beágyazva.
  • Segít a jelentések exportálásában különféle formátumokban, mint pl PDF, HTML, RTF és Microsoft Excel fájlok.
  • A motor lehetővé teszi a jelentésdefiníciók számára, hogy olyan diagramokat tartalmazzanak, mint az oszlop-, kör-, vonal- és idősordiagramok.
  • A jelentéskifejezések a következőképpen írhatók: Java, Groovyvagy JavaForgatókönyv.

Ezek a képességek egy rögzített feldolgozási sorrenden keresztül érhetők el, amelyet a következő szakasz szakaszonként ismertet.

A JasperReports életciklusa

Most a JasperReports életciklusát fogjuk megismerni.

A Jasper Reports életciklusának általános folyamata a következő:

A JasperReports életciklusa

A fenti ábra sorrendben mutatja a négy szakaszt. Minden szakasz létrehoz egy fájlt, amely a következő szakasz bemenete lesz, ezért a sorrend soha nem fordítható meg.

Színpad Bemenet teljesítmény Fájlkiterjesztés
Tervezés Elrendezési döntések Jelentéssablon .jrxml fájl
összeállítása .jrxml fájl Lefordított bináris sablon .jáspis
Végrehajtó .jasper fájl és adatok Kitöltött jelentés .jrprint fájl
Exportálása .jrprint fájl Záró dokumentum .pdf, .html, .xls és mások

A jelentés megtervezése

Ez lesz az első lépés, ahol létrehozzuk a JRXML fájlt. Ez egy egyszerű XML dokumentum, amely meghatározza a jelentés elrendezését. Ezt a fájlt bármilyen szövegszerkesztővel vagy egy jelentéstervezővel létrehozhatod.

Ha azonban a jelentéstervezőt használja, akkor vizualizálhatjuk a jelentés elrendezését, és a JRXML valódi szerkezete figyelmen kívül hagyható.

A jelentés összeállítása

Ebben az életciklus-szakaszban lefordítják az első szakaszban felépített JRXML-t, és létrehoznak egy Jasper fájlnak nevezett bináris objektumot (jasper kiterjesztésű fájl).

Ez az összeállítás a jobb teljesítmény érdekében készült a végrehajtás során. Ezeket a generált Jasper fájlokat az alkalmazással együtt kell szállítani a jelentések futtatásához.

A jelentés végrehajtása

Ebben a szakaszban összegyűjtik az alkalmazásból származó adatokat, és kitöltik az összeállított jelentésformátumban. Van egy net.sf.jasperreports.engine.JasperFillManager nevű osztály, amely funkciókat kínál a jelentések adatainak kitöltéséhez.

A kimenet egy Jasper nyomtatási fájlban (jrprint kiterjesztésű fájl) lesz tárolva, amely felhasználható a jelentés nyomtatására vagy exportálására.

A jelentés exportálása a kívánt formátumba

Ebben az utolsó szakaszban exportálnia kell a korábban létrehozott Jasper nyomtatási fájlt bármilyen formátumba a JasperExportManager osztály használatával. Mivel a Jasper többféle exportálási formátumot kínál, ugyanazt a bemenetet használhatjuk az adatok különféle reprezentációinak létrehozásához.

A Jasper Reports telepítése – Környezet beállítása

Most pedig ismerjük meg a JasperReports környezet beállításának lépésről lépésre történő folyamatát. Az alábbi képernyőképeket a 6.9-es telepítővel készítettük. A jelenlegi közösségi kiadás a 6.21.3, amely 2024. április 23-án jelent meg, és a képernyőképek sorrendje változatlan, bár a fájlnévben szereplő verziószám eltér.

Step 1) Töltse le a Jasper Reports közösségi kiadását
Menjen erre Link és kattintson a Letöltés most lehetőségre a Jasper Reports közösségi kiadásának telepítéséhez.

Telepítse a Jasper Reports- Environment Setup programot

Step 2) Válassza a Jaspersoft Studio CE-t
A közösségi kiadások közül válaszd a Jaspersoft Studio CE-t.

Telepítse a Jasper Reports- Environment Setup programot

Step 3) Töltse le a Jaspersoft Studio-t
Menjen erre link és kattintson a Letöltés gombra, majd nyissa meg az operációs rendszeréhez letöltött telepítőfájlt.

Telepítse a Jasper Reports- Environment Setup programot

Step 4) Kattintson az Elfogadom gombra
A következő képernyő jelenik meg. Válassza az Elfogadom gombot.

Telepítse a Jasper Reports- Environment Setup programot

Step 5) Válassza ki a helyet
Válassza ki a telepítési helyet, majd kattintson a Tovább gombra.

Telepítse a Jasper Reports- Environment Setup programot

Step 6) A haladás most zajlik
A folyamatot a következő képernyőn láthatja.

Telepítse a Jasper Reports- Environment Setup programot

Step 7) Kattintson a befejezés gombra
A következő képernyőn kattintson a Befejezés gombra.

Telepítse a Jasper Reports- Environment Setup programot

Step 8) A haladás befejeződött
A következő képernyő jelenik meg az ablakban.

Telepítse a Jasper Reports- Environment Setup programot

Step 9) Első lépések
Ezután kattintson az Első lépések lehetőségre.

Telepítse a Jasper Reports- Environment Setup programot

Step 10) Kezdjen el dolgozni a Jasper Reports stúdióval
A következő képernyő jelenik meg, és elkezdheti használni a Jasper Reports stúdiót.

Telepítse a Jasper Reports- Environment Setup programot

💡 Tipp: A Jaspersoft Studio egy Eclipse alapú alkalmazás, és kompatibilis eszközt igényel Java futtatókörnyezet jelen van a gépen. Ha a telepítő nem hajlandó elindulni, az újratelepítés előtt ellenőrizze a telepített JDK verziót.

Példa jelentéssablon létrehozására

Most pedig nézzük meg, hogyan hozhatunk létre jelentéssablonokat a JasperReportsban.

A JasperReportsban használt jelentéssablonfájl egy egyszerű XML fájl, amelynek kiterjesztése jrxml. Ez a fájl a jasperReport taget tartalmazza gyökérelemként. A JasperReports keretrendszer különböző típusú adatforrásokat képes kezelni.

Egy jelentéssablon megtervezése és létrehozása a következő lépésekkel történik.

Step 1) JRXML fájl létrehozása a Jaspersoft Studióban.

  1. Lépjen a Fájl opcióra.
  2. Válassza az Új almenüt.
  3. Kattintson a Jasper-jelentés opcióra.

Példa jelentéssablon létrehozására

Step 2) A kívánt sablon kiválasztása.

  1. Válassza ki a sablont, például cseresznye.
  2. Kattintson a „Next” gombra.

Példa jelentéssablon létrehozására

Step 3) Szülőmappa kiválasztása.

  1. Válassza ki a Saját jelentések mappát.
  2. Adja meg a fájl nevét, például „Cherry Report”.
  3. Kattintson a „Next” gombra.

Példa jelentéssablon létrehozására

Step 4) Az Adatforrás ablakban kattintson az „Új” gombra egy új adatadapter létrehozásához.

Példa jelentéssablon létrehozására

Step 5) Adatadapter kiválasztása.

  1. Válassza ki az adatadaptert a listából. Például: „Gyűjtemény JavaBab.”
  2. Kattintson a „Next” gombra.

Példa jelentéssablon létrehozására

Step 6) Adatadapter adatainak megadása és a gyári osztály kiválasztása.

  1. Adja meg az adapter nevét.
  2. Válassza ki a gyári osztályt a „…” gombra kattintva.

Példa jelentéssablon létrehozására

Step 7) Az előtag vagy minta megadása.

  1. Adja meg a név előtagját vagy mintáját.
  2. Kattintson a megfelelő elemekre.
  3. Kattintson az „OK” gombra.

Példa jelentéssablon létrehozására

Step 8) A factory osztály definiálása és a jar fájlok elérési útjának hozzáadása.

  1. Írja be a statikus metódus nevét a gyári osztályba. Ebben a Jasper-jelentési példában ez a createBeanCollection.
  2. Ha a JavaA Beans definícióhoz mezőleírások tartoznak, és ha ezeket névként szeretnéd használni a Jaspersoft Studio-ban, jelöld be a mezőleírás használata jelölőnégyzetet.
  3. Adjon hozzá elérési utat a jar fájlokhoz.
  4. Kattintson a „Befejezés” gombra.

Példa jelentéssablon létrehozására

Step 9) Kattintson a „Next” gombra.

Példa jelentéssablon létrehozására

Step 10) Gratulálunk! Sikeresen hozzáadta az összes szükséges jelentéskészítési információt. Kattintson a „Befejezés” gombra.

Példa jelentéssablon létrehozására

A jelentés az alábbi képernyőn látható módon generálódik.

Példa jelentéssablon létrehozására

A fenti fájlt JasperReport bináris formátumba kell fordítani, amelyet jasper fájlnak nevezünk.

A JasperReports könyvtár részét képező net.sf.jasperreports.engine.design.JRCompiler interfész fontos szerepet játszik ennek a jelentéssablonfájlnak a fordításában.

Ennek a felületnek a megvalósítása beírható Java, JavaForgatókönyv, Groovy, vagy bármilyen más szkriptnyelv.

A JRXML fájlokat a következő két módszerrel fordíthatja le:

  • Programozott fordítás innen: Java kód.
  • Összeállítás egy Apache Ant feladat.

Az alábbi kódrészlet a programozott útvonalat mutatja, ahol az egyik sor lefordítja a sablont, a második sor pedig kitölti azt egy JavaBabgyűjtemény.

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

output:

Report exported successfully

A különböző jelentési sávok megértése

A JasperReports elrendezése vízszintes részekre, úgynevezett sávokra van osztva. Minden sávhoz tartozik egy rögzített nyomtatási szabály, és ezen szabályok megértése teszi lehetővé a tervező számára, hogy pontosan szabályozza, hol jelenjen meg egy érték a kész dokumentumban.

Az alábbiakban a legtöbb kereskedelmi jelentéskészítő eszköz által alkalmazott szabványos jelentéssávok láthatók.

  • Cím
  • Oldalfejléc
  • Oszlopfejléc
  • Részlet
  • Oszlop lábléce
  • Oldal lábléce
  • Utolsó oldal lábléce
  • Összegzésként
  • Csoport fejléce
  • Csoport lábléce
  • Háttér
  • Nincs adat

Nézzük meg részletesen az egyes jelentési sávokat.

Cím

Ez a sáv a jelentés elején látható. Az attribútum beállításával különálló első oldalra helyezhető. isTitleNewPage="true".

Oldalfejléc

Az oldal fejlécsávja minden oldal elején látható. Ez nem tartalmazza az első oldalt, ha a címsávot, és az utolsó oldalt, ha az összefoglaló sávot használja a beállítással. isSummaryWithPageHeaderAndFooter="false".

Oszlopfejléc

Az oszlopfejlécek minden oldalon a részletsáv előtt jelennek meg.

Részlet

A részletező szakaszt a megadott adatforrás minden egyes rekordjához megismétlik. Több részletező sáv (1, 2 és így tovább) is megengedett.

Oszloplábléc

Ez a szakasz a részletező sáv alatt jelenik meg minden olyan oldalon, ahol a részletező sáv található. Az alapértelmezett beállítás az oldal vége, de ez átállítható úgy, hogy az utolsó részletező sáv alatt legyen az attribútum beállításával. isFloatColumnFooter="true".

Oldal lábléc

Ez a szakasz minden oldal végén megjelenik, kivéve az összefoglaló sávot, a címsávot és az utolsó nem összefoglaló sávot.

Utolsó oldal lábléce

Ez a szakasz az utolsó oldalon jelenik meg a normál lábléc helyett, ha nincs megadva összefoglaló sáv.

Összegzésként

Az összefoglaló rész csak akkor jelenik meg a jelentés végén egy új oldalon, ha isSummaryNewPage="true" be van állítva, és az oldal fejlécével és láblécével, amikor isSummaryWithPageHeaderAndFooter="true" van beállítva.

Csoport fejléce

Ez a szakasz csak akkor jelenik meg, ha definiálva van, minden alkalommal, amikor a csoportkifejezés megváltozik, a részletező sáv előtt.

Csoport lábléce

Ez a szakasz csak akkor jelenik meg, ha egy csoport definiálva van, minden alkalommal a csoportkifejezés változása előtt, a részletsáv után.

Háttér

Minden oldalon háttérként jelenik meg az összes többi jelentési sávhoz képest.

Nincs adat

Ez a sáv akkor jelenik meg, ha nem került átadásra adatforrás, vagy az adatforrás üres, és whenNoDataType="NoDataSection" van beállítva.

Jasper vs. Pentaho

Most megtudjuk a különbséget Jasper és Pentaho között.

Íme a Jasper és a Pentaho közötti főbb különbségek:

paraméterek Jáspis Pentaho
Jelentések Jasper a Jaspersoft Studio programot használja a jelentések tervezéséhez. A Pentaho Report Designert használja.
ETL támogatás A Jaspersoft a Talend Open Studio verzióját használja ETL célokra. Alapértelmezésben a Pentaho Data Integratort használja ETL eszköz.
Műszerfal Az irányítópult funkció csak a Jaspersoft vállalati kiadásában található meg. A Pentaho számos funkciót kínál az irányítópultjain.
Mobil üzleti intelligencia A Jaspersoft jobb mobil BI-támogatással rendelkezik. A Pentaho-nak egy külső eszközre kell támaszkodnia a mobil BI élmény javítása érdekében.
Dokumentáció Jobb marketing, webhelyek és dokumentáció. A dokumentációs támogatás gyenge.
Legjobb tulajdonsága Könnyebb kutatni és megtalálni, amire szüksége van. Adatbányászatot és iPhone integrációt kínál.
Fizetett változat A fizetős verzió olyan funkciókat kínál, mint ad hoc lekérdezés webes felhasználói felület és irányítópult létrehozása webes felhasználói felület. Olyan funkciókat kínál, mint az LDAP-integráció, az SSO és az auditálás.

A csapatok már befektettek a Java a stack általában a Jaspert választja, míg azoknak a csapatoknak, akiknek a jelentéskészítés mellett nagy mennyiségű adatintegrációra van szükségük, gyakran a Pentaho.

A JasperReports létrehozása során felmerülő kihívások

Íme néhány kihívás, amellyel a Jasper-jelentések létrehozásakor szembesülni fogsz:

  • Alapvető változások – amikor az üzleti szabályok megváltoznak vagy frissülnek, a jelentés alapvető logikáját is meg kell változtatni.
  • Komplex jelentések – jó példák erre az aljelentések és a kereszttáblás jelentések.
  • Diagramjelentések vagy vizuális diagramok, például grafikon, XY vonal, kördiagram, oszlopdiagram, idősoros és mérődiagram.

A Jasper Reports használatának hátrányai

Íme a Jasper Reports használatának hátrányai.

  • Ha egyszer elkezdünk változtatni a csomag egyes részein és eltávolítani a funkciókat, nagyon nehéz visszaállítani az alapértelmezett csomagbeállításokat.
  • Túl merev, és a vonalak szerkesztése, valamint a kereszttáblák létrehozása kihívást jelentő feladat.
  • Néhány gyakori feladat, például a csoportosított jelentések részösszegeinek megadása, könnyebben elvégezhető más jelentéstervezőkben.
  • A Jasper megköveteli, hogy jelentéseket állítson össze, mielőtt futtatná azokat. Ez azt jelenti, hogy a jelentéskészítőknek rendelkezniük kell a teljességgel Java SDK telepítve.
  • Néha a jelentés szerkesztésekor nem ugyanaz az előnézet jelenik meg, mint az interneten.

GYIK

A .jrxml fájl az ember által olvasható XML sablon, amelyet a tervezők szerkesztenek. A .jasper fájl az ebből előállított lefordított bináris fájl, és futásidőben csak a lefordított fájl fut.

A JasperReports Library és a Jaspersoft Studio Community Edition nyílt forráskódú licenc alatt érhető el, és kereskedelmi termékekbe ágyazható. Az irányítópultokhoz, ütemezéshez és biztonsági funkciókhoz fizetős kiadás szükséges.

Igen. Hozz létre egy JDBC adatadaptert a Jaspersoft Studio-ban, add meg az illesztőprogram jar fájlját és a kapcsolati karakterláncot, majd írd meg a lekérdezést a jelentésben. A paramétereket a dollár és a zárójel szintaxissal add át.

Igen. Adja hozzá a jasperreports függőséget, helyezze el a lefordított .jasper fájlokat az osztályútvonalon, és hívja meg a JasperFillManager-t egy szolgáltatásosztályból. Az exportált bájtok közvetlenül egy HTTP-válaszba továbbíthatók.

A mesterséges intelligencia asszisztensek gyorsan tudnak JRXML vázakat és kifejezésszintaxist készíteni. A létrehozott fájlt mindig a Jaspersoft Studio-ban nyisd meg, mivel a sávmagasságok és az elemkoordináták gyakran manuális korrekciót igényelnek.

Kezeli azokat a pixelpontos működési dokumentumokat, amelyeket a mesterséges intelligencia által fejlesztett irányítópultok nem állítanak elő, például számlákat és kimutatásokat. A modell kimenetei egy adatbázisba íródnak, és a Jasper rendereli azokat terjesztés céljából.

Foglald össze ezt a bejegyzést a következőképpen: