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

示例说明

灵活分析报表中,在参数面板的后面添加“查询”、“导出”按钮,其功能与点击工具栏上的查询、导出按钮是一样的。如下图所示:

 

设置方法

  1. 在资源定制中,创建一张灵活分析报表。
  2. 选中灵活分析,右键选择 编辑宏 进入报表宏界面
  3. 在报表宏界面新建客户端模块,在弹出的新建模块对话框中选择对象为 simpleReport;事件为 onRender;并把下面宏代码复制到代码区域。

宏类型

类型

对象

事件

ClientSide

simpleReport

onRender

宏代码

function main(simpleReport, simpleReportContext) {
    if (!simpleReport.paramPanelObj) return;
    try {
        //获取参数面板表格
        var paramTable = simpleReport.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;
        }
 
        //创建查询按钮
        var queryBtn = document.createElement("button");
        queryBtn.value = " 查询 "; //如需要修必按钮风格,请自行实现
		queryBtn.innerHTML = "查询";
        queryBtn.className = "query-button";
        lastCell.appendChild(queryBtn);
        simpleReport.addListener(queryBtn, "click",
        function() {
            //刷新页面
            simpleReport.doRefresh();
        },
        this);
 
        // 添加空格
        var span = document.createElement("span");
        lastCell.appendChild(span);
        span.innerHTML = "&nbsp;&nbsp;";
 
        //创建导出按钮
        var exportBtn = document.createElement("button");
        exportBtn.value = " 导出 "; //如需要修必按钮风格,请自行实现
		exportBtn.innerHTML = "导出";
        exportBtn.className = "query-button";
        lastCell.appendChild(exportBtn);
        simpleReport.addListener(exportBtn, "click",
        function() {
            //导出Excel方法
            simpleReport.doExportMenuCloseUp("EXCEL");
        },
        this);
    } catch(e) {
        alert('更新查询、导出按钮位置失败:' + e.message);
    }
}


组合分析添加查询和导出按钮示例:

 

function main(simpleReport, simpleReportContext) {
    if (simpleReport.hadAddBtn) {
        return;
    }
    if (!simpleReport.paramPanelObj) return;
    try {
        //获取参数面板表格
        var paramTable = simpleReport.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;
        }
        //创建查询按钮
        var queryBtn = document.createElement("button");
        queryBtn.value = " 查询 "; //如需要修必按钮风格,请自行实现
		queryBtn.innerHTML = "查询";
        queryBtn.className = "query-button";
        lastCell.appendChild(queryBtn);
        simpleReport.addListener(queryBtn, "click",
        function() {
            //刷新页面
            simpleReport.doRefresh();
        },
        this);
        // 添加空格
        var span = document.createElement("span");
        lastCell.appendChild(span);
        span.innerHTML = "&nbsp;&nbsp;";
        //创建导出按钮
        var exportBtn = document.createElement("button");
        exportBtn.value = " 导出 "; //如需要修必按钮风格,请自行实现
		exportBtn.innerHTML = "导出":
        exportBtn.className = "query-button";
        lastCell.appendChild(exportBtn);
        simpleReport.hadAddBtn = true;
        simpleReport.addListener(exportBtn, "click",
        function() {
            //导出Excel方法
            simpleReport.doExportMenuCloseUp("EXCEL");
        },
        this);
    } catch(e) {
        alert('更新查询、导出按钮位置失败:' + e.message);
    }
}

 

组合分析示例:

组合分析参数面板添加“选择输出字段”按钮示例宏代码:
// 类型:ClientSide    对象:simpleReport    事件: onRender
function main(simpleReport, simpleReportContext) {
    if (!simpleReport.paramPanelObj) {
        return;
    }
    // 获取参数面板表格
    var paramTable = simpleReport.paramPanelObj.layoutTable;
    var rowCount = paramTable.rows.length;
    if (rowCount < 1) {
        return;
    }
    var lastRow = paramTable.rows[rowCount - 1];
    var colCount = lastRow.childNodes.length;
    if (colCount < 1) {
        return;
    }
    var lastEmptyCell = lastRow.childNodes[colCount - 1];
    if (lastEmptyCell.innerText) { // 最后一个单元格不为空时,参数面板表格追加一列
        for (var i = 0; i < rowCount; i++) {
            var cell = paramTable.rows[i].insertCell(-1);
            if (i == rowCount - 1) {
                lastEmptyCell = cell;
                break;
            }
        }
    } else {
        var prevCell = lastEmptyCell.previousSibling;
        while (prevCell) {
            if (!prevCell.innerText) {
                lastEmptyCell = prevCell;
            }
            prevCell = prevCell.previousSibling;
        }
    }
 
    if (!lastEmptyCell._attachChooseFieldsBtn) {
        // 创建按钮
        var btnElem = document.createElement('INPUT');
        btnElem.type = 'button';
        btnElem.className = 'button-buttonbar btn-bgicon-choose-fields';
        btnElem.value = '选择输出字段';
        btnElem.onclick = function() {
            var tbarCFBtnElem = simpleReport['cqBtnChooseFields']; // 工具栏"选择输出字段"按钮
            if (tbarCFBtnElem) {
                tbarCFBtnElem.click(); // 模拟点击工具栏对应按钮
            }
        };
        lastEmptyCell.appendChild(btnElem); //
        lastEmptyCell._attachChooseFieldsBtn = true;
    }
}

 

关键对象总结

  • 导出Excel方法:simpleReport.doExportMenuCloseUp("EXCEL");
  • 进行刷新方法:simpleReport.doRefresh();

    资源文件:migrate.xml