本文档的示例代码仅适用于本文档中的示例报表/场景。若实际报表/场景与示例代码无法完全适配(如使用功能不一致,或多个宏代码冲突等),需根据实际需求开发代码。 |
不同用户进入仪表盘,访问同一个页面,通过点击页面上的电子表格数据,跳转到不同的页面。
3.按照需要,在页面的电子表格报表上创建跳转规则,如下:
4.双击打开跳转规则自动生成的客户端宏代码,在跳转规则向导生成的宏代码中增加以下代码,如下图:
function paramToString(v) { return v == null ? null : v.toString(); } function main(spreadsheetReport, ruleName, params, page, pageContext) { if (ruleName != "不同用户跳转不同报表") return; var targetResId = "I4028818a0154503550355a86015451e101930b16"; //增加的内容 var user = registry.get("User"); //获取用户名 if (user == "admin") targetResId = "I4028818a0154503550355a86015451e101930b16"; //如果用户是admin,则跳转到页面1 else if (user = "demo") targetResId = "I4028818a0154503550355a86015451e1491d0b1a"; //如果用户是demo,则跳转到页面2 var newReport = false; //跨页跳转需要先获取参数值。 var paramsInfo = new Array(); //打开新页面 var urlparams = "&browserType=ie&showPath=false"; //@smartbi.openOtherPage:"I4028818a0154503550355a86015451e101930b16" page.openResInCurrentWindow(targetResId, paramsInfo, urlparams); } //创建参数信息 function createParamInfo(name, value, disValue, mergeType) { var paramInfo = new Object(); paramInfo.name = name; paramInfo.value = value + ""; paramInfo.displayValue = disValue + ""; if (mergeType) paramInfo.groupType = mergeType; return paramInfo; } |
关键对象总结