我正在编写一个 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);
然后我将其导出为excel。
如果我直接在 JRXML queryString 标记中对同一查询进行硬编码,则可以正常使用。
感谢阅读!
答案 0 :(得分:3)
是否可以在jasper报告中的jrxml文件中使用queryString标记中的参数?
是的,这是可能的。
尝试在jrxml文件中使用 $P!{mySqlQuery}
表达式而不是 $P{mySqlQuery}
。
您可以阅读详细信息here。