我正在从.jasper文件加载jasper报告文件,以提高性能,如下所示。
JasperReport rpt = (JasperReport)JRLoader.loadObjectFromFile(location);
但我现在有一个要求,即动态形成的查询必须设置为.jasper(已编译)文件。有没有办法做同样的事情?
答案 0 :(得分:1)
只需将.jasper文件打开到ireport,即可加载.jasper文件并进行编辑。
答案 1 :(得分:0)
这是JRXML文件的hack方法。 JRXML文件包含您的查询。您可以在此处编写Java代码或任何其他代码来替换/写下您的查询:
MongoDB查询示例:
<queryString language="MongoDbQuery">
{'collectionName':'customer'}
</queryString>
答案 2 :(得分:0)
这样的东西?
爪哇
JasperReport rpt = (JasperReport)JRLoader.loadObject(Your .jasper file path);
Map paramMap = new HashMap();
paramMap.put("p_sql", "select * from baztable where foo='bar' and fuga='hoge' order by username");
// pass the dynamic query to .jasper file.
JasperPrint print = JasperFillManager.fillReport(rpt, paramMap, connection);
JRXML
<parameter name="p_sql" class="java.lang.String" isForPrompting="false">
<defaultValueExpression><![CDATA["select * from baztable order by username"]]></defaultValueExpression>
</parameter>
<queryString>
<![CDATA[$P!{p_sql}]]>
</queryString>
答案 3 :(得分:0)
你可以使用$ P! (带感叹号的参数),可用于条件查询。 使用此功能,您可以根据特定条件制作动态查询。 可以找到相同的指南here.