示例:
如下图,默认组为“根组”的用户登入之后,点击跳转进入灵活分析报表1,默认组为“组2”的用户登入之后,点击跳转进入灵活分析报表2
根组用户
组2用户
步骤
- 分别建立跳转前的灵活分析以及跳转后的灵活分析
- 在跳转源灵活分析上建立跳转规则“根据默认组跳转”,跳转到其中一个报表
- 找到对应自动生成的客户端模块代码,“根据默认组跳转_action”,在simpleReport.writeParamsToContext();之后添加如下代码,该代码的内容是获取当前用户的默认组
- 自动生成的客户端模块代码中有设置参数传递并且打开目标报表的代码,如下图
- 添加默认用户组判断,并将自动生成的参数传递及打开目标报表的代码剪切到IF语句中,如下图
- 设置不同默认组用户跳转到不同的报表,需要先建立多个跳转规则,然后将自动生成的传递参数并且打开跳转目标报表的代码复制到前面的“根据默认组跳转_action”中,并且设置判断条件
完整代码如下:
function main(simpleReport, simpleReportContext) { simpleReport.addColumnLinkByName("CategoryID", me); //字段别名:产品目录编号 } var menuItem = { alias: "根据默认组跳转", callback: function(simpleReport, simpleReportContext) { simpleReport.writeParamsToContext(); var userret = util.remoteInvoke("UserService", "getCurrentUser", []); if (userret && userret.result) { var roleRet = util.remoteInvoke("UserService", "getDefaultDepartment", [userret.result.id]); if (roleRet && roleRet.result) { if (roleRet.result.alias == "根组") { var paramsInfo = new Array(); //获取当前单元格所在行的产品目录编号字段的值 var realValue = simpleReport.getCurrentFieldRealValue("产品目录编号"); var dispValue = simpleReport.getCurrentFieldValue("产品目录编号"); var paramInfo = createParamInfo("产品目标编号", realValue, dispValue); paramsInfo.push(paramInfo); //在新窗口打开资源,跳转到目标报表1,需要根据实际情况修改resid simpleReportContext.openURL("openresource.jsp?resid=I402881fa699fabde0149e9aa4a9f003b&showtoolbar=true&refresh=true", [{ name: "paramsInfo", value: lang.toJSONString(paramsInfo) }]); } if (roleRet.result.alias == "组2") { var paramsInfo = new Array(); var realValue = simpleReport.getCurrentFieldRealValue("产品目录名称"); var dispValue = simpleReport.getCurrentFieldValue("产品目录名称"); var paramInfo = createParamInfo("产品目录真实名称", realValue, dispValue); paramsInfo.push(paramInfo); //在新窗口打开资源,跳转到目标报表2,需要根据实际情况修改resid simpleReportContext.openURL("openresource.jsp?resid=I402881fa699fabde0149e9aa914f004c&showtoolbar=true&refresh=true", [{ name: "paramsInfo", value: lang.toJSONString(paramsInfo) }]); } } } } } var me = menuItem; //创建参数信息 function createParamInfo(name, value, disValue) { var paramInfo = new Object(); paramInfo.name = name; paramInfo.value = value; paramInfo.displayValue = disValue; return paramInfo; }
示例资源: