Springを使用してJasper ReportsでPDFレポートを生成しようとしています。しかし、レポートは常に空です。私は多くを検索し、問題を見つけることができませんでした。バイト[] pdfReportをOutputStreamに書き込もうとしましたが、結果は同じですが、レポートは常に空です。JasperはSpring ModelAndViewを使用して空のPDFレポートの問題を報告します
私は2つのパラメータがtestNameであり、そのうちの1つがグラフです。どちらもpdfレポートで表示できません。
ありがとうございました。
ここではレポートを生成するコードを示します。
//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;
そしてここjrxmlファイルです
<?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>
返信いただきありがとうございます。私は不要なコードを削除しましたが、結果は同じですが、pdfは空です。私は、レポートデータキーがリソースバンドルで宣言されている必要があることを知りません。私はiReportsでjrxmlファイルを生成し、それをMavenでコンパイルして使用します。レポートデータキーについて詳しく教えてください。あなたのチュートリアルは非常に役立ちます、私はそれらを読み続けるでしょう。 – jiraiya
ようこそ。あなたは新しいコードとリソースバンドルを宣言する方法をここに投稿できますか? iReportsからJRXMLファイルを生成するときは、手動で何かを編集する必要があります。 – chris
JasperReportsMultiFormatViewを使用してチュートリアルを追加しました。http://krams915.blogspot.com/2010/12/spring-mvc-3-jasper- how-to-use.html – chris