JasperReport Problem

Waldi5001

Grünschnabel
Hallo Leute

Ich habe eine normal Java Anwendung in der Jasperreports Kompiliert und angezeigt werden sollen. Ich habe einen Report und darin ist ein Unterreport. Immer wenn ich jedoch den "Füllvorgang" starte kommt ein
Could not load object from location : ./NameDesSubreports.jasper

Den Report rufe ich so auf:

Connection cConnection = DBVerbindung.verbindung;
try
{
HashMap <String, String> hmParameters1 = new HashMap<String, String>();
hmParameters1.put("PeID", Integer.toString(getHauptFenster().getTeilnehmerID()));

jrReport = JasperCompileManager.compileReport("Teilnehmer Bericht.jrxml");

jrPrint = JasperFillManager.fillReport(jrReport, hmParameters1, cConnection);
JasperViewer.viewReport(jrPrint,false);
}
catch (JRException e1)
{
e1.printStackTrace();
}

Der Report liegt im Homeverzeichnis genauso wie der Subreport. Mit iReport funktioniert der Report 1a. Kann mir da einer weiterhelfen
 
Du solltest den Subreport über die Parameter in deinen Report "füttern".
Erstell z.b. einen InputStream welchen du in der Parametermap abspeicherst.

In iReports legst du dann einen entsprechenden Parameter an und gibst ihn bei den Eigenschaften deines Subreports unter Subreports(other) als Expression mit dem Datentyp "InputStream" an.

Es gibt hier wirklich viele wege die nach Rom führen.. der hier hat bei mir bist jetzt aber immer funktioniert :)

Ich hoffe ich konnte helfen...

Gruß
Dominik
 
Ich habe es so gemacht wie du gesagt hast. Das eigentliche Problem war aber das man die *.jasper Datei auch noch benötigt wird. diese ist standardmäßig im */iReport verzeichnis gespeichert. Diese muss dann in den Report Ordner kopiert werden. Weiterhin ist darauf zu achten das bei der Pfadangabe des Subreports dieser so angegeben werden muss

Beispiel: Du hast so eine Ordnerstruktur

*/Workspace/Reports
im Report Ordner liegen alle Reports

aufgerufen wird das ja so:

Code:
jrReport = JasperCompileManager.compileReport("Reports/Teilnehmer Bericht.jrxml");

bei der Pfadangabe des Subreports steht ja nun normalerweise nur noch "subreport.jasper" Eigentlich ja auch logisch. Immerhin sind wir ja schon im /Report Ordner. Das ist jedoch falsch. Korrekt muss es:

Code:
/Reports/subreport.jasper
heissen.

Nun kann der Report zwar nicht mehr in der Vorschau angeschaut werden aber wenn es in einem Programm wie oben gezeigt compiliert wird funktioniert es. Es sollte nur nicht vergessen werden die "Reports/subreport.jasper" änderung zu kompilieren (Mit iReport) und die *.Jasper Datei ins /Reports verzeichnis zu kopieren. Weiterhin ist es wichtig die Tools.jar aus der JDK in den Klassenpfad der Java Anwendung einzubinden.

So, ich hoffe ich konnte weiterhelfen. Hoffentlich bleibt so manchen leuten die Probiererei die ich hatte erspart.

Bis die Tage Waldi
 
Zurück