示例说明
在项目中需要显示多维分析报表的同时也要显示一些动态的说明。该问题可以通过宏实现,如下图:
设置方法
- 在“分析展现”节点,创建一张多维分析;
- 选中多维分析,右键选择 编辑宏 进入报表宏界面。
- 在报表宏界面新建客户端模块,在弹出的新建模块对话框中选择对象为olapQuery;事件为afterRefreshTable;并把下面宏代码复制到代码区域。
宏类型
类型 | 对象 | 事件 |
ClientSide | olapQuery | afterRefreshTable |
宏代码
代码块 | ||||
---|---|---|---|---|
|
| |||||
function main(olapQuery) {
var grid = olapQuery.olapTable.domAgent.getElementByBofid("olap-grid");
var rowCount = 0; //表格总行数
var columnCount = 0; //列数
var isIE = browserinfo();
if (grid) {
rowCount = grid.rows.length;
if (isIE == 'IE') {
columnCount = grid.rows(0).cells.length;
} else {
columnCount = grid.rows[0].cells.length;
}
}
if (rowCount > 0 && columnCount > 0) {
var html = ""; //静态文字
for (var i = 1; i < rowCount; i++) { //按行生成文字
var oneLine = buildLine(i);
html += oneLine;
}
olapQuery.elemReportTail.innerHTML = html; //设置尾部内容
}
function buildLine(lineNum) {
var currentColumnCount = 0;
if (isIE == 'IE') {
currentColumnCount = grid.rows(lineNum).cells.length;
} else {
currentColumnCount = grid.rows[lineNum].cells.length;
}
var startColumn = currentColumnCount - columnCount + 2; //起始列
var line = "" + olapQuery.olapTable.getCellValue(lineNum, startColumn - 1) + " 销售情况,其中";
for (var i = startColumn; i < currentColumnCount - 1; i++) {
line += olapQuery.olapTable.getCellValue(0, i);
line += olapQuery.olapTable.getCellValue(lineNum, i);
}
//百分比特殊处理
var persentStr = olapQuery.olapTable.getCellValue(lineNum, currentColumnCount - 1);
var myvalue = parseFloat(persentStr);
if (myvalue > 0) {
persentStr = "<font color=red >上升 " + persentStr + "</font>";
} else if (myvalue < 0) {
persentStr = "<font color=red >下降 " + Math.abs(myvalue) + "%</font>";
} else {
persentStr = "<font color=red >为零</font> ";
}
return line += "增长率<font color=red >" + persentStr + ";</font>";
}
/*判断浏览器类型*/
function browserinfo() {
var Browser_Name = navigator.appName;
var Browser_Version = parseFloat(navigator.appVersion);
var Browser_Agent = navigator.userAgent;
var Actual_Version, Actual_Name;
var is_IE = (Browser_Name == "Microsoft Internet Explorer"); //判读是否为ie浏览器
var is_NN = (Browser_Name == "Netscape"); //判断是否为netscape浏览器
var is_op = (Browser_Name == "Opera"); //判断是否为Opera浏览器
if (is_NN) {
return "Netscape";
}
else if (is_IE) {
return "IE";
}
else if (is_op) {
return "Opera";
}
else {
return "other ";
}
}
} |
资源下载
资源:migrate.xml
borderColor | #BBBBBB |
---|---|
bgColor | #F0F0F0 |
borderWidth | 1 |
borderStyle | solid |