页面树结构
转至元数据结尾
转至元数据起始

该宏示例在 V10.5上 验证通过

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

示例说明

在一个电子表格报表内,有多个Sheet页,有时候用户希望点击某个Sheet中的对应单元格,可以跳转到另一个Sheet 页。对于这样的需求通过电子表格的跳转规则向导生成宏代码,然后再手动调整即可。

实例效果如下:


设置方法

  1. 在电子表格报表上新建“跳转规则向导”。
  2. 在向导的“第二步:目标资源参数设置”界面上,选择“目标资源”为原报表,同时将“在新窗口打开”选择去掉。
  3. 然后修改生成的“客户端模块”宏代码,将最后的几行代码替换掉。

宏代码

将向导自动生成的宏代码:

    var report = command.spreadsheetReport;
    if (paramsInfo.length > 0) report.setParamsInfo(paramsInfo);
    report.doRefresh();

替换为如下代码:

    var report = spreadsheetReport;
    if (paramsInfo.length > 0) report.setParamsInfo(paramsInfo);
    report.doRefresh(true);
    setTimeout(function() {
        report.changeSheet(1);
    }, 300);//根据电子表格报表打开速度,时间300ms需要灵活调整

如无法正常刷新数据,需在宏代码如下图位置中再加上一句report.refreshing=false;该语句需在report.changeSheet(1);与report.doRefresh(true);之间(如下图)


实现Sheet跳转效果有勾选或不勾选“在新窗口打开”设置项,勾选或不勾选“在新标签页打开”设置项四种方法,每种方法生成的宏代码不同,本篇文档中只提供了其中一种方法。

关键对象总结

  1. report.doRefresh(true):让报表自动刷新。
  2. report.changeSheet(1):把报表切换到对应的Sheet页。

资源下载

资源: migrate.xml