示例说明
在电子表格中,可以通过宏实现图片告警,示例如下:
注意 |
---|
客户端宏只对客户端打开报表时有效,导出报表为Excel等文件不会有图片告警效果。 |
版本及客户端说明
1.smartbi版本:最新版本
2.客户端:PC
3.浏览器:IE、谷歌浏览器(Chrome)、火狐浏览器(Firefox)
设置方法
- 在电子表格设计器中,创建一张电子表格报表;
- 在浏览器的“分析展现”节点下,选中电子表格,右键选择 编辑宏 进入报表宏界面。
- 在报表宏界面新建客户端模块,在弹出的新建模块对话框中选择对象为 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