我正在使用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;。
答案 0 :(得分:0)
首先,关于您的评论,请尝试声明参数user
,而不是字段:
<parameter name="user" class="java.lang.String"/>
然后,在$P{user}
中使用$F{user}
而不是textFieldExpression
语法:
<textFieldExpression><![CDATA[$P{user}]]></textFieldExpression>
$F
用于字段(从数据源获取的数据)。 $P
用于参数(用作报表,查询等的输入)