设置方法
设置方法
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();
}; |
关键对象总结
- 跳转到目标报表:function jump_role2(spreadsheetReport, ruleName, params)。