Az autós nyomtatványon eddig a személyes adatokat jelenítettük meg, de a szervizkönyvhöz szükség van a járművek felsorolására is. A következőkben két autó tulajdonságait teszem fel a nyomtatványra lista elem formájában.
A Jasper Studio-ban a tömbök ábrázolásához használhatunk táblázatot (Table) és listát (List). Mindkettő adatfelhasználása megegyezik, de a lista megjelenése egyszerűbb. A járműlistához az eddig is használt adatforrást állítom be (cars.json), amelyből a "vehicles" tömböt fogom listaként megjeleníteni:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | { "personal" : { "name" : "Molnár László" , "birthPlace" : "Baja" , "birthDate" : "1975-04-03" }, "vehicles" : [{ "make" : "Honda" , "model" : "Civic" , "year" : 1996 },{ "make" : "Ford" , "model" : "S-Max" , "year" : 2006 }] } |
A lista beszúrásához be kell húzni egy "List" elemet, majd a varázslón végig kattintva létrehozhatjuk a listát. Ebben be lehet állítani az adatforrást és a használandó mezőket (make, model, year). Az adatokat a riport fő adatforrásából vesszük, annak egy szelete lesz a lista forrása. Ezt a subDataSource metóduson keresztül, a json path ("vehicles") megadásával tehetjük meg:
((net.sf.jasperreports.engine.data.JsonDataSource)$P{REPORT_DATA_SOURCE}).subDataSource("vehicles")

Sajnos a felület nem ad semmilyen segítséget a JsonDataSource metódusaihoz (pl: felugró listából választás lehetősége, azaz code complete), így ezt mindenképpen kézzel kell megadnunk a DataSource expression mezőben. Ha a JsonDataSource osztályt importáljuk, akkor a csomag jelölés is elhagyható, de a cast-olás mindenképpen szükséges:
((JsonDataSource)$P{REPORT_DATA_SOURCE}).subDataSource("vehicles")
A lista hozzáadása után arra duplán kattintva egy új fül jelenik meg a Design nézet alatt, a Main mellett lesz egy List is. Ez utóbbiban tudjuk a listára felpakolt mezőket kezelni. A listaelemek rendezése után a Preview-ban generált pdf-en látható a 2 autó adatait tartalmazó lista.
Videó a listák kezeléséről:
További információk: http://community.jaspersoft.com/wiki/lists-jaspersoft-studio