有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

JavaJasper报告从jasper加载报告

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

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

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


共 (4) 个答案

  1. # 1 楼答案

    你可以用p美元!(带感叹号的参数),可用于条件查询。 使用它,您可以根据特定条件创建动态查询。 有关这方面的指南,请参见here.

  2. # 2 楼答案

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

    MongoDB查询示例:

    <queryString language="MongoDbQuery">
        {'collectionName':'customer'}
    </queryString>`
    
  3. # 3 楼答案

    像这样的

    爪哇

    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>
    
  4. # 4 楼答案

    开门。jasper将文件导入ireport,以便加载。jasper文件并编辑它