Jasper Reports leere PDF-report problem, mit Spring ModelAndView
Ich versuche zu generieren, PDF-Bericht mit Jasper Reports mit Spring. Aber melden ist immer leer. Ich suchte eine Menge und konnte nicht finden, problem. Ich habe versucht zu schreiben byte[] pdfReport zu Ausgabestrom aber das Ergebnis ist dasselbe, Bericht immer leer.
Habe ich 2 Parameter o Sie ist testName und einer von Ihnen ist der chart. Beide können nicht angezeigt im pdf-Bericht.
Vielen Dank für Eure Hilfe,
Hier ist der code, der generiert Bericht.
//My class extends MultiActionController
DefaultPieDataset dataset = new DefaultPieDataset();
dataset.setValue(String.format("%s, %s", "pie1", "pie1"),20);
dataset.setValue(String.format("%s, %s", "pie2", "pie2"),80);
JFreeChart chart = ChartFactory.createPieChart("testPie", dataset, true, true, false);
Map model = new HashMap();
model.put("chart", chart.createBufferedImage(200, 200));
model.put("testName", "test report");
model.put("format", "pdf");
AbstractJasperReportsView view = new JasperReportsMultiFormatView();
view.setUrl("/WEB-INF/classes/reports/"+"test1"+".jasper");
view.setApplicationContext(getApplicationContext());
view.setContentType("application/pdf");
Properties header = new Properties();
view.setHeaders(header);
ModelAndView mv = new ModelAndView(view, model);
JasperReport report = (JasperReport) JRLoader.loadObject(getServletContext().getResourceAsStream("/WEB-INF/classes/reports/"+"test1"+".jasper"));
JasperPrint prt = JasperFillManager.fillReport(report, model);
byte[] pdfReport = JasperExportManager.exportReportToPdf(prt);
return mv;
Und hier ist jrxml-Datei
<?xml version="1.0" encoding="UTF-8"?>
<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="test1" language="groovy" pageWidth="700" pageHeight="842" columnWidth="660" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20">
<property name="ireport.zoom" value="1.0"/>
<property name="ireport.x" value="0"/>
<property name="ireport.y" value="2"/>
<parameter name="testName" class="java.lang.String"/>
<parameter name="chart" class="java.awt.Image" isForPrompting="false"/>
<background>
<band splitType="Stretch"/>
</background>
<title>
<band height="48" splitType="Stretch"/>
</title>
<pageHeader>
<band height="35" splitType="Stretch"/>
</pageHeader>
<columnHeader>
<band height="14" splitType="Stretch"/>
</columnHeader>
<detail>
<band height="229" splitType="Stretch">
<image>
<reportElement x="162" y="13" width="200" height="200"/>
<imageExpression class="java.awt.Image"><![CDATA[$P{chart}]]></imageExpression>
</image>
<textField>
<reportElement x="37" y="61" width="100" height="20"/>
<textElement/>
<textFieldExpression class="java.lang.String"><![CDATA[$P{testName}]]></textFieldExpression>
</textField>
</band>
</detail>
<columnFooter>
<band height="112" splitType="Stretch"/>
</columnFooter>
<pageFooter>
<band height="76" splitType="Stretch"/>
</pageFooter>
<summary>
<band height="42" splitType="Stretch"/>
</summary>
</jasperReport>
Du musst angemeldet sein, um einen Kommentar abzugeben.
Warum tust du das folgende?
Mit JasperReportsMultiFormatView() bereits kombiniert das Befüllen und exportieren des Berichts. Keine Notwendigkeit, für die folgenden:
Müssen Sie deklarieren Sie die JRXML-Datei und Bericht-Daten-key in einen Ressource-bundle.
Ich schlage vor, Sie Lesen diese Anleitung, die ich schrieb für Spring 3 MVC - Jasper-Integration Tutorial:
http://krams915.blogspot.com/2010/12/spring-3-mvc-jasper-integration.html
Ändern Sie einfach die Ansichten der JasperReportsMultiFormatView() statt.
Überprüfen Sie die Tutorial-Abschnitt für mehr. Wenn ich Zeit habe, später werde ich machen ein tutorial mit JasperReportsMultiFormatView(). Wenn nicht, vielleicht morgen. Lassen Sie mich wissen, falls dir das hilft.
Es ist eine Eigenschaft, die in jasper report namens "whenNoDataType'. Haben Sie versucht, die Einstellung, die zu
whenNoDataType="AllSectionsNoDetail"
Auch die Sprache des Berichts ist gegeben als 'groovy'. Warum?