JasperReports字段为null

时间:2014-07-09 10:53:23

标签: java-ee jsf-2 jasper-reports

我正在使用JasperReports& J2EE, 现在我不想使用任何连接或数据源,我只是想将一些值传递给报告并进行打印, 我在报告中插入了一个字段和textField:

<field name="user" class="java.lang.String"/>

<textField>
    <reportElement x="348" y="30" width="100" height="20" uuid="9593564a-6367-4a98-a0c6-19a11ac45977"/>
    <textFieldExpression><![CDATA[$F{user}]]></textFieldExpression>
</textField> 

并且我在java类中使用此代码:

Map parameters = new HashMap();

parameters.put("user", "test");
    try {
        System.out.println();
        JasperPrint jp = JasperFillManager.fillReport(path + "report1.jasper", parameters, new JREmptyDataSource());

        JasperExportManager.exportReportToPdfFile(jp, path + "test1.pdf");

    } catch (JRException e) {
        e.printStackTrace();
    }

但该字段始终设置为null, 因为我没有使用任何连接,我在报告属性中设置了#34;当没有数据&#34;等于&#34;所有部分,没有细节&#34;。

1 个答案:

答案 0 :(得分:0)

首先,关于您的评论,请尝试声明参数user,而不是字段:

<parameter name="user" class="java.lang.String"/>

然后,在$P{user}中使用$F{user}而不是textFieldExpression语法:

<textFieldExpression><![CDATA[$P{user}]]></textFieldExpression>

$F用于字段(从数据源获取的数据)。 $P用于参数(用作报表,查询等的输入)