diff --git a/designer-base/src/main/java/com/fr/design/data/tabledata/paste/TableDataFollowingPasteUtils.java b/designer-base/src/main/java/com/fr/design/data/tabledata/paste/TableDataFollowingPasteUtils.java index ffeb9e5f62..465c0361a7 100644 --- a/designer-base/src/main/java/com/fr/design/data/tabledata/paste/TableDataFollowingPasteUtils.java +++ b/designer-base/src/main/java/com/fr/design/data/tabledata/paste/TableDataFollowingPasteUtils.java @@ -16,7 +16,9 @@ import com.fr.form.ui.DictionaryContainer; import com.fr.form.ui.Widget; import com.fr.form.ui.concept.data.ValueInitializer; import com.fr.report.cell.tabledata.ElementUsedTableDataProvider; +import com.fr.stable.StringUtils; +import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -43,15 +45,23 @@ public class TableDataFollowingPasteUtils { TableDataTreePane tableDataTreePane = (TableDataTreePane) TableDataTreePane.getInstance(currentModelAdapter); // 粘贴(添加)数据集 for (Map.Entry dataWrapperEntry : tableDataWrapperMap.entrySet()) { - String oldName = dataWrapperEntry.getKey(); + String dsName = dataWrapperEntry.getKey(); // 处理名称重复情况 - String dsName = tableDataTreePane.getNoRepeatedDsName4Paste(oldName); + if (isDsNameRepeated(dsName)) { + continue; + } AbstractTableDataWrapper tableDataWrapper = new TemplateTableDataWrapper(dataWrapperEntry.getValue(), dsName); AbstractTableDataPane tableDataPane = tableDataWrapper.creatTableDataPane(); tableDataTreePane.addDataPane(tableDataPane, dsName); } } + private static boolean isDsNameRepeated(String dsName) { + DesignModelAdapter currentModelAdapter = DesignModelAdapter.getCurrentModelAdapter(); + String[] allDSNames = DesignTableDataManager.getAllDSNames(currentModelAdapter.getBook()); + return Arrays.stream(allDSNames).anyMatch(name -> StringUtils.equals(name, dsName)); + } + /** * 处理 ElementUsedTableDataProvider,从中获取数据集名称 - 数据集Wrapper 的Map *