我有一个按钮。当我打它。它在数据库中创建一个名称为+ billno + date的表。并将所有详细信息(例如产品名称等)插入数据库。
现在我想创建新表时,在该jasper报告中获取该新创建的表并将其显示在jasper报告表中。
为此,我创建了一个参数。
Hashmap param = new Hashmap();
param.put("TABLE" , name+bill+date);
此后,我在jasper报告中创建了一个表并尝试执行此查询。
select * from $P{TABLE}
但是会引发错误。
答案 0 :(得分:1)
您必须使用$P!{}
语法更正查询(注意!
和P
之间的{
字符):
SELECT * FROM $P!{TABLE}
将$P!{TABLE}
替换为参数的文本值(在这种情况下为表名)。
$P{}
语法,这意味着可以使用准备好的语句执行查询。例如:
SELECT * FROM bill WHERE id = $P{ID}
那么准备好的语句如下:
SELECT * FROM bill WHERE id = ?
附带说明:为名称+ Billno +日期的每种组合创建单独的表格似乎有些疯狂。想象一下,有一天您将需要对所有这些记录进行搜索-如何在所有这些表上创建SELECT查询?
最好有一个表(例如bill
),其中id
列为主键,而其他列如name
,billnum
和{{ 1}},并将该ID作为参数传递给Jasper报告。产品可以存储在相关表date
中,并通过bill_item
列将它们与bill
相关。然后,可以在Jasper报告中bill_id
。但是我只是在猜测如何看待您的数据模型。