2011-10-23 2 views
1

Je dois générer un rapport, qui affiche des informations sur un objet (donc l'entrée est seulement un bean).Rapports Jasper, passez une liste/tableau dans un bean

Le premier problème est - ce bean doit contenir listes de sous-beans (par exemple, commentaires, avec type de commentaire et date de commentaire). Je peux donc les transmettre à un sous-rapport.

Le deuxième problème est - il ya un tableau de 4 sous-beans, qui contient quelques champs. Je peux créer un champ distinct pour chaque propriété de sous-haricot (firstSubBeanName, secondSubBeanName ...), mais il est moche :(Idéalement, il devrait y avoir un moyen d'accéder à ces grains de telle manière:.

$F{test}[0].name 

S'il vous plaît aider.

+0

Je ne vois pas pourquoi cela ne fonctionnerait pas, à condition que le champ est déclaré à la type approprié (ie com.foo.bar.SomeBean []). L'as tu essayé? Avez-vous une erreur? –

+0

Eh bien, je ne savais pas comment spécifier le type "tableau de quelque chose", au moins avec les génériques cela ne fonctionne pas. Mais cela fonctionne bien avec les listes, donc le problème est résolu. – StKiller

Répondre

2

Si votre liste a un nom (c.-à-est une propriété de l'objet), il vous suffit de passer comme expression de source de données pour le sous-état de cette propriété

$F{subBeansList} 

le sous-état doit être prêt à recevoir ce type de données Si vous utilisez des entretoises, il est possible uld utiliser cette classe:

comme intermédiaire sur votre champ de liste à transmettre au sous-rapport.

La deuxième question, la plus simple est d'utiliser une liste, vous pouvez utiliser cette expression:

$F{test}.thelist.get(0) 
+0

Merci, ça marche :) – StKiller

Questions connexes