想把逻辑删除按钮放在表格前上,之前是在表后,无法获取到正确的行进行标记// 获取报表对象var report = this.options.form || _g();// 使用帆软内置的获取选中行方法(如果可用)var selectedRows = ;var $tds = $("td:has(:checked)"); // 通过jQuery查找被选中的复选框console.log($tds)$tds.each(function () { var cell = $(this).attr('id'); console.log(cell) var row = cell.split(','); // 获取行号 console.log("行", row) selectedRows.push(parseInt(row) + 1); // 转换为 1-based 行号});// 如果没有选中任何行,尝试原方法if (selectedRows.length == 0) { for (var i = 2; i <= 50; i++) { try { if (report.getCellValue(0, i - 1) == 1) { selectedRows.push(i); } } catch (e) { break; } }}if (selectedRows.length == 0) { alert("请至少选择一行数据!"); return false;}// 弹框确认是否取消该任务FR.Msg.confirm("提示", "是否确定取消该任务?", function (value) { if (value) { // 点击“确定” // 标记是否有可取消的任务 var canCancel = true; // 先检查所有选中行的状态 selectedRows.forEach(function (row) { var currentStatus = report.getCellValue(12, row - 1); // 如果存在状态不为0的行,标记为不可取消 if (currentStatus != 0) { canCancel = false; } }); // 判断是否可以取消 if (!canCancel) { FR.Msg.alert("提示", "当前状态无法取消!"); return; // 终止后续操作 } // 所有选中行状态均为0,执行取消操作 selectedRows.forEach(function (row) { report.setCellValue(12, row - 1, "4"); }); // 提交报表(触发报表内置的提交逻辑) report.writeReport(function () { // 提交成功后刷新页面 _g().refreshAllSheets(); }); }}); 1_计划初版 (2).zip