页面树结构

版本比较

标识

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


注意

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

示例说明

...


 Image Removed
设置方法

  1. 在资源定制中,创建一张灵活分析(带合计行)。
  2. 选中灵活分析,右键选择 编辑宏 进入报表宏界面
  3. 在报表宏界面新建客户端模块,在弹出的新建模块对话框中选择对象为simpleReport;事件为onRenderTable;并把下面宏代码复制到代码区域。

宏类型

类型

对象

事件

ClientSide

simpleReport

onRenderTable

宏代码

...

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

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

Image Added


版本及客户端要求

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

2.客户端:PC

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

 
设置方法

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

Image Added


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

Image Added

显示如下:

Image Added


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

宏代码

代码块
languagejs
themeEclipse
firstline1
linenumberstrue
function main(simpleReport, simpleReportContext) {
    //simpleReport.addColumnLinkByName("产品类别",me);//注释掉原来的代码,使用下面代码代替
    var col = simpleReport.getFieldIndexByName("Region产品类别"); //取列序号获取合计所在的列序号
     for (var i = simpleReport.grid.getHeaderRows(); i < simpleReport.grid.getRowCount(); i++) {
        var cell = simpleReport.grid.getCell(i, col);
        if (cell) {
debugger;
            if (cell.getAttribute("realValue").indexOf("小计") >= 0 || cell.getAttribute("realValue").indexOf("合计") >= 0) {} else {
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.由于修改过客户端代码之后,如果重新保存跳转规则,则会导致代码失效。因此,删除跳转规则向导:

Image Added


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

Image Added


更多

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

Image Added

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

宏代码

代码块
languagejs
linenumberstrue
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("I402881903744c86c015437caeb580bb8I4028818a015c808d808db7fe015c81b639440848");
        if (!destQuery)
            return;
        simpleReport.writeParamsToContext();
        destQuery.refreshData();
    }
}
var me = menuItem;

关键对象总结

  • 通过参数名获取参数对象:simpleReport.addCellLink(i, col, me)
  • 打开灵活分析:simpleReportContext.openReport("I2c949eaf1a942102011a9561f7e7015d");

 

...