pentaho cde 传递参数

原创文章,转载请注明出处:http://qq85609655.iteye.com/blog/2216960

 

新到一家公司,pentaho为bi平台

 

需要做产品可行性原型:

表格或者其它图表激发事件,下钻到另一个页面展现(传递参数).

 

这个需求,以前没有遇到过,以前都是在一个页面动态交互就够了。

 

花了几天时间,搞定后,做个笔记:

 

这里,table为里面的一条数据,进行下钻:

preExecution 方法如下

function f() {
      this.setAddInOptions("colType","hyperlink", function(state) {
            if(state.colIdx ===1) {
                 var wl = Dashboards.getParameterValue("param_wl");
                 var km = state.tableData[state.rowIdx][0];
                 var link = ('http://localhost:8080/pentaho/api/repos/:public:DataAnalysis:ScoreAnalysis:xkfxxz.wcdf/generatedContent?km=' + km + '&wl=' + wl);
                 var label = state.value;
                 state.value = link + "," + label;
                 return {
                       urlReference: 2,
                       pattern: '((.*)([,])(.*))',
                       labelReference: 4
                 }
            }
      });
} 

另外一个界面接收参数:

选择textComponent, preExecution 方法如下:

function f() {
      Dashboards.log("getwl");
      val wl = Dashboards.getParameterValue("param_wl");
      if(typeof wl === "undefined") {
            wl = "";
      }
      alert(wl);
      if(wl.length === 0) {
            wl = Dashboards.getQueryParameter("wl");
            // alert("wl:" + wl);
            Dashboards.fireChange("param_wl", wl);
      }

      Dashboards.log("getkm");
      val km = Dashboards.getParameterValue("param_km");
      if(typeof km === "undefined") {
            km = "";
      }
      alert(km);
      if(km.length === 0) {
            km = Dashboards.getQueryParameter("km");
            // alert("km:" + km);
            Dashboards.fireChange("param_km", km);
      }

      var yxl = $("input[name=yxl]").val();
      // alert("yxl:" + yxl);
      Dashboards.fireChange("param_yxl", yxl);
}

 以上为关键js代码

..

你可能感兴趣的:(pentaho)