基本上,使用 $ 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 吗?
答案 0 :(得分:0)
解决..我的应用程序参数名称不等于我的报告参数名称。现在很清楚,整个报告SQL查询可以使用$ P动态修改!{...} ..