7
votes

Comment passer des arraylistes à JasperReports?

Je suis nouveau à JasperReports . Je veux passer ArrayList pour sous-rapport de la sous-rapport.

J'ai un rapport de maître qui contient une sous-rapport1 et cette sous-rapport1 encapsuler une
SubRpore2 à l'intérieur.

Maintenant comment transmettre l'arrayage à la sous-rapport2?

Comme MasterReport -> Sous-rapport -> Sous-rapport

note : J'utilise IREPORT pour créer un modèle de jasper et transmettre Datamisist à Jasper de ma classe Dao Java.

ci-dessous est mon formulaire Classe de haricots xxx

My Dao Java classe est inférieur xxx

La classe DAO ci-dessus renvoie la liste et en passant ce ArrayList to Jasper Modèle via HASHMAP Param.

ci-dessous est mon exemple de matrice Master Jasper, à partir d'ici, je passe une arrayliste à la sous-rapport comme xxx

$ p {liste} est arrayliste . et utilisez cette liste pour imprimer dans SUBRORPORTE1 Asusual1

Tout en exécutant le code, je reçois l'erreur ci-dessous:

Erreur de récupération de la valeur du champ: TripID

Merci pour votre aide à l'avance.


2 commentaires

BTW, vous devriez vraiment en savoir plus sur les génériques Java - vous ne les utilisez pas correctement.


Ce problème a-t-il résolu? Je suis frustré depuis que j'ai le problème similaire. L'objet de liste des arrestations ayant un autre objet de liste de tableau et un autre objet de liste de réseau. J'ai 3 niveaux.


3 Réponses :


9
votes

C'est fait en passant une source de données de la collection: nouveau beanCollectionDataSource (YourARrayList); code>

puis pour obtenir le jasperprint code> objet: p>

JasperPrint jasperPrint = 
      JasperFillManager.fillReport(jasperReport, params, dataSource);
  • S'il s'agit d'une sous-rapport-par ligne, avez simplement la matrice en tant que propriété du haricot. C'est à dire. Liste code> où quelque chose code> a une propriété de type Liste CODE> LI>
  • S'il en est un pour l'ensemble du rapport, transmettez-le sous forme de paramètre ( paramètres code> ci-dessus). LI> ul> p>


12 commentaires

Oui je le sais. Mais comment le transmettre. Pouvez-vous me fournir un exemple d'exemple d'exemple brièvement. Je suis capable de passer une arrayliste au premier sous-rapport mais de ne pas pouvoir passer à SUPREPORTE2 de SubRporeport1 (Master-Sureport1-SubRpore2). SubRpore2 est à l'intérieur de la sous-rapport1


Eh bien, vous montrez d'abord du code - comment obtenez-vous votre rapport dans le code Java.


@Bozho .. mon codage est énorme, je ne pouvais donc pas la poster ici. Pourriez-vous poster un exemple de code qui est utilisé pour transmettre une arrachelist à la sous-rapport de la sous-rapport.


Eh bien, cela ne le rend pas plus clair. Peut-être devriez-vous identifier les pièces pertinentes. Quoi qu'il en soit, j'ai ajouté une ligne que j'utilise pour transmettre la source de données au rapport et obtenir le résultat.


Le même code utilisant dans mon code aussi, mais la chose n'est pas en mesure de transmettre la liste à la sous-rapport imbriquée. Laissez-moi vous expliquer ici simplement. 1) Je dois avoir un rapport de maître - Master.jrxml 2) Sous-rapport - SubRporeR1.jrxml 3) Sous-rapport - SubRporeport2.jrxml -Le maître.jrxml contient SubRpore1.jrxml, SubRporeR1.jrxml contient SubRporeR2.jrxml, conformément au code ci-dessus que vous avez posté. Je suis capable de passer des arraylistes à SubRporeport1.jrxml mais comment passer la même ou la même arracheliste différente à SubRporeport2.jrxml


J'ai utilisé "JRBeANCollectionDataSource" Inside SubRpore1.jrxml à la liste de transmission de SubRpore2.jrxml, voici son erreur de lancement.Liek-error Récupération de la valeur du champ de Bean: Soubliste (subliste est ArrayList)


@Bozho .... Si cela ne vous dérange pas, vous pouvez afficher un code comme comment réussir la liste au 2e sous-rapport.


@Bozho .. Si je veux transmettre le paramètre ArrayList à la sous-rapport .. Que faut-il faire? Aidez-moi, s'il vous plaît.


Quelle partie que vous n'avez pas compris?


Je suis en train de passer des arraylistes dans "Params" (paramters HASMAP) à Master Rapport et dans le rapport Master, je suis passine l'arralyliste en convertissant "JrbeandCollectionDataSource" à la sous-rapport. Mais maintenant, il lance une erreur comme ci-dessous .. Erreur lors de la récupération de la valeur du champ de Bean: TripID .. Où l'identifiant de déclenchement est désactivé une variable de forme de forme et un réglage (), des méthodes getter ()


Si vous êtes le troisième argument qui passe la DataSource, que se passe-t-il si vous avez plus d'une liste d'objets au rapport? Je discute d'ici: Stackoverflow.com/Questtions/31335886/...


Même faire la même approche, je reçois ce message: net.sf.jasperreports.engine.jrexception: erreur de récupération de la valeur de champ de haricot :. étudiants = nouvelle arrayliste <> (myvector);



0
votes

Vous pouvez le faire en utilisant des listes et / ou des sous-rapports, des données de données et de la jrbeandCollectionDataSource.

Vérifiez cet exemple:

http: //siempredesdeelcurro.blogspot. com.es/2013/06/jasper-Reports-crear-Repor-Utilizando.html

C'est en espagnol, mais par votre nom, je suppose que vous pourrez le lire;)

Pour les enceintes non espagnols, vous pouvez toujours l'utiliser comme à la fin du tutoriel, vous pouvez trouver le XML avec les modèles JRXML.


0 commentaires

6
votes

Étape: 1 Définissez un champ comme

Nom du champ = "LISTCUSIPDATA" et classe = "Java.Util.ArryList"

Étape: 2 Utilisez cette expression à l'intérieur de votre sous-rapport DataSourceExpression
nouveau net.sf.jasperreports.engine.data.jrbeandCollectionDataSource ($ F {listcusipdata}, false)


0 commentaires