麦粉社区
>
帖子详情

电子表格参数后如何增加重置按钮

数据分析 发表于 2026-3-21 10:51
发表于 2026-3-21 10:51:04

电子表格参数后如何增加重置按钮  需要重置参数

发表于 2026-3-23 09:14:58
参考下面的宏代码看看:
7332669c0940bedbeb.png
function main(spreadsheetReport) {
    var lastCell = spreadsheetReport.paramPanelObj;
    var paramTable = spreadsheetReport.paramPanelObj.layoutTable;

    if (paramTable.rows.length === 0) {
        return;
    }
    var i, cell;
    // 在参数同一行添加按钮
    for (i = 0; i < paramTable.rows.length; i++) {
        cell = paramTable.rows.insertCell(-1);
        if (i == paramTable.rows.length - 1)
            lastCell = cell;
    }

    if (!spreadsheetReport._newBtn) { // 不重复添加按钮
        var input = document.createElement("INPUT");
        input.type = "button";
        input.value = "重置参数";
        input.title = "重置参数";
        input.style.width = "70px";
        input.style.height = "20px";
        var newBtn = lastCell.appendChild(input);

        spreadsheetReport.addListener(input, "click", doNewButtonClick,
            spreadsheetReport);
        spreadsheetReport._newBtn = newBtn;
    }

    recordParamDefualtDisplayValue(spreadsheetReport);

    // 新添加按钮Click事件处理函数
    function doNewButtonClick(e) {
        //alert(spreadsheetReport.params[0].paramValue.value);
        for (var j = 0; j < spreadsheetReport.params.length; j++) {
            // console.log(spreadsheetReport.getParameterDisplayValue(spreadsheetReport.params[j].paramValue.value))
            var defaultParamDisplayValue = spreadsheetReport.defaultParamDisplayValueMaps[spreadsheetReport.params[j].name];
            console.log();
            if (spreadsheetReport.params[j].paramValue) {
                spreadsheetReport.paramPanelObj.setParamValue(spreadsheetReport.params[j].id, spreadsheetReport.params[j].paramValue.value, defaultParamDisplayValue );
            } else {
                spreadsheetReport.paramPanelObj.setParamValue(spreadsheetReport.params[j].id, '', '');
            }
        }
        // spreadsheetReport.rebuildParamPanel()
        spreadsheetReport.doRefresh();
        //spreadsheetReport.doRefresh(true);// 刷新报表
    }
}
//记录参数默认显示值
function recordParamDefualtDisplayValue(spreadsheetReport) {
    var defaultParamMaps = {};
    for (var j = 0; j < spreadsheetReport.params.length; j++) {
        if (spreadsheetReport.params[j].paramValue) {
            defaultParamMaps[spreadsheetReport.params[j].name] = spreadsheetReport.getParameterDisplayValue(spreadsheetReport.params[j].name)
        }
    }
    spreadsheetReport.defaultParamDisplayValueMaps = defaultParamMaps;
}
  •   wyy
    提示报错
    paramTable.rows.insertCell is not a function
    2026-3-23 14:43| 回复
  •   橘子
    这行代码写错了,改成
    cell = paramTable.rows[i].insertCell(-1);
    2026-3-23 16:20| 回复

回复

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies
您需要登录后才可以回帖 登录 | 立即注册

3回帖数 0关注人数 744浏览人数
最后回复于:2026-3-23 09:14

社区

指南

AI

搜索

快速回复 返回顶部 返回列表