报告中的多个SQL查询

时间:2011-05-10 16:04:02

标签: jasper-reports ireport

要求是生成连接到单个数据库的单个报告:

  1. Query1是一个按查询分组,并具有基于它的条形图和饼图。
  2. Query2是一个创建表的简单查询。
  3. 这两个查询都需要基于WHERE子句的结果,该子句是动态提供的。

    有人能指出一些如何实现这个目标的例子吗?

    谢谢。

1 个答案:

答案 0 :(得分:3)

您可以告诉JasperReports使用参数来使用$P!{PARAMETER_NAME}语法定义部分查询。这告诉JasperReports使用PARAMETER_NAME的文字值作为查询的一部分。然后你可以这样做:

  1. 在报告中创建名为WHERE_CLAUSE的参数。
  2. WHERE_CLAUSE设为默认值1=1
  3. 请考虑以下SQL语句:
    SELECT * FROM table WHERE $P!{WHERE_CLAUSE}
  4. $P!表达式将文字SQL语句更改为:

    SELECT * FROM table WHERE 1=1
    

    这是一个有效的查询。请注意$P{}$P!{}之间的区别 - 感叹号(!)非常重要。

    然后,您可以动态提供SQL条件。