如何从 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);
} 

看看这可能对你有帮助。 可能对你有帮助。