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

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

示例说明

在电子表格中,可以通过宏实现图片告警,示例如下:

客户端宏只对客户端打开报表时有效,导出报表为Excel等文件不会有图片告警效果。

版本及客户端说明

1.smartbi版本:最新版本

2.客户端:PC

3.浏览器:IE、谷歌浏览器(Chrome)、火狐浏览器(Firefox)

设置方法

  1. 电子表格设计器中,创建一张电子表格报表;


  2. 在浏览器的“分析展现”节点下,选中电子表格,右键选择 编辑宏 进入报表宏界面

  3. 在报表宏界面新建客户端模块,在弹出的新建模块对话框中选择对象为 spreadsheetReport;事件为 onRender;并把下面宏代码复制到代码区域。

宏类型

类型

对象

事件

ClientSide

spreadsheetReport

onRender

宏代码

function main(spreadsheetReport, isAjaxRefreshCallback) {
    var starIndex = 9; //数据开始行,行号从0开始,第10第行开始行,因此是9
    //数据总行数,由于getRowCount()此方法获得的行数会比实际行数多一行,所以要减1
    var maxRow = spreadsheetReport.getRowCount() - 1; 
    for (var m = starIndex; m < maxRow; m++) {
        var cellIndex = 3; //显示图片信息的列序号,序号从0开始。
        var cell = spreadsheetReport.getCell(m, cellIndex); //获取单元格
        cell.align = "center";
        var value = cell.innerText;
        if (value == 1) { //根据值不同,显示不同的图片
            cell.innerHTML = '<img src="../../../img/mapflag/square-star.png" />';
        } else if (value == 2) {
            cell.innerHTML = '<img src="../../../img/mapflag/star.png" />';
        } else if (value == 3) {
            cell.innerHTML = '<img src="../../../img/mapflag/triangle.png" />';
        } else {
            //对其他单元格的处理
            cell.background = "img/alertdialog/Icon_4.gif";
            //cell.style.background = 'url(../../../img/mapflag/none.png) no-repeat center center';
            cell.style.fontWeight = 'bold';
            cell.style.fontSize = '16';
            cell.style.height = '28';
            cell.style.backgroundColor = '';
        }
    }
}

关键对象总结

  • 读取表内容总行数:spreadSheetReport..getRowCount();
  • 读取单元格内容:spreadSheetReport.getCell(m, cellIndex);

资源下载

报表资源:电子表格排序告警.xml