Browse Source

Pull request #3746: REPORT-46723 填报智能添加单元格组

Merge in DESIGN/design from ~HADES/design:final/10.0 to final/10.0

* commit '83afc03993bac1684ac9074b66b4c7408f9c5012':
  REPORT-46723 填报智能添加单元格组 遗漏一个判断条件的同步修改
  REPORT-46723 填报智能添加单元格组
final/10.0
Kara 4 years ago
parent
commit
668b010c55
  1. 26
      designer-realize/src/main/java/com/fr/design/write/submit/SmartInsertDBManipulationPane.java

26
designer-realize/src/main/java/com/fr/design/write/submit/SmartInsertDBManipulationPane.java

@ -310,9 +310,9 @@ public class SmartInsertDBManipulationPane extends DBManipulationPane {
// 单元格组要记录下之前的选中情况
private CellSelection oriCellSelection = null;
private List<String> newAdd = new ArrayList<String>();
private List<ColumnRow> newAdd = new ArrayList<>();
private List<String> oldAdd = new ArrayList<String>();
private List<ColumnRow> oldAdd = new ArrayList<>();
public SmartJTablePane4DB(KeyColumnTableModel model, ElementCasePane actionReportPane) {
this(model, actionReportPane, false);
@ -433,7 +433,8 @@ public class SmartInsertDBManipulationPane extends DBManipulationPane {
if (!allColumnRow.contains(columnRow.toString())) {
add.addColumnRow(columnRow);
}
// 重新更换区域框选单元格后 清理历史框选
oldAdd.clear();
}
if (add.getSize() > 0) {
@ -459,10 +460,11 @@ public class SmartInsertDBManipulationPane extends DBManipulationPane {
TemplateCellElement cellElement = ePane.getEditingElementCase().getTemplateCellElement(c + i, r + j);
if (cellElement != null && ((i + c) != 0 || (r + j) != 0)) {
String value = cellElement.toString();
if (!newAdd.contains(value) && !allColumnRow.contains(value)) {
add.addColumnRow(ColumnRow.valueOf(value));
ColumnRow columnRow = ColumnRow.valueOf(value);
if (!newAdd.contains(columnRow) && !allColumnRow.contains(value)) {
add.addColumnRow(columnRow);
}
newAdd.add(value);
newAdd.add(columnRow);
}
if (cellElement == null) {
@ -470,16 +472,14 @@ public class SmartInsertDBManipulationPane extends DBManipulationPane {
if (!allColumnRow.contains(columnRow.toString())) {
add.addColumnRow(columnRow);
}
newAdd.add(columnRow.toString());
}
newAdd.add(columnRow);
}
}
int oldSize = oldAdd.size();
int newSize = newAdd.size();
if (oldSize > newSize && oldAdd.containsAll(newAdd)) {
int diff = oldSize - newSize;
newValue.splice(newValue.getSize() - diff, diff);
}
// 计算出前后两次选中的差值
oldAdd.removeAll(newAdd);
// 移除差值部分
newValue.removeAll(oldAdd);
oldAdd.clear();
oldAdd.addAll(newAdd);
}

Loading…
Cancel
Save