示例说明
在电子表格中,可以通过宏实现图片告警,示例如下:
注意 |
---|
客户端宏只对客户端打开报表时有效,导出报表为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
borderColor | #BBBBBB |
---|---|
bgColor | #F0F0F0 |
borderWidth | 1 |
borderStyle | solid |