我有一个使用如下查询的BIRT报告。
select
Dealer,
Name
from customerA where id = ?
union all
select
Code as Dealer,
last_name as Name
from customerB where id = ?
union all
select
Num as Dealer,
owner as Name
from customerC where id = ?
我在报告中有一个输入文本框和一个刷新按钮,用于重新加载报告。 我的报告也有一个名为'CUST_ID'的参数,我把它绑定在数据集中作为param_1,param_2和param_3替换为'?'执行时标记。
如果我在参数弹出屏幕上输入参数报告工作正常,但我需要在文本框中输入id,然后我按相应的刷新链接重新加载报告。
如何添加输入文本值(我知道我可以从脚本中获取)并将其设置为报告参数“CUST_ID”?
非常感谢您的帮助。
提前谢谢。
答案 0 :(得分:3)
我能够通过在BIRT中使用脚本来解决这个问题。下面我列出了我遵循的步骤。
1.添加一个脚本,在页面加载时启动请求参数。
报告网址我可以在普通的javascript函数中使用var link=this;
进行访问。
2.将我的参数添加到上面james提到的请求的末尾。谢谢詹姆斯。
3.替换新创建的网址link.href=url;
这将使用我在输入框中输入的值刷新报告。
4.在数据集中,我将查询修改为'Select name from customerA'
,没有任何where子句。
5.dataset beforeOpen
脚本我添加了这些行,并相应地过滤了记录。
this.queryText += "where id ="+reportContext.getParameterValue("cust_id");
reportContext.setParameterValue("debug", this.queryText);