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

示例说明

灵活分析报表的表格中,根据某字段值的范围增加红绿灯,显示预警信息。如下图所示,小于1000的显示为红灯。

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

宏类型

类型

对象

事件

ClientSide

simpleReport

onRenderTable


宏代码

function main(simpleReport, simpleReportContext) {
    //循环找出销量大于1000的城市 
    for (var m = simpleReport.grid.getHeaderRows(); m < simpleReport.grid.getRowCount(); m++) {
        //根据字段别名,找到该列在表格中对应的列号 
        var n = simpleReport.getFieldIndexByAlias('数量');
        var x = simpleReport.getFieldIndexByAlias('顾客所在城市');
        //根据行号、列号,找到对应的单元格对象 
        var c = simpleReport.grid.getCell(m, n);
        var value = c.innerText;
        var floatValue = parseFloat(value.replace(",", ""));
        c.align = 'right';
        //操作单元格对象属性innerHTML,实现销量大于1000时设置绿灯,否则设置红灯 
        //注:如果是自定义图片,请事先将图片放到smartbi.war\img\目录下
        if (!isNaN(floatValue) && floatValue > 1000) {
            c.innerHTML += '<img src="./img/alertdialog/Icon_8.gif" />';
        } else {
            c.innerHTML += '<img src="./img/alertdialog/Icon_4.gif" />';
        }
    }
}


关键对象总结

  • 根据字段名称或别名获取其在表格中的列号:simpleReport.getFieldIndexByName("SalesNum")、simpleReport.getFieldIndexByAlias("数量");
  • 获取单元格对象:simpleReport.grid.getCell(m, n);

 

  • 无标签