页面树结构

版本比较

标识

  • 该行被添加。
  • 该行被删除。
  • 格式已经改变。


注意
title温馨提示

本文档的示例代码仅适用于本文档中的示例报表/场景。若实际报表/场景与示例代码无法完全适配(如使用功能不一致,或多个宏代码冲突等),需根据实际需求开发代码。


目录


示例说明

注:此示例仅供参考!实际应用中须根据具体需求稍作调整!

我们对电子表格

...

报表设置跳转规则时,有时会遇到如下需求:要求根据源报表谋参数的参数值不同,跳转到不同的目标报表。或者是根据其他判断条件,跳转到不同的目标报表,类似上述需求,可以参照如下方法设置。

参考示例:

Image Removed

设置方法

1、首先在电子表格设计器(Microsoft Office Excel)中,创建电子表格报表,源报表和目标报表。

2、在浏览器的资源定制节点下,选中电子表格,右键选择 编辑宏 进入报表宏界面。

...

3、在源报表的报表宏界面新建跳转规则向导。设置向导,让其自动生成服务端模块和客户端模块代码,然后手动修改其生成的“客户端模块”代码,参考如下的示例代码,修改其中的 main 方法。

...

Image Added

 

宏类型

类型

对象

事件

ClientSide

spreadsheetReport

onLinkClick

宏代码


代码块

...

linenumbers

...

true

...

collapsetrue
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)。