Multi Select查询中的问题

时间:2013-07-08 13:54:55

标签: jasper-reports

我需要使用Multi select查询来填充一些日期字段。 我有一个输入控件' date_id'选择所需的日期。它是一个简单的选择语句

select distinct date_id from <table>.

我的date_id s类型为 DATE

我创建了一个参数date_id。 由于我必须使用$X{IN,date_id,$P{date_id}}语法,即$X{IN,<field_name>,<parameter_name>}语法,因此我的参数 date_id 的类型为 java.util.collections

这样做,我也修改了输入控件查询。 所以我的最终输入控件查询是

select distinct CAST(date_id AS CHAR) as date_id  from <table>

但是存在不匹配 错误说,查询中不支持参数类型 我提到了很多SO Links等,但它没有帮助 任何人都可以让我知道我在这里犯的错误吗? 任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:1)

我在$ X语法中添加了对字段名称的强制转换,并从参数中删除了$ P {}语法后,它起作用了,

SELECT * FROM <Your Table> where $X{IN,CAST(date_id AS CHAR),date_id}

希望这可以帮助面临类似问题的人

答案 1 :(得分:0)

另一种解决方法是使用报表中的过滤器表达式过滤未选择的项目,如下所示:

<filterExpression><![CDATA[$P{date_id}.contains($F{date_id})]]></filterExpression>
相关问题