简体   繁体   English

参数在 jasper 报告中没有绑定

[英]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();
    }


And spring file structure is :弹簧文件结构是: 在此处输入图片说明

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 ,例如JRResultSetDataSourceJRBeanCollectionDataSourceJRMapCollectionDataSource 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM