Comment déboguer jasper reports?
Je travaille actuellement sur mon premier rapports à l'aide de iReport pour la conception. Sous certaines conditions, jasper est coincé dans une sorte de boucle infinie /appel récursif. Jasper journaux de la suite à plusieurs reprises:
[...]
12-04-10 10:29:59,222 DEBUG s.engine.fill.JRVerticalFiller|Fill 1207280802: page footer
12-04-10 10:29:59,222 DEBUG ports.engine.fill.JRBaseFiller|Fill 1207280802: adding page 38849
12-04-10 10:29:59,222 DEBUG ts.engine.fill.JRFillSubreport|Fill 1207280802: resuming 849817670
12-04-10 10:29:59,222 DEBUG e.fill.JRThreadSubreportRunner|Fill 849817670: notifying to continue
12-04-10 10:29:59,222 DEBUG e.fill.JRThreadSubreportRunner|Fill 849817670: waiting for fill result
12-04-10 10:29:59,222 DEBUG e.fill.JRThreadSubreportRunner|Fill 849817670: notified to continue
12-04-10 10:29:59,222 DEBUG ports.engine.fill.JRBaseFiller|Fill 849817670: suspeding subreport runner
12-04-10 10:29:59,222 DEBUG e.fill.JRThreadSubreportRunner|Fill 849817670: notifying on suspend
12-04-10 10:29:59,222 DEBUG e.fill.JRThreadSubreportRunner|Fill 849817670: waiting to continue
12-04-10 10:29:59,222 DEBUG e.fill.JRThreadSubreportRunner|Fill 849817670: notified of fill result
12-04-10 10:29:59,222 DEBUG ts.engine.fill.JRFillSubreport|Fill 1207280802: subreport 849817670 to continue
[...]
Cette séquence est enregistrée à plusieurs reprises à l'identique de remplissage de l'ids. J'ai des problèmes avec l'interprétation de ces journaux de débogage. En dehors de résoudre le problème concret que je suis intéressé dans les stratégies de débogage jasper reports. Alors, comment déboguer des rapports?
Parlez-vous de la
Vous pouvez essayer de tester votre rapport avec l'application Java (vous pouvez utiliser JasperReports de l'API, par exemple). Vous pouvez télécharger la source de la gare JR de l'API, de sorte que vous pouvez facilement le débogage de l'application de ce type
K #1: Non, je tiens à déboguer une jasper rapport avec plusieurs sous-états. #2: eh Bien, je suis déjà en utilisant les sources et eclipse pour parcourir le code, mais je me demandais si il ya une meilleure alternative
iReport
de débogage?Vous pouvez essayer de tester votre rapport avec l'application Java (vous pouvez utiliser JasperReports de l'API, par exemple). Vous pouvez télécharger la source de la gare JR de l'API, de sorte que vous pouvez facilement le débogage de l'application de ce type
K #1: Non, je tiens à déboguer une jasper rapport avec plusieurs sous-états. #2: eh Bien, je suis déjà en utilisant les sources et eclipse pour parcourir le code, mais je me demandais si il ya une meilleure alternative
OriginalL'auteur GLA | 2012-04-10
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser le
log4j.properties
pour obtenir des informations supplémentaires à partir de iReport. Les étapes ci-dessous m'a été fournie par Jasper soutien pour m'aider à voir ce que SQL est généré par un rapport avec plusieurs sous-rapports et dynamique SQL être passé entre eux.Créer un
log4j.properties
fichier (placer sousireport/etc
), avec lacontenu de la manière suivante:
Ci-dessus, le journal de sortie sera dans le
iReport.log
dans lec:/tmp
dossier.
Modifier
ireport/etc/ireportpro.conf
et ajouter le contenu suivant dans ledefault_options
paramètre:Il devient donc:
S'il vous plaît prêter attention au répertoire ci-dessus, vous aurez besoin de l'ajuster à
votre propre répertoire de iReport installation.
Redémarrer iReport et exécuter des rapports, le SQL généré sera ensuite
sortie en
iReport.log
.OriginalL'auteur grizw0ld
Vous pouvez utiliser te classe ci-dessous pour créer une "expression logger" et vous pouvez ensuite les utiliser dans le rapport pour voir les valeurs de la variable, et quand ils sont évalués ou utilisé.
Tout d'abord, vous devez créer un enregistreur et le mettre dans le rapport, les paramètres de la carte dans votre code Java qui commence le rapport:
Dans le rapport, créer un nouveau paramètre
log
avec le type de la classe ci-dessous. Maintenant, quand vous avez à évaluer une expression (comme une "Impression Lors de l'Expression"), l'envelopper:Voici le code de la classe:
OriginalL'auteur Aaron Digulla