Java jasper从jasper报告加载报告

Java jasper从jasper报告加载报告,java,jasper-reports,Java,Jasper Reports,我正在从.jasper文件加载jasper报告文件,以提高性能,如下所示 JasperReport rpt = (JasperReport)JRLoader.loadObjectFromFile(location); 但我现在有一个要求,即动态生成的查询必须设置为.jasper(编译)文件。有没有办法做到这一点?这是一种针对JRXML文件的黑客攻击方法。JRXML文件包含您的查询。您可以在此处编写Java代码或任何其他代码来替换/写下您的查询: MongoDB查询示例: <querySt

我正在从.jasper文件加载jasper报告文件,以提高性能,如下所示

JasperReport rpt = (JasperReport)JRLoader.loadObjectFromFile(location);

但我现在有一个要求,即动态生成的查询必须设置为.jasper(编译)文件。有没有办法做到这一点?

这是一种针对JRXML文件的黑客攻击方法。JRXML文件包含您的查询。您可以在此处编写Java代码或任何其他代码来替换/写下您的查询:

MongoDB查询示例:

<queryString language="MongoDbQuery">
    {'collectionName':'customer'}
</queryString>`

{'collectionName':'customer'}
`
像这样的东西

爪哇

jrxml


您可以使用$p!(带感叹号的参数),可用于条件查询。 使用它,您可以根据特定条件创建动态查询。
您可以在ireport中打开.jasper文件,这样您就可以加载并编辑.jasper文件。

与论坛网站不同,我们不使用“谢谢”或“感谢任何帮助”或签名。顺便说一句,这是“提前感谢”,而不是“提前感谢”。
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);
<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>