1、首先在电子表格设计器(Microsoft Office Excel)中,创建电子表格报表,源报表和目标报表。
2、在浏览器的“分析展现”节点下,选中电子表格,右键选择 编辑宏 进入报表宏界面。
3、在源报表的报表宏界面新建跳转规则向导。设置向导,让其自动生成服务端模块和客户端模块代码,然后手动修改其生成的“客户端模块”代码,参考如下的示例代码,修改其中的 main 方法。
类型 | 对象 | 事件 |
---|---|---|
ClientSide | spreadsheetReport | onLinkClick |
function paramToString(v) { return v == null ? null : v.toString(); } function main(spreadsheetReport, ruleName, params) { //跳转规则名称 if (ruleName != "根据参数跳转") return; //根据参数名称获取参数值 var value = spreadsheetReport.getParameterValue("产品类别"); var obj; // 判断当前参数值,跳转到不同的报表 if (value == "饮料") { obj = { name: "产品类别", value, value }; jump_role1(spreadsheetReport, obj); } else if (value == "调味品") { obj = { name: "产品类别", value, value }; jump_role2(spreadsheetReport, obj); } else { alert("当前参数值不能跳转到任何报表!"); } }; // 如果当前参数值是饮料,则跳转到报表1 function jump_role1(spreadsheetReport, obj) { var paramsInfo = []; //将参数放入参数数组 paramsInfo.push(obj); //覆盖当前资源 var command = spreadsheetReport.command; command.close(); //@smartbi.openOtherPage:"I8a8af0a60172a0faa0fa26670172a158c142047d" command.execute('OPENWITHNOREFRESH', 'I8a8af0a60172a0faa0fa26670172a158c142047d'); var report = command.spreadsheetReport; if (paramsInfo.length > 0) report.setParamsInfo(paramsInfo); report.doRefresh(); }; // 如果当前参数值是调味品,则跳转到报表2 function jump_role2(spreadsheetReport, obj) { var paramsInfo = []; //将参数放入参数数组 paramsInfo.push(obj); //覆盖当前资源 var command = spreadsheetReport.command; command.close(); //@smartbi.openOtherPage:"I8a8af0a60172a0faa0fa26670172a158c142047d" command.execute('OPENWITHNOREFRESH', 'I8a8af0a60172a0faa0fa26670172a158c142047d'); var report = command.spreadsheetReport; if (paramsInfo.length > 0) report.setParamsInfo(paramsInfo); report.doRefresh(); }; |