繁体   English   中英

参数在 jasper 报告中没有绑定

[英]Parameters are not binding in jasper reports

我正在尝试从 jasper 报告生成 pdf。 但是生成了pdf文件但参数没有反映在pdf中。 这是我的代码:

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>



和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();
    }


弹簧文件结构是: 在此处输入图片说明

似乎您错过了一个DataSource ,它是一个存储结构化数据的容器。 Jasper 报告引擎在生成报告时从DataSource检索数据。

Jasper 提供了许多DataSource ,例如JRResultSetDataSourceJRBeanCollectionDataSourceJRMapCollectionDataSource 每个都可以从不同的数据源检索数据以填充报告字段。

在您的情况下,如果您不需要将数据填充到表中,您可以简单地使用JREmptyDataSource

JasperPrint jasperPrint = JasperFillManager.fillReport(resourse.getInputStream(), data, new JREmptyDataSource());

有关数据源的更多详细信息,您可以查看JasperReports - 数据源示例

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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