2010-03-01 4 views
2

J'utilise JasperReports avec JavaBeans (j'ai besoin d'imprimer des rapports dans une application qui utilise Hibernate). Maintenant, je peux travailler sur les collections Beans et les utiliser dans JasperReports, mais parfois je me demande s'il existe un moyen d'accéder aux propriétés du bean sans qu'il s'agisse d'une collection. Ce que je veux dire, c'est que j'utilise JRBeanCollectionSource comme source pour les différents sous-rapports. Supposons que j'ai une liste de personnes et que chacune d'entre elles possède une propriété Car. Maintenant, y at-il un moyen d'accéder directement aux propriétés de voiture sans le voir comme une collection?JavaBeans et JasperReports

Répondre

3

Vous pouvez essayer d'extraire la propriété du bean et de placer une source de données différente, par exemple JRMapCollectionDataSource.

Cela signifierait ne pas avoir à traiter chaque fois la collection entière de Bean.

Voici un exemple de code pour la construction d'une DataSource.

Collection<Map<String, Object>> myColl = new ArrayList<Map<String,Object>>(); 

Map<String, Object> map1 = new HashMap<String, Object>(); 
map1.put("Field1","Value1"); 
map1.put("Field2","Value2"); 
map1.put("Field3", someObject); 
myColl.add(map1); 

JRMapCollectionDataSource source = new JRMapCollectionDataSource(myColl); 
+0

Merci, les documents ne sont pas très clairs à ce sujet ... – gotch4

+0

C'est vague dans le meilleur des cas ... – Gordon

Questions connexes