JavaScript代码实现
// 获取所有复选框控件
var checkboxes = _g().getWidgetsByName("checkbox_name");
// 设置需要获取数据的列号(例如获取C列的值则设为2)
var target_col = 2;
var selectedValues = [];
if (typeof(checkboxes[0]) != "undefined") {
var configs = [];
for (var i=0; i<checkboxes.length; i++) {
if (checkboxes[i].getValue()) { // 判断复选框是否选中
// 获取选中行的行列号(已兼容冻结场景)
var cr = FR.cellStr2ColumnRow(checkboxes[i].options.location);
// 记录选中行指定列的值
selectedValues.push(_g().getCellValue(0, target_col, cr.row));
/* 如果需要对选中行进行操作,例如设置批量修改值: */
configs.push({reportIndex:0, col:target_col, row:cr.row, value:"新值"});
}
}
// 关键冻结行适配(必须用setCellsValueInBatch)
_g().setCellsValueInBatch(configs);
} else {
if (checkboxes.getValue()) { // 当仅有一个复选框时
var cr = FR.cellStr2ColumnRow(checkboxes.options.location);
selectedValues.push(_g().getCellValue(0, target_col, cr.row));
}
}
console.log("选中行的C列值:", selectedValues); // 输出结果到控制台
冻结适配:
FR.cellStr2ColumnRow() 方法自动处理冻结行列映射,返回逻辑行列号。在需要修改值时必须使用 setCellsValueInBatch(),否则会造成样式错乱。1
字段获取:
target_col 参数为需要获取的列索引(首列从0开始)。如需获取不同列数据,按需修改此变量。
分页关联:
代码默认获取当前页选中的行,如需跨分页操作需要结合 分页遍历接口 实现。
📌 操作步骤
给复选按钮控件命名(如checkbox_name)
在填报页面添加「按钮控件」并绑定该JS代码
通过console.log或弹窗显示选中行的值
