如何在SQL查询中添加参数?

时间:2019-03-19 13:40:57

标签: birt maximo

除了在SQL查询中来自Maximo的参数外,我还要添加一个动态参数。

类似的东西:

select * 
from workorder a 
where params["where"] or a.parent = :Param

params["where"]和wonum ='1234'和:Param = '1234'

Birt是否有可能获得wonum值并将其也放入:Param

或者也许是另一种方式?

谢谢

3 个答案:

答案 0 :(得分:0)

open就是这样(查询更加复杂,所以我简化了它):

maximoDataSet = MXReportDataSetProvider.create(this.getDataSource().getName(), this.getName());
maximoDataSet.open();

var sqlText = new String();
sqlText = "select column1, column2 as woParent, etc... from workorder where  " + params["where"] + " or woParent=:param";

maximoDataSet.setQuery(sqlText);

beforeopen就是这样(只是为了查看查询):

importPackage( Packages.java.io );
out = new PrintWriter( new FileWriter( "c:/birteaump.log", true ) );
out.println( "\nMy Query: " + this.queryText);
out.close();

我有一些代码可以操作:param,将其替换为wonum,但是this.queryText为null。 我是新手,可以举报,也许我必须换个思路来解决自己的问题。

谢谢

答案 1 :(得分:0)

我使用了Birt 3.7.1。我在视频中看到,我们可以在数据集的对话框中添加查询。但是在我的报告中,当我使用“新数据集”按钮时,我只有“脚本数据集”。

是否有可能我的查询在“ beforeopen”中为null与之有关?

如果我创建另一种数据源,我是否可以访问另一种数据集?

谢谢

答案 2 :(得分:0)

好的,我解决了我的问题。 我创建了JDBC数据源,并且可以访问一种新的数据集。 我可以将查询放入此数据集中,并且可以访问“ beforeopen”,并且查询不为空。

谢谢