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

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

示例说明

在透视分析的参数后添加刷新按钮,当切换参数后不刷新数据,而是在点“刷新”按钮后才刷新数据,可以通过宏实现。

实现效果图如下:

设置方法

  1. 在“分析展现”节点中,创建一张透视分析;
    取消透视分析的“切换参数后自动刷新报表”功能注意如下图:

  2. 选中透视分析,右键选择 编辑宏 进入报表宏界面。

  3. 在报表宏界面新建客户端模块,在弹出的新建模块对话框中选择对象为INSIGHT;事件为onRender;并把下面宏代码复制到代码区域。

宏类型

类型对象事件
ClientSide

INSIGHT

onRender

宏代码

添加按钮
function main(insight) {
    if (typeof(insight.old_rebuildParamPanel) == "undefined") {
        insight.old_rebuildParamPanel = insight.rebuildParamPanel;
        insight.rebuildParamPanel = function() {
            this.old_rebuildParamPanel();
            addBtns(this);
        };
    }
}
//添加刷新按钮
function addBtns(insight) {
    var paramTable = insight.paramPanelObj.layoutTable;
    var i, cell, lastCell;
    for (i = 0; i < paramTable.rows.length; i++) {
        cell = paramTable.rows[i].insertCell(-1);
        if (i == paramTable.rows.length - 1) lastCell = cell;
    }
    //新建button,并把这个button加到最后一个参数后面
    var btnElem = document.createElement("input");
    btnElem.type = "button";
    btnElem.value = "刷新";
    btnElem.className = "queryview-toolbar-button";
    btnElem.style.background = "url(./img/button/button_bgicon_add.gif) no-repeat top right";
    btnElem.style.border = "1px solid #A1ACB9";
    btnElem.style.width = "70px";
    btnElem.style.height = "23px";
    btnElem.style.padding = "2px 0 0 0";
    btnElem.style.margin = "0 10px 0 10px";
    insight.addListener(btnElem, "click",
        function() {
            insight.doRefresh();
        }, this);
    lastCell.appendChild(btnElem);
}

关键对象总结

  • 获取透视分析参数区域:insight.paramPanelObj.layoutTable;
  • 创建按钮控件:document.createElement("input");
  • 添加按钮到参数区域:lastCell.appendChild(btnElem);
  • 透视分析刷新数据:insight.doRefresh();

资源下载

资源:migrate.xml