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 f9433aade..418a080b6 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 @@ -27,6 +27,7 @@ import com.fr.design.selection.SelectionListener; import com.fr.grid.selection.CellSelection; import com.fr.grid.selection.FloatSelection; import com.fr.grid.selection.Selection; +import com.fr.report.cell.TemplateCellElement; import com.fr.stable.ColumnRow; import com.fr.stable.ColumnRowGroup; import com.fr.stable.StringUtils; @@ -451,14 +452,27 @@ public class SmartInsertDBManipulationPane extends DBManipulationPane { int r = cellselection.getRow(); int rs = cellselection.getRowSpan(); String allColumnRow = newValue.toString(); + System.out.println("all: " + allColumnRow); newAdd.clear(); for (int i = 0; i < cs; i++) { for (int j = 0; j < rs; j++) { - ColumnRow columnRow = ColumnRow.valueOf(c + i, r + j); - if (!allColumnRow.contains(columnRow.toString())) { - add.addColumnRow(columnRow); + TemplateCellElement cellElement = ePane.getEditingElementCase().getTemplateCellElement(c + i, r + j ); + if (cellElement != null && ((i + c) != 0 || (r + j) != 0)) { + String value = cellElement.toString(); + System.out.println(newAdd); + if (!newAdd.contains(value) && !allColumnRow.contains(value)) { + add.addColumnRow(ColumnRow.valueOf(value)); + } + newAdd.add(value); + } + + if (cellElement == null) { + ColumnRow columnRow = ColumnRow.valueOf(c + i, r + j); + if (!allColumnRow.contains(columnRow.toString())) { + add.addColumnRow(columnRow); + } + newAdd.add(columnRow.toString()); } - newAdd.add(columnRow.toString()); } } int oldSize = oldAdd.size();