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

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

示例说明

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

 
设置方法

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

  2. 选中透视分析,右键选择 编辑宏 进入报表宏界面。
  3. 在报表宏界面新建客户端模块,在弹出的新建模块对话框中选择对象为INSIGHT;事件为onRender;并把下面宏代码复制到代码区域。
  4. 在报表宏新建客户端模块,在弹出的新建模块对话框中选择对象为INSIGHT;事件为onRenderTable;并把下面宏代码复制到代码区域。

         

注意:分别新建两个客户端宏,一个onRender触发,一个onRenderTable触发。

宏类型

类型对象事件
ClientSide

INSIGHT

onRender

ClientSide

INSIGHT

onRenderTable


宏代码

添加按钮
function main(insight) {
    //debugger;
    insight.origin_rebuildParamPanel = insight.rebuildParamPanel;
    insight.rebuildParamPanel = function() {
        this.origin_rebuildParamPanel();
        addBtns(this);
    }
    addBtns(insight);
}
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 = "80px";
    btnElem.style.padding = "2px 0 0 0";
    btnElem.style.margin = "0 10px 0 10px";
    btnElem.onclick = doClick;
    if (lastCell) {
        lastCell.appendChild(btnElem);
    }
    //定义button的Click事件
    function doClick() {
        insight.doRefresh();
    }
}

关键对象总结

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




  • 无标签