示例说明
注:此示例仅供参考!实际应用中须根据具体需求稍作调整!
我们对电子表格报表设置跳转规则时,有时会遇到如下需求:要求根据源报表谋参数的参数值不同,跳转到不同的目标报表。或者是根据其他判断条件,跳转到不同的目标报表,类似上述需求,可以参照如下方法设置。
设置方法
1、首先在电子表格设计器(Microsoft Office Excel)中,创建电子表格报表,源报表和目标报表。
2、在浏览器的资源定制节点下,选中电子表格,右键选择 编辑宏 进入报表宏界面。
3、在源报表的报表宏界面新建跳转规则向导。设置向导,让其自动生成服务端模块和客户端模块代码,然后手动修改其生成的“客户端模块”代码,参考如下的示例代码,修改其中的 main 方法。
宏类型
类型 | 对象 | 事件 |
---|---|---|
ClientSide | spreadsheetReport | onLinkClick |
宏代码
代码块 | ||||
---|---|---|---|---|
| ||||
function paramToString(v) { |
...
return v == null ? null : v.toString(); |
...
} |
...
function main(spreadsheetReport, ruleName, params) { |
...
debugger; |
...
if (ruleName != "根据参数跳转") return; |
...
var value = spreadsheetReport.getParameterValue("产品大类名称"); |
...
// |
...
判断当前参数值,跳转到不同的报表 if (value == "饮料") |
...
{ jump_role1(spreadsheetReport, ruleName, params); |
...
} else if (value == "调味品"){ |
...
jump_role2(spreadsheetReport, ruleName, params); |
...
} else { alert("当前参数值不能跳转到任何报表!"); |
...
} }; // 如果当前参数值是饮料,则跳转到报表1 function jump_role1(spreadsheetReport, ruleName, params) { |
...
var paramsInfo = []; |
...
// |
...
paramsInfo.push({ name:"产品名称",value:paramToString(params[0]),displayValue:paramToString(params[0])}); |
...
//@smartbi.openOtherPage:"I402881eb0c9787c2014f8c9fb57300a5" |
...
//新窗口打开 |
...
//openURL("openresource.jsp?resid=I40288253015803c503c590e5015803fc00350218&showtoolbar=true&refresh=true", [{name:"paramsInfo",value: lang.toJSONString(paramsInfo)}]) |
...
//覆盖当前资源 |
...
var command = spreadsheetReport.command; |
...
command.close(); |
...
//@smartbi.openOtherPage:"I40288253015803c503c590e5015804933a850628" |
...
command.execute('OPENWITHNOREFRESH', 'I4028b881015ecb42cb42853d015ecbb0ed820042'); |
...
var report = command.spreadsheetReport; |
...
if (paramsInfo.length > 0) report.setParamsInfo(paramsInfo); |
...
report.doRefresh(); |
...
}; |
...
// 如果当前参数值是调味品,则跳转到报表2 |
...
function jump_role2(spreadsheetReport, ruleName, params) { |
...
var paramsInfo = []; |
...
//paramsInfo.push({ name:"产品大类名称",value:paramToString(params[0]),displayValue:paramToString(params[0])}); |
...
//@smartbi.openOtherPage:"I402881eb0c9787c2014f8ca0925c00e7" |
...
//openURL("openresource.jsp?resid=I4028b881015fe2dbe2db21df015fe2f7c6c7019c&showtoolbar=true&refresh=true", [{name:"paramsInfo",value: lang.toJSONString(paramsInfo)}]) |
...
//覆盖当前资源 |
...
var command = spreadsheetReport.command; |
...
command.close(); |
...
//@smartbi.openOtherPage:"I4028b881015fe2dbe2db21df015fe36107450452" |
...
command.execute('OPENWITHNOREFRESH', 'I4028b881015fe2dbe2db21df015fe36107450452'); |
...
var report = command.spreadsheetReport; |
...
if (paramsInfo.length > 0) report.setParamsInfo(paramsInfo); |
...
report.doRefresh(); |
...
}; |
关键对象总结
- 跳转到目标报表:function jump_role2(spreadsheetReport, ruleName, params)。