示例说明
在项目中需要显示多维分析报表的同时也要显示某些数据的标注说明。如对字段名’销售量‘以及含有’2016年‘的字段名进行标注,对于此类问题可以通过宏实现,具体效果如下图:
设置方法
- 在“分析展现”节点下,创建一张多维分析;
- 选中多维分析,右键选择 编辑宏 进入报表宏界面。
- 在报表宏界面新建客户端模块,在弹出的新建模块对话框中选择对象为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