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

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

示例说明

在电子表格中根据字段的值设置为对应的图片,并且在移动端离线之后也能够看到通过宏设置的图片。

如下图:原始表格中第三列是排名,使用宏根据排名不同,设置不同的图片。

原始表格:

增加宏之后的表格:

在移动端离线查看效果:


设置方法

1、  在电子表格设计器中,创建电子表格。

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

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

宏类型

类型

对象

事件

ClientSide

spreadsheetReport

onRender

宏代码

 function main(spreadsheetReport, isAjaxRefreshCallback) {
    var grid = spreadsheetReport;
    var starIndex = 4; //数据开始行,行号从0开始
    var maxRow = grid.getRowCount(); //总行数
    for (var m = starIndex; m < maxRow; m++) {
        var cellIndex = 5; //显示图片信息的列序号,序号从0开始。
        var cell = grid.getCell(m, cellIndex); //获取列
        cell.align = "center";
        var value = cell.innerText;
        if (value == 1) { //根据值不同,显示不同的图片
            //下面注释需要加上,离线报表时时根据下面一行注释下载图片
            //@smartbi.static_resource:img/mapflag/square-star.png    
            if (window.bof_offline_xhr) {
                cell.innerHTML = '<img src="../../../../img/mapflag/square-star.png" />';
            } else {
                cell.innerHTML = '<img src="../../../img/mapflag/square-star.png" />';
            }
        } else if (value == 2) {
            //@smartbi.static_resource:img/mapflag/star.png
            if (window.bof_offline_xhr) {
                cell.innerHTML = '<img src="../../../../img/mapflag/star.png" />';
            } else {
                cell.innerHTML = '<img src="../../../img/mapflag/star.png" />';
            }
        } else if (value == 3) {
            //@smartbi.static_resource:img/mapflag/triangle.png
            if (window.bof_offline_xhr) {
                cell.innerHTML = '<img src="../../../../img/mapflag/triangle.png" />';
            } else {
                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 = '';
        }
    }
}


关键对象总结

  • 离线时通过注释下载图片://@smartbi.static_resource:img/mapflag/square-star.png,示例中图片实际路径为smartbi.war/vision/img/mapflag/square-star.png

  • 判断是否离线:window.bof_offline_xhr

  • 离线需要上溯四层路径:if (window.bof_offline_xhr)  cell.innerHTML = '<img src="../../../../img/mapflag/square-star.png" />';

  • 在线浏览需要上溯三层路径:cell.innerHTML = '<img src="../../../img/mapflag/square-star.png" />';

资源下载

资源:migrate.xml