diff --git a/designer-realize/src/main/java/com/fr/design/write/submit/SmartInsertDBManipulationPane.java b/designer-realize/src/main/java/com/fr/design/write/submit/SmartInsertDBManipulationPane.java index 7b78673728..3818f1ac80 100644 --- a/designer-realize/src/main/java/com/fr/design/write/submit/SmartInsertDBManipulationPane.java +++ b/designer-realize/src/main/java/com/fr/design/write/submit/SmartInsertDBManipulationPane.java @@ -431,7 +431,7 @@ public class SmartInsertDBManipulationPane extends DBManipulationPane { if (oriCellSelection != null && isSameStartPoint(cellselection, oriCellSelection)) { dealDragSelection(add, cellselection, newValue); } else if (cellselection.getSelectedType() == CellSelection.CHOOSE_ROW || cellselection.getSelectedType() == CellSelection.CHOOSE_COLUMN) { - dealSelectColRow(add, cellselection); + dealSelectColRow(add, cellselection, newValue); } else { ColumnRow columnRow = ColumnRow.valueOf(cellselection.getColumn(), cellselection.getRow()); String allColumnRow = newValue.toString(); @@ -503,12 +503,15 @@ public class SmartInsertDBManipulationPane extends DBManipulationPane { return cs1.getColumn() == cs2.getColumn() && cs1.getRow() == cs2.getRow(); } - private void dealSelectColRow(ColumnRowGroup add, CellSelection se) { + private void dealSelectColRow(ColumnRowGroup add, CellSelection se, ColumnRowGroup newValue) { int c = se.getColumn(), cs = se.getColumnSpan(), r = se.getRow(), rs = se.getRowSpan(); for (int i = 0; i < cs; i++) { for (int j = 0; j < rs; j++) { - add.addColumnRow(ColumnRow.valueOf(c + i, r + j)); + ColumnRow columnRow = ColumnRow.valueOf(c + i, r + j); + if (!newValue.contains(columnRow)) { + add.addColumnRow(columnRow); + } } } }