Ich bin neu zu JasperReports
und weiß nicht, wie man Jaspis-Datei von Servlet aufruft. Mein Bericht enthält das Tortendiagramm.JasperReports: Aufruf von Bericht von Servlet
6
A
Antwort
1
Hier ist ein Dummy-Bericht, der in einer Servlet-Datei erstellt wurde.
Es ist das gleiche wie in der normalen Java-Klasse.
Stellen Sie sicher, dass Sie die Importe für Ihre Jaspis-Berichtklassen am Anfang der Datei haben.
Im folgenden Beispiel wird ein Bericht aus einer XML-Datenquelle erstellt.
public class JasperServlet extends HttpServlet {
public void doGet(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException {
try {
String reportFile = "myJasperReport.jrxml";
File outputFile = new File("Report.pdf");
HashMap hm = new HashMap();
DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory
.newInstance();
DocumentBuilder documentBuilder = documentBuilderFactory
.newDocumentBuilder();
Document document = documentBuilder.parse(new File("myXml.xml"));
// Compile the report
JasperReport report = JasperCompileManager
.compileReport(reportFile);
JRXmlDataSource xml = new JRXmlDataSource(document, "/xml/root");
// Fill the report
JasperPrint print = JasperFillManager.fillReport(report, hm, xml);
// Create an Exporter
JRExporter exporter = new JRPdfExporter();
exporter.setParameter(JRExporterParameter.OUTPUT_FILE, outputFile);
exporter.setParameter(JRExporterParameter.JASPER_PRINT, print);
// Export the file
exporter.exportReport();
} catch (Exception e) {
e.printStackTrace();
}
}
}
5
Sie können die Jasper-Datei vorbereiten und an den Client streamen.
bytes[] byteStream = JasperRunManager.runReportToPdf("myJasperReport.jasper",paramMap,databaseConn);
OutputStream outStream = servletResponse.getOutputStream();
response.setHeader("Content-Disposition","inline, filename=myReport.pdf");
response.setContentType("application/pdf");
response.setContentLength(byteStream.length);
outStream.write(bytes,0,bytes.length);
3
Ein kompletter Weg, dies aus dem Servlet zu tun wäre:
public void myServletMethod(HttpServletRequest request, HttpServletResponse response) throws IOException{
JasperReport jasperReport = null;
JasperDesign jasperDesign = null;
Map parameters = new HashMap();
String path = getServletContext().getRealPath("/WEB-INF/");
jasperDesign = JRXmlLoader.load(path+"/relative/path/to/MyReport.jrxml");
jasperReport = JasperCompileManager.compileReport(jasperDesign);
byte[] byteStream = JasperRunManager.runReportToPdf(jasperReport, parameters, **new DataSourceOfYourPreference**);
OutputStream outStream = response.getOutputStream();
response.setHeader("Content-Disposition","inline, filename=myReport.pdf");
response.setContentType("application/pdf");
response.setContentLength(byteStream.length);
outStream.write(byteStream,0,byteStream.length);
}
Verwandte Themen
- 1. Aufruf von Servlet aus HTML
- 2. Wie Spalte in Excel-Bericht ausblenden von JasperReports ausblenden?
- 3. Hinzufügen von Tabellenrahmen in jasperreports
- 4. JasperReports mehrseitiger Bericht mit anderem Inhalt
- 5. generieren pdf-Datei von Jaspis-Bericht mit Servlet Java-Code
- 6. Aufruf der Servlet-Methode
- 7. Anruf Httpclient von Servlet
- 8. JasperReports: So rufen Sie den Bericht in JSP Seite
- 9. AJAX-Aufruf von Servlet empfangen, aber keine Antwort gegeben
- 10. Jsp Aufruf von Servlet nach Antwort nicht funktioniert
- 11. Aufruf Drillthrough- Bericht in rdlc
- 12. JasperReports Servlets Berichte ausgeben
- 13. Aufruf Servlet von GWT mit Post-Daten und Download-Datei vom Servlet generiert
- 14. Aufruf Servlet von Servlet und JSP (wo Form) innerhalb einer Anwendung
- 15. Wie ändere ich das von JasperReports verwendete Gebietsschema?
- 16. richtig print von Servlet Ausnahme
- 17. Stretch-Elemente von Überlauf in jasperreports
- 18. Aufruf Javascript-Funktion in Servlet, nach Servlet-Antwort
- 19. JasperReports JRBeanCollectionDataSource immer noch verwirrt
- 20. FilterExpression in JasperReports mit Hilfe von Java-Code hinzufügen
- 21. Aufruf eines Java-Servlet aus Javascript
- 22. JasperReports Speicherleck
- 23. zwischengespeicherte Bilder von Servlet
- 24. Senden json von Servlet
- 25. Bericht von Rechnungsvorlage
- 26. Servlet-Aufruf fehlgeschlagen. Verwenden der Federstütze
- 27. JasperReports API: So definieren Sie den Datenadapter
- 28. IOException beim Aufruf createNewGSFile() in Servlet
- 29. direkt eingebetteten Unterbericht in JasperReports
- 30. return arraylist von Objekten zurück zu einem Ajax-Aufruf von Servlet
Leistung durch Füllen die '.jasper' Datei verbessert werden kann stattdessen bei jeder Anfrage den Bericht zusammenzustellen. –