【问题标题】:Ireports with multiple filters具有多个过滤器的 Ireport
【发布时间】:2016-04-07 19:46:38
【问题描述】:

我正在使用 SQL 查询设计关于 Ireport 的报告,并且正在使用过滤器,基本上我希望能够将输入参数“shift”与报告中的字段进行比较,这样我就可以显示我的按班次报告。

报告的这部分工作正常,我只是使用了过滤表达式$F{Shift}.equals( $P{shift} ),但这仅适用于一个班次,但我也希望能够在同一个报告中查看所有班次。有没有办法做到这一点?

正如@Pu297 所建议的,我可以在我的 SQL 查询中使用 IN 比较,但设置如下:

SELECT * FROM foo WHERE shift IN P!{shift}

我的 shift ireport 参数是 String,我以 "1,2,3" 的方式键入它以显示前 3 个班次

【问题讨论】:

  • 你的意思是你想要类似 $F{Shift} IN ( $P{shift} ) 的东西吗??
  • 是的,但是在我的查询中使用 $P{shift} 不会返回任何内容,让我在帖子中进一步解释。

标签: jasper-reports


【解决方案1】:

您的 SQL 查询

SELECT * FROM foo WHERE shift IN ($P!{shift})

你的输入文本应该是

'1','2','3'

【讨论】:

  • 谢谢,这个解决方案运行良好,但我选择使用 $X{IN, table_field, parameter_name} 变量,我读到该变量是为 IN 语句创建的,我的最终查询如下所示:SELECT * FROM foo WHERE ..conditions.. AND $X{IN, shift, Shift}
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-08-09
  • 2019-12-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-11
相关资源
最近更新 更多