[英]Parameters are not binding in jasper reports
I am trying to generate pdf from jasper reports.我正在尝试从 jasper 报告生成 pdf。 But pdf file is generated but parameters are not reflecting in pdf.
但是生成了pdf文件但参数没有反映在pdf中。 Here is my code:
这是我的代码:
firstPage.jrxml file code: firstPage.jrxml 文件代码:
<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="firstPage" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="9e04b773-6665-446a-837f-863d3d7ce312">
<property name="ireport.zoom" value="1.0"/>
<property name="ireport.x" value="0"/>
<property name="ireport.y" value="11"/>
<parameter name="data" class="java.lang.String"/>
<background>
<band splitType="Stretch"/>
</background>
<title>
<band height="79" splitType="Stretch">
<textField>
<reportElement x="209" y="27" width="100" height="20" uuid="0fde4029-d805-448f-a443-a436a41865d1"/>
<textFieldExpression><![CDATA[$P{data}]]></textFieldExpression>
</textField>
</band>
</title>
<pageHeader>
<band height="35" splitType="Stretch"/>
</pageHeader>
<columnHeader>
<band height="61" splitType="Stretch"/>
</columnHeader>
<detail>
<band height="190" splitType="Stretch"/>
</detail>
<columnFooter>
<band height="78" splitType="Stretch"/>
</columnFooter>
<pageFooter>
<band height="54" splitType="Stretch"/>
</pageFooter>
<summary>
<band height="42" splitType="Stretch"/>
</summary>
And Spring java code:和Spring Java代码:
Resource resourse = new ClassPathResource("/jasper/firstPage.jasper");
Resource imgResource = new ClassPathResource("/img/Big_India.jpg");
Map<String, Object> data = new HashMap<String, Object>();
data.put("data", "Rks");
try {
data.put("imagePath", imgResource.getURL().toString());
JasperPrint jasperPrint = JasperFillManager.fillReport(resourse.getInputStream(), data);
JRExporter exporter = new JRPdfExporter();
exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
exporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME, "/home/rakesh/Desktop/ss.pdf");
exporter.exportReport();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Seems you miss a DataSource
which is a container storing structured data.似乎您错过了一个
DataSource
,它是一个存储结构化数据的容器。 Jasper Report engine retrieve data from a DataSource
while generating the report. Jasper 报告引擎在生成报告时从
DataSource
检索数据。
There are a number of DataSource
provided by Jasper such as JRResultSetDataSource
, JRBeanCollectionDataSource
and JRMapCollectionDataSource
. Jasper 提供了许多
DataSource
,例如JRResultSetDataSource
、 JRBeanCollectionDataSource
和JRMapCollectionDataSource
。 Each can retrieve data from different data source in order to fill the report fields.每个都可以从不同的数据源检索数据以填充报告字段。
In your case, if your do not need to fill data into tables, you can simply use a JREmptyDataSource
:在您的情况下,如果您不需要将数据填充到表中,您可以简单地使用
JREmptyDataSource
:
JasperPrint jasperPrint = JasperFillManager.fillReport(resourse.getInputStream(), data, new JREmptyDataSource());
For more details about data source, you can have a look to JasperReports - Data Source Sample有关数据源的更多详细信息,您可以查看JasperReports - 数据源示例
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.