JasperReports mit Null Pointer

TDO88

Bekanntes Mitglied
Hallo Zusammen,

ich möchte mir mit JasperReports einen Prüfbericht als PDF, meiner Messung erstellen.
Meine Gesamtmessung kann aber aus mehreren verschiedenen Einzelmessungen bestehen. Dann wird die erste Seite des Protokolls eine Zusammenfassung und die anderen Seiten dann die detaillierten Messergebnisse.
Während der Messung werden die Ergebnisse in separate Einzeldateien geschrieben, welche dann für den Prüfbericht ausgewertet und zusammengefasst werden.
Ich kann somit bis zu 9 Einzeldateien haben, die für den Prüfbericht relevant sind.
Ich hab also ein File Array mit 9 Elementen. Die Elemente sind entweder null, wenn die Datei zu dieser Messung nicht existiert oder beinhalten die Datei.
Wenn ich den Report jetzt mit concatenate zusammen führen möchte, sieht das ungefähr so aus:
Java:
concatenatedReport()
        .setContinuousPageNumbering(true)
        .concatenate(Report0(flags, ReportFiles[0], ReportFiles[1], ReportFiles[4], ReportFiles[5]),
                        ReportXlin(ReportFiles[0]), ReportYlin(ReportFiles[1]), ReportZlin(ReportFiles[2]),
                        ReportXstraight(ReportFiles[4]), ReportYstraight(ReportFiles[5]),
                        ReportEncoder(ReportFiles[8]))
         .toPdf(Exporters.pdfExporter(pdfname));

Report0 ist die Zusammenfassung und der Rest die Detailmessungen. Leider wirft mir der Jasper Report Builder einen Fehler, da der Report Builder keine null, als Argument akzeptiert.
Hat da jemand eine Idee, wie man das Problem lösen kann ohne eine riesige if, else if usw. Struktur anzuwenden?

Ich hoffe das war halbwegs verständlich

Gruß
TDO
 
Ohne mich jetzt in dem Verwendeten Jasper Methoden und Objekten auszukennen, eine Möglichkeit wäre die Objekte in einen Array zu laden und damit eine For-Schleife zu bedienen, sodass du die Abfrage nur einmal machen musst:

Java:
JasperReportObject jp = *xyz*;
jp.setContinuousPageNumbering(true);

for (AnotherJasperReportObject reportPage : new AnotherJasperReportObject[]{Report0(flags, ReportFiles[0], ReportFiles[1], ReportFiles[4], ReportFiles[5]),
                        ReportXlin(ReportFiles[0]), ReportYlin(ReportFiles[1]), ReportZlin(ReportFiles[2]),
                        ReportXstraight(ReportFiles[4]), ReportYstraight(ReportFiles[5]),
                        ReportEncoder(ReportFiles[8])} {
    if (reportPage != null)
        jp.concatenate(reportPage);
}
       
jp.toPdf(Exporters.pdfExporter(pdfname));
 

Zurück
Oben