如何从 Pentaho 的图表中显示带有动态参数的报告?
How to show a report with dynamic parameters from a chart on Pentaho?
我的仪表板上有一个饼图,使用 click action
,我设法显示了一个具有一个固定参数的报告。这是我的点击操作的 JS 函数:
function showreport(scene) {
var newWindow;
if(scene.getCategory()=='POS'){
newWindow=window.open("url_report?type_lm=POS", 'REPORT');
}else{
newWindow=window.open("url_report?type_lm=NEG", 'REPORT');
}
}
这个很好用。
但是现在我也想传递一个动态参数(用query component
获取的变量,它存放在result var
(code_lm):
这是我所做的:
function showreport(scene) {
var newWindow;
var code_lm=this.dashboard.getParameterValue('code_lm');
if(scene.getCategory()=='POS'){
newWindow=window.open("url_report?type_lm=POS&code="+code_lm, 'REPORT');
}else{
newWindow=window.open("url_report?type_lm=NEG&code="+code_lm, 'REPORT');
}
}
这个不行,点击图表什么也没有显示。我发现这一行 var code_lm=this.dashboard.getParameterValue('code_lm');
导致了问题。
但是,我对 button component
做同样的事情:
function showreport() {
var code_lm=this.dashboard.getParameterValue('code_lm');
var newWindow = window.open("url_report?code=" + code_lm,'REPORT');
}
它工作得很好所以我想知道为什么 this.dashboard.getParameterValue()
在某些情况下不起作用。
谁能告诉我问题出在哪里?
是的,如果你想从查询组件传递参数值,那么你需要通过在 post fetch of 中编写下面的代码来设置参数值]查询组件.
function fun(code_lm) {
dashboard.setParam('yourParamName',code_lm.resultset);
}
看看这可能对你有帮助。 可能对你有帮助。
我的仪表板上有一个饼图,使用 click action
,我设法显示了一个具有一个固定参数的报告。这是我的点击操作的 JS 函数:
function showreport(scene) {
var newWindow;
if(scene.getCategory()=='POS'){
newWindow=window.open("url_report?type_lm=POS", 'REPORT');
}else{
newWindow=window.open("url_report?type_lm=NEG", 'REPORT');
}
}
这个很好用。
但是现在我也想传递一个动态参数(用query component
获取的变量,它存放在result var
(code_lm):
这是我所做的:
function showreport(scene) {
var newWindow;
var code_lm=this.dashboard.getParameterValue('code_lm');
if(scene.getCategory()=='POS'){
newWindow=window.open("url_report?type_lm=POS&code="+code_lm, 'REPORT');
}else{
newWindow=window.open("url_report?type_lm=NEG&code="+code_lm, 'REPORT');
}
}
这个不行,点击图表什么也没有显示。我发现这一行 var code_lm=this.dashboard.getParameterValue('code_lm');
导致了问题。
但是,我对 button component
做同样的事情:
function showreport() {
var code_lm=this.dashboard.getParameterValue('code_lm');
var newWindow = window.open("url_report?code=" + code_lm,'REPORT');
}
它工作得很好所以我想知道为什么 this.dashboard.getParameterValue()
在某些情况下不起作用。
谁能告诉我问题出在哪里?
是的,如果你想从查询组件传递参数值,那么你需要通过在 post fetch of 中编写下面的代码来设置参数值]查询组件.
function fun(code_lm) {
dashboard.setParam('yourParamName',code_lm.resultset);
}
看看这可能对你有帮助。