原创文章,转载请注明出处: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代码
..