Jasper报告UNION语句的动态参数

时间:2014-07-08 07:42:40

标签: java sql jasper-reports union-all

基本上,使用 $ P!{param} 正在通过 iReport Designer 5.6.0 工作。 但是在我使用 Java 应用程序中的报告之后,会发生错误。

下面是报告中查询的内容:

SELECT t1.column1, 
t2.column2,
t1.column3
$P!{selectParam}
FROM table1 t1
INNER JOIN table2 t2
    ON t1.key = t2.key
$P!{leftJoinParam}
WHERE 
...
GROUP BY ...
ORDER BY ...

其中

selectParam = " ,t3.column1, t3.column2, t3.column3 " <String>

leftJoinParam = " LEFT JOIN ( 
    SELECT key, tmp1, tmp2, tmp3 FROM DUAL
    UNION ALL
    SELECT ..., ..., ..., ... FROM DUAL
    UNION ALL
    ...
) t3  ON t3.key = t1.key " <String>

leftJoinParam 的值由Java应用程序传递到报告,其中 SELECT ... UNION ALL 语句的选择计数可能会有所不同,具体取决于所需的数据报告。

令人困惑的是,报告在 iReport Designer 中单独工作,给出了一些具有所需输出的虚拟参数数据,但在 Java 应用程序中无效。

以下是我的java应用程序中的错误:

java.sql.SQLSyntaxErrorException: ORA-00923: FROM keyword not found where expected

还有其他方法可以动态使用 SELECT ... UNION ALL 吗?

1 个答案:

答案 0 :(得分:0)

解决..我的应用程序参数名称不等于我的报告参数名称。现在很清楚,整个报告SQL查询可以使用$ P动态修改!{...} ..