我需要使用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等,但它没有帮助 任何人都可以让我知道我在这里犯的错误吗? 任何帮助将不胜感激。
答案 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>