有没有大佬能看懂这段js,获取不到弹窗里的姓名,别的都能获取到 if (window.checkboxes) { var pCode = [];// 创建数组,用于记录被选中行的总部名称 var pName = [];// 创建数组,用于记录被选中行的大区名称 var pValue = [];// 创建数组,用于记录被选中行的经营部名称 var pkd = [];// 创建数组,用于记录被选中行的库点名称 var pxm = [];// 创建数组,用于记录被选中行的姓名 var pyhm = [];// 创建数组,用于记录被选中行的用户名 var pCnt = [];// 创建数组,用于记录被选中行的数量 var parentLocation = parent.window.pLocation;// 获得父页面产品代码文本框控件里赋值的window.pLocation var col = FR.cellStr2ColumnRow(parentLocation).col; var row = FR.cellStr2ColumnRow(parentLocation).row;// FR.cellStr2ColumnRow是帆软现有的方法,用途是把形如A1这样的单元格号转换成形如{col:0,row:0}这样的对象,这里把对象的col、row属性值分别赋予变量col、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 });// columnRow2CellStr是帆软现有方法,作用是把形如{col:0,row:0}的对象转成形如A1这样的单元格号 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 });// columnRow2CellStr是帆软现有方法,作用是把形如{col:0,row:0}的对象转成形如A1这样的单元格号 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 });// columnRow2CellStr是帆软现有方法,作用是把形如{col:0,row:0}的对象转成形如A1这样的单元格号 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 });// columnRow2CellStr是帆软现有方法,作用是把形如{col:0,row:0}的对象转成形如A1这样的单元格号 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 });// columnRow2CellStr是帆软现有方法,作用是把形如{col:0,row:0}的对象转成形如A1这样的单元格号 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 });// columnRow2CellStr是帆软现有方法,作用是把形如{col:0,row:0}的对象转成形如A1这样的单元格号 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 });// columnRow2CellStr是帆软现有方法,作用是把形如{col:0,row:0}的对象转成形如A1这样的单元格号 parent.contentPane.setCellValue(cellStr, null, pyhm[i]); // 循环遍历pCode数组,把数组元素回填父页面相应的单元格 } parent.FR.closeDialog(); parent.FR.destroyDialog();// 调用父页面的closeDialog和destroyDialog关闭销毁本子页面 }, 500); } |