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

正在查看旧版本。 查看 当前版本.

与当前比较 查看页面历史

版本 1 下一个 »

示例说明

在回写时,可能需要根据某个值判断另一个单元格是否允许回写,具体可以参考下面这个例子。

当平铺参数选择“是”,则允许回写,

当平铺参数选择“否”,则不允许回写,

设置方法

  1. 首先在电子表格设计器(Microsoft Office Excel)中,创建电子表格报表。
    首先在excel中设计好表样,创建平铺参数【是否】,在C3单元格绑定参数【是否】。见下图


  2. 在E3单元格根据实际情况设置其填报属性。

  3. 在浏览器中,切换到“定制 -> 宏管理”页面,在左侧的资源树上找到对应的电子表格报表,双击该节点进入报表宏编辑界面。

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

宏类型

类型

对象

事件

服务端宏

spreadsheetReportonRenderReport

宏代码

function main(spreadsheetReport) {
    spreadsheetReport.spreadsheetReportWriteBack.updateWriteBackData_old = spreadsheetReport.spreadsheetReportWriteBack.updateWriteBackData;
    spreadsheetReport.spreadsheetReportWriteBack.updateWriteBackData = function(sheetIndex, position, td, oldValue, value, displayValue, type) {
        var cell = spreadsheetReport.elemSheetFrame.contentWindow.writableMap[position];
        if (cell.cell == "C3") { //判断当前回写的单元格是不是C3
            if (value == "否") { //判断C3单元格的值是不是"否"
                //要设置不可回写的单元格在示例中是E3,单元格的坐标从0开始计数,其坐标为(2,4),因此下面代码中需要对writableMap中[2:4]进行设置
                if (spreadsheetReport.elemSheetFrame.contentWindow.writableMap["2:4"]) {
                    spreadsheetReport.elemSheetFrame.contentWindow.writableMap["bak.2:4"] = spreadsheetReport.elemSheetFrame.contentWindow.writableMap["2:4"];
                    delete spreadsheetReport.elemSheetFrame.contentWindow.writableMap["2:4"];
                }
            } else {
                if (spreadsheetReport.elemSheetFrame.contentWindow.writableMap["bak.2:4"]) {
                    spreadsheetReport.elemSheetFrame.contentWindow.writableMap["2:4"] = spreadsheetReport.elemSheetFrame.contentWindow.writableMap["bak.2:4"];
                    delete spreadsheetReport.elemSheetFrame.contentWindow.writableMap["bak.2:4"];
                }
            }
        }
        this.updateWriteBackData_old(sheetIndex, position, td, oldValue, value, displayValue, type);
    }
}

 

资源下载:

migrate.xml

建表语句:file.sql

  • 无标签