1

我需要使用多选查询来填充几个日期字段。我有一个输入控件“date_id”,它选择所需的日期。它是一个简单的选择语句

select distinct date_id from <table>.

我的 date_id 是DATE类型

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

为此,我还修改了输入控件查询。所以我最终的输入控制查询是

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

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

4

2 回答 2

2

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

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

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

于 2013-07-09T09:48:58.800 回答
0

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

<filterExpression><![CDATA[$P{date_id}.contains($F{date_id})]]></filterExpression>
于 2013-07-09T14:36:14.353 回答