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

该宏示例在 V10.5上 验证通过

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

示例说明

在项目中需要显示多维分析报表的同时也要显示某些数据的标注说明。如对字段名’销售量‘以及含有’2016年‘的字段名进行标注,对于此类问题可以通过宏实现,具体效果如下图:

设置方法

  1. 在“分析展现”节点下,创建一张多维分析;
  2. 选中多维分析,右键选择 编辑宏 进入报表宏界面。
  3. 在报表宏界面新建客户端模块,在弹出的新建模块对话框中选择对象为olapQuery;事件为afterRefreshTable;并把下面宏代码复制到代码区域。

宏类型

类型

对象

事件

ClientSide

olapQuery

afterRefreshTable 

宏代码

function main(olapQuery) {
    var rowHead = "2016年"; //设置需要标记的行头
    var columnHead = "销售量"; //设置需要标记的列
    signData(olapQuery, rowHead, columnHead);
}
//标注指定行和列的数据
function signData(olapQuery, rowHead, columnHead) {
    var grid = olapQuery.domAgent.getElementByBofid("olap-grid"); //获取表格对象,该表格是html里面的<table>对象。
    var row = grid.rows[0];
    while (row) {
        var cell = row.firstChild; //获取列
        while (cell) {
            // 行头的判断
            if (cell.innerHTML.indexOf(rowHead) != -1) { //列标记
                cell.style.color = "red";
            }
            // 列头的判断
            if (cell.innerHTML.indexOf(columnHead) != -1 && cell.firstChild && cell.firstChild.tagName == "TABLE") {
                //cell.firstChild.style.color = "red";
                cell.firstChild.firstChild.firstChild.firstChild.style.color = "red";
            }
            cell = cell.nextSibling;
        }
        row = row.nextSibling;
    }
}


资源下载

资源:migrate.xml