JS实现弹窗后数据回填 - FineReport帮助文档 - 全面的报表使用教程和学习资料
插入多行的js,你自己按此方式修改
if (window.checkboxes) {
var pCode = [];// 创建数组
var pName = [];
var pValue = [];
var pkd = [];
var pxm = [];
var pyhm = [];
var pCnt = [];
var parentLocation = parent.window.pLocation;
var col = FR.cellStr2ColumnRow(parentLocation).col;
var row = FR.cellStr2ColumnRow(parentLocation).row;
for (var i = 0; i < checkboxes.length; i++) { // 循环遍历复选框对象数组checkboxes
var checked = checkboxes[i].selected();// selected()是帆软现有的方法,判断是否被选中
if (checked) {
var cr = FR
.cellStr2ColumnRow(window.checkboxes[i].options.location);
pCode.push(contentPane.getCellValue(cr.col + 2, cr.row));// 如果当前行复选框被选中,则把列号+2,获取该行产品ID的值,添加到数组pCode的尾部
pName.push(contentPane.getCellValue(cr.col + 3, cr.row));// 如果当前行复选框被选中,则把列号+2,获取该行产品ID的值,添加到数组pCode的尾部
pValue.push(contentPane.getCellValue(cr.col + 4, cr.row));// 如果当前行复选框被选中,则把列号+2,获取该行产品ID的值,添加到数组pCode的尾部
pCnt.push(contentPane.getCellValue(cr.col + 9, cr.row));// 如果当前行复选框被选中,则把列号+2,获取该行产品ID的值,添加到数组pCode的尾部
pkd.push(contentPane.getCellValue(cr.col + 5, cr.row));// 如果当前行复选框被选中,则把列号+2,获取该行产品ID的值,添加到数组pCode的尾部
pxm.push(contentPane.getCellValue(cr.col + 6, cr.row));// 如果当前行复选框被选中,则把列号+2,获取该行产品ID的值,添加到数组pCode的尾部、
pyhm.push(contentPane.getCellValue(cr.col + 7, cr.row));// 如果当前行复选框被选中,则把列号+2,获取该行产品ID的值,添加到数组pCode的尾部、
}
}
parent.contentPane
.appendReportRC(pCode.length - 1, parent.window.pLocation);// appendReportRC(插入行数,单元格号)是帆软现有方法,功能是插入行。parent.contentPane.appendReportRC就是向父页面插入行。由于父页面A5已经有一行了,这里就需要把选中复选框的个数pCode.length减去1
setTimeout(function() {// 延时100毫秒,由于父页面插入行有一个页面重载的过程,需要加延等父页面重载完成后,再对父页面回填数据。具体延时多少毫秒,依据父页面复杂程度适当调整
for (var i = 0; i < pCode.length; i++) {
var cellStr = FR.columnRow2CellStr({
col : col,
row : row + i
});
parent.contentPane.setCellValue(cellStr, null, pCode[i]); // 循环遍历pCode数组,把数组元素回填父页面相应的单元格
}
for (var i = 0; i < pName.length; i++) {
var cellStr = FR.columnRow2CellStr({
col : col+1,
row : row + i
});
parent.contentPane.setCellValue(cellStr, null, pName[i]); // 循环遍历pCode数组,把数组元素回填父页面相应的单元格
}
for (var i = 0; i < pValue.length; i++) {
var cellStr = FR.columnRow2CellStr({
col : col+2,
row : row + i
});
parent.contentPane.setCellValue(cellStr, null, pValue[i]); // 循环遍历pCode数组,把数组元素回填父页面相应的单元格
}
for (var i = 0; i < pCnt.length; i++) {
var cellStr = FR.columnRow2CellStr({
col : col+6,
row : row + i
});
parent.contentPane.setCellValue(cellStr, null, pCnt[i]); // 循环遍历pCode数组,把数组元素回填父页面相应的单元格
}
for (var i = 0; i < pkd.length; i++) {
var cellStr = FR.columnRow2CellStr({
col : col+3,
row : row + i
});
parent.contentPane.setCellValue(cellStr, null, pkd[i]); // 循环遍历pCode数组,把数组元素回填父页面相应的单元格
}
for (var i = 0; i < pxm.length; i++) {
var cellStr = FR.columnRow2CellStr({
col : col+4,
row : row + i
});
parent.contentPane.setCellValue(cellStr, null, pxm[i]); // 循环遍历pCode数组,把数组元素回填父页面相应的单元格
}
for (var i = 0; i < pyhm.length; i++) {
var cellStr = FR.columnRow2CellStr({
col : col+5,
row : row + i
});
parent.contentPane.setCellValue(cellStr, null, pyhm[i]);
}
parent.FR.closeDialog();
parent.FR.destroyDialog();
}, 500);
}