2016-05-25 3 views
0

Ich habe einen Bericht in JasperStudio eingerichtet, der sowohl Berichtstitel als auch Abfrage als Parameter erhalten und dann den Bericht füllen soll.JasperReports API: So definieren Sie den Datenadapter

Mit dem Standardabfragewert wird der Bericht korrekt aus Jasper Studio ausgefüllt. Ich habe einen Datenadapter (DB.xml) definiert, der das korrekte Verhalten über Jaspersoft Studio ermöglicht.

Wenn ich versuche, den Bericht von Java zu füllen, wie etwas mit

JasperFillManager.fillReport(fileIn, parameters, new JREmptyDataSource()); 

Wo Parametern beiden Strings für Titel und Abfrage halten exportierte die pdf die korrekten Titel haben, aber keine Informationen zu den Spalten, die scheint anzuzeigen, dass der fillReport den BD-Adapter nicht kennt.

Muss ich es entlang der anderen Params weitergeben? Sollte ich die Adapter-XML-Datei an einer bestimmten Stelle platzieren?

+0

'Muss ich es entlang der anderen Params weitergeben? Soll ich die Adapter-XML-Datei irgendwo anders platzieren? '- Ist Ihre Frage zur Verwendung der JasperReports-API (Java-Code)? –

+0

@AlexK ja es ist! – GoofKyko

Antwort

0

Wenn Sie den Datenadapter außerhalb von JSS verwenden möchten, müssen Sie die Eigenschaft net.sf.jasperreports.data.adapter im Bericht auf einen Dateisystempfad oder eine Klassenpfadressource festlegen, in der sich der Datenadapter xml befindet .

Und Sie sollten keine Datenquelle übergeben, wenn Sie den Bericht ausfüllen, verwenden Sie die fillReport-Methode, die nur den Bericht und die Parameter als Argument akzeptiert.

+0

Ich erhielt eine Warnung, dass die SQLConnection, die ich übergebe, null ist und der Bericht leer wurde. Die Lösung, die ich gefunden habe, ist, die Verbindung zu erstellen und sie als Datenquelle zu übergeben, dann wird der Bericht korrekt ausgefüllt angezeigt. – GoofKyko