为什么JasperReports忽略$!P SQL语法?

时间:2019-07-11 13:52:05

标签: sql parameters jasper-reports

我正在尝试使用硬过滤器制作报告,其中任何参数都可以显示为-

  • “不为空”
  • “(不)喜欢”
  • “!=”
  • “ =”
  • 以(例如“%_”)开头 甚至没有过滤器

因此,我试图在报告中插入整个WHERE子句(第一行除外)。 由于某些原因, Jasper 会忽略文件管理器,但我不明白为什么。

如果我尝试在开头放置多个或是否存在任何未命名的别名,这会警告我,所以我认为它正在以某种方式读取。

将参数放在方括号中无济于事。 示例:

  

它不会按第一个条件进行过滤-

'''
SELECT * FROM table t
WHERE t.status_id=1
and $!P{hello};

$!P{hello} is inserted as "t.land like'%12' and status='REC2' and objid in (1,2,7,9,12)"
'''
  

我希望它以以下方式执行它:

'''
SELECT * FROM table t
WHERE t.status_id=1
and t.land like'%12' and status='REC2' and objid in (1,2,7,9,12)
'''

但是贾斯珀(Jasper)忽略了其余所有内容。为什么忽略该参数?

谢谢。

1 个答案:

答案 0 :(得分:0)

好吧,首先,我在生产基地上测试了我的查询,它运行良好,但是测试基地中的数据不正确,因此看起来好像不起作用。 在相同的基础上测试您的查询)