在回写时,可能需要根据某个值判断另一个单元格是否允许回写,具体可以参考下面这个例子。
当平铺参数选择“是”,则允许回写,
当平铺参数选择“否”,则不允许回写,
类型 | 对象 | 事件 |
---|---|---|
服务端宏 | spreadsheetReport | onRenderReport |
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); } } |
资源下载:
建表语句:file.sql