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

该宏示例在 V10.5上 验证通过

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

示例说明

给电子表格回写工具栏按钮添加文字,如下图所示:

实现方案

在报表宏界面新建客户端模块。在弹出的新建模块对话框中,选择对象为spreadSheetReport、事件为onRenderReport、并把下面宏代码复制到代码编辑区域。               

宏类型

类型

对象

事件

ClientSide

spreadsheetReport

onRenderReport

宏代码

// 类型:客户端宏,对象:电子表格,事件:onRenderReport
function main(spreadsheetReport) {

    // 常规报表相关按钮
    addDescSpan(spreadsheetReport.elem_btnRefresh, "刷新");
    addDescSpan(spreadsheetReport.elem_btnExport, "导出");
    addDescSpan(spreadsheetReport.elem_btnPrint, "打印");
    addDescSpan(spreadsheetReport.elem_btnMyFavorite, "收藏");
    addDescSpan(spreadsheetReport.elem_btnTimeConsuming, "耗时分析");


    // 回写报表相关按钮
    var writeback = spreadsheetReport.spreadsheetReportWriteBack;
    if (writeback) {
        addDescSpan(writeback.elem_btnClearModified, "清空数据修改记录", "120px");
        addDescSpan(writeback.elem_btnSave, "保存");
        addDescSpan(writeback.elem_btnAppendRow, "添加行");
        addDescSpan(writeback.elem_btnRemoveRow, "删除行");
    }
    if (writeback.elem_btnBatchImport) {
        addDescSpan(writeback.elem_btnBatchImport, "批量导入");
    }

    // 和Excel导入模板绑定了的相关按钮
    if (spreadsheetReport.elem_btnExcelImport) {
        addDescSpan(spreadsheetReport.elem_btnExcelImport, "Excel导入");
    }
    setTimeout(function() {
        if (spreadsheetReport.elemImportConfig) {
            addDescSpan(spreadsheetReport.elemImportConfig, "Excel数据导入");
        }
    }, 100);

}

// 在工具栏字体图标span下面添加文字span作为描述
// original:对应字体图标元素span
// desc:描述文字,若不传递取原span的title,
// width:需要修改的原始字体图标span的宽度

function addDescSpan(original, desc, width) {
    if (!original) {
        return;
    }
    if (!desc) {
        desc = original.title
    }
    if (!width) {
        width = 22 * desc.length + "px";
    }
    original.style.width = width;
    var span = document.createElement("SPAN");
    span.innerText = desc;
    span.style = "font-size: 12px; vertical-align: top;display: inline-block; margin-left: 3px;"
    original.appendChild(span);
}