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

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

示例说明


在灵活分析报表中,可以设置指定的值添加跳转链接,或者不添加跳转链接。

如下,灵活分析报表中设置了合计,同时灵活分析又允许跳转,此时需要设置“合计”行不允许跳转。如下:


版本及客户端要求

1.版本要求:Smartbi V7 及以上

2.客户端:PC

3.浏览器:IE8-IE11、Chrome浏览器、firefox浏览器

 
设置方法

1.创建灵活分析报表,并设置合计,如下:


2.在灵活分析报表上,设置跳转规则,如下:

显示如下:


3.在报表上右键-》编辑宏,找到创建跳转规则时,自动生成的客户端宏。对其进行修改。具体代码如下:

宏代码

function main(simpleReport, simpleReportContext) {
    //simpleReport.addColumnLinkByName("产品类别",me);//注释掉原来的代码,使用下面代码代替
    var col = simpleReport.getFieldIndexByName("产品类别"); //获取合计所在的列序号
    for (var i = simpleReport.grid.getHeaderRows(); i < simpleReport.grid.getRowCount(); i++) {
        var cell = simpleReport.grid.getCell(i, col);
        if (cell) {
            if (cell.innerText == "合计") {} //判断为合计,则不加跳转
            else {
                simpleReport.addCellLink(i, col, me);
            }
        }
    }
}
//这一部分没有做改变
var menuItem = {
    alias: "跳转",
    callback: function(simpleReport, simpleReportContext) {
        var destQuery = simpleReportContext.openReport("I4028818a015c808d808db7fe015c819f0143070b");
        if (!destQuery)
            return;
        simpleReport.writeParamsToContext();
        destQuery.refreshData();
    }
}
var me = menuItem;


4.由于修改过客户端代码之后,如果重新保存跳转规则,则会导致代码失效。因此,删除跳转规则向导:


注意删除时将“删除相关模块”给勾除。


更多

同时,也可以只设置指定数据添加跳转,如只需要点击“点心”进行跳转。

步骤同上,在修改客户端宏代码时,修改如下:

宏代码

function main(simpleReport, simpleReportContext) {
    //simpleReport.addColumnLinkByName("产品类别",me);//注释掉原来的代码,使用下面代码代替
    var col = simpleReport.getFieldIndexByName("产品类别"); //获取产品类别字段的列 序号
    for (var i = simpleReport.grid.getHeaderRows(); i < simpleReport.grid.getRowCount(); i++) {
        var cell = simpleReport.grid.getCell(i, col);
        if (cell) {
            if (cell.innerText == "点心") { //内容为点心,则添加跳转
                simpleReport.addCellLink(i, col, me);
            } else {
            }
        }
    }
}
//这一部分没有做改变
var menuItem = {
    alias: "跳转",
    callback: function(simpleReport, simpleReportContext) {
        var destQuery = simpleReportContext.openReport("I4028818a015c808d808db7fe015c81b639440848");
        if (!destQuery)
            return;
        simpleReport.writeParamsToContext();
        destQuery.refreshData();
    }
}
var me = menuItem;
  • 无标签