是否可以在JasperReports的jrxml文件中使用queryString标记中的参数?

时间:2012-01-16 06:39:19

标签: java jasper-reports

我正在编写一个 JasperReports 程序,我希望将查询外部化到属性文件中。

我在Java程序中将查询作为字符串注入。

jrxml 文件中,我有以下声明:

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

<queryString> 
    <![CDATA[$P{mySqlQuery}]]>
</queryString>

Java程序具有以下内容:

hashmap.put("mySqlQuery", this.mySqlQuery);

JasperReport jasperReportMyClass = JasperCompileManager.compileReport(this.reportMyClass);
JasperPrint jasperPrintMyClass = JasperFillManager.fillReport(jasperReportMyClass, hashmap, con);
jprintList.add(jasperPrintMyClass);

然后我将其导出为ex​​cel。

如果我直接在 JRXML queryString 标记中对同一查询进行硬编码,则可以正常使用。

感谢阅读!

1 个答案:

答案 0 :(得分:3)

  

是否可以在jasper报告中的jrxml文件中使用queryString标记中的参数?

是的,这是可能的。

尝试在jrxml文件中使用 $P!{mySqlQuery} 表达式而不是 $P{mySqlQuery}

您可以阅读详细信息here