From c807066d48aef1435801b87b3f28b7f75d5d6122 Mon Sep 17 00:00:00 2001 From: rinoux Date: Tue, 16 Aug 2022 15:16:02 +0800 Subject: [PATCH] =?UTF-8?q?REPORT-75140=20=E6=8A=BD=E8=B1=A1=E5=87=BA?= =?UTF-8?q?=E4=B8=80=E4=B8=AA=E5=A4=9A=E7=BB=93=E6=9E=9C=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E9=9B=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../design/data/BasicTableDataTreePane.java | 3 +- .../design/data/DesignTableDataManager.java | 31 ++++++++++--------- .../data/datapane/TableDataPaneListPane.java | 3 +- .../data/datapane/TableDataSourceOP.java | 8 ++--- .../data/datapane/TableDataTreePane.java | 3 +- .../tabledatapane/ProcedureDataPane.java | 6 ++-- .../wrapper/MultiResultTableDataWrapper.java | 2 +- .../wrapper/StoreProcedureDataWrapper.java | 2 +- 8 files changed, 29 insertions(+), 29 deletions(-) diff --git a/designer-base/src/main/java/com/fr/design/data/BasicTableDataTreePane.java b/designer-base/src/main/java/com/fr/design/data/BasicTableDataTreePane.java index 67e68b9699..28077f9df2 100644 --- a/designer-base/src/main/java/com/fr/design/data/BasicTableDataTreePane.java +++ b/designer-base/src/main/java/com/fr/design/data/BasicTableDataTreePane.java @@ -4,7 +4,6 @@ import com.fr.base.BaseUtils; import com.fr.base.TableData; import com.fr.data.MultiResultTableData; import com.fr.data.TableDataSource; -import com.fr.data.api.StoreProcedureAssist; import com.fr.design.DesignModelAdapter; import com.fr.design.actions.UpdateAction; import com.fr.design.data.datapane.TableDataCreatorProducer; @@ -184,7 +183,7 @@ public abstract class BasicTableDataTreePane extends DockingView implements Resp private boolean isIncludeUnderline(String name) { - return ComparatorUtils.equals(name.indexOf(StoreProcedureAssist.GROUP_MARKER), -1) ? false : true; + return ComparatorUtils.equals(name.indexOf(MultiResultTableData.GROUP_MARKER), -1) ? false : true; } public abstract void addDataPane(final AbstractTableDataPane uPanel, String paneName); diff --git a/designer-base/src/main/java/com/fr/design/data/DesignTableDataManager.java b/designer-base/src/main/java/com/fr/design/data/DesignTableDataManager.java index bc18dd8a32..f724942524 100644 --- a/designer-base/src/main/java/com/fr/design/data/DesignTableDataManager.java +++ b/designer-base/src/main/java/com/fr/design/data/DesignTableDataManager.java @@ -9,8 +9,10 @@ import com.fr.data.TableDataSourceTailor; import com.fr.data.core.DataCoreXmlUtils; import com.fr.data.impl.EmbeddedTableData; import com.fr.data.impl.NameDataModel; +import com.fr.data.impl.storeproc.ProcedureDataModel; import com.fr.data.impl.storeproc.StoreProcedure; import com.fr.data.impl.storeproc.StoreProcedureConstants; +import com.fr.data.impl.storeproc.StoreProcedureHelper; import com.fr.data.operator.DataOperator; import com.fr.design.DesignModelAdapter; import com.fr.design.data.datapane.preview.PreviewTablePane; @@ -322,9 +324,8 @@ public abstract class DesignTableDataManager { public static java.util.Map getAllDataSetIncludingProcedure(java.util.Map resMap) { java.util.LinkedHashMap dsMap = new java.util.LinkedHashMap(); - Iterator> entryIt = resMap.entrySet().iterator(); - while (entryIt.hasNext()) { - String key = entryIt.next().getKey(); + for (Entry entry : resMap.entrySet()) { + String key = entry.getKey(); TableDataWrapper tableDataWrapper = resMap.get(key); if (tableDataWrapper.getTableData() instanceof MultiResultTableData) { MultiResultTableData tableData = (MultiResultTableData) tableDataWrapper.getTableData(); @@ -333,9 +334,10 @@ public abstract class DesignTableDataManager { TableDataWrapper tdw = new MultiResultTableDataNameWrapper(name + "_Table", tableData); boolean hasSchemaOrResult = false; + // 存储过程的特殊处理,还有其它名称 if (tableData instanceof StoreProcedure) { StoreProcedure storeProcedure = (StoreProcedure) tableData; - StoreProcedureParameter[] parameters = StoreProcedure.getSortPara(storeProcedure.getParameters()); + StoreProcedureParameter[] parameters = StoreProcedureHelper.getSortPara(storeProcedure.getParameters()); for (StoreProcedureParameter parameter : parameters) { if (parameter.getSchema() != StoreProcedureConstants.IN) { @@ -345,20 +347,21 @@ public abstract class DesignTableDataManager { hasSchemaOrResult = true; } } - } else { - for (NameDataModel nameDataModel : tableData.getDataModelList()) { - String dmName = name + "_" + nameDataModel.getName(); - dsMap.put(nameDataModel.getName(), new MultiResultTableDataWrapper(tableData, name, dmName, false)); + } /*else { + // TODO getDataModelList是空的 + for (String n : tableData.getResultNames()) { + String dmName = name + "_" + n; + dsMap.put(n, new MultiResultTableDataWrapper(tableData, name, dmName, false)); } - } + }*/ if (!resultNames.isEmpty()) { hasSchemaOrResult = true; - for (int i = 0; i < resultNames.size(); i++) { - String parameterName = name + "_" + resultNames.get(i); - TableDataWrapper newTwd = new MultiResultTableDataWrapper(tableData, name, parameterName, false); - dsMap.put(parameterName, newTwd); + for (String resultName : resultNames) { + String dmName = name + "_" + resultName; + TableDataWrapper newTwd = new MultiResultTableDataWrapper(tableData, name, dmName, false); + dsMap.put(dmName, newTwd); } } @@ -622,7 +625,7 @@ public abstract class DesignTableDataManager { // 把storeProcedure写成xml文件到out DataCoreXmlUtils.writeXMLStoreProcedure(writer, storeProcedure, null); if (storeProcedure.getDataModelSize() > 0 && !storeProcedure.isFirstExpand()) { - return storeProcedure.creatLazyDataModel(); + return storeProcedure.getDataModelList().toArray(new ProcedureDataModel[0]); } ParameterProvider[] inParameters = DataOperator.getInstance().getStoreProcedureParameters(storeProcedure); diff --git a/designer-base/src/main/java/com/fr/design/data/datapane/TableDataPaneListPane.java b/designer-base/src/main/java/com/fr/design/data/datapane/TableDataPaneListPane.java index 4219f18c49..264a937999 100644 --- a/designer-base/src/main/java/com/fr/design/data/datapane/TableDataPaneListPane.java +++ b/designer-base/src/main/java/com/fr/design/data/datapane/TableDataPaneListPane.java @@ -5,7 +5,6 @@ import com.fr.base.TableDataBean; import com.fr.config.RemoteConfigEvent; import com.fr.data.MultiResultTableData; import com.fr.data.TableDataSource; -import com.fr.data.api.StoreProcedureAssist; import com.fr.design.data.BasicTableDataUtils; import com.fr.design.data.DesignTableDataManager; import com.fr.design.dialog.FineJOptionPane; @@ -137,7 +136,7 @@ public class TableDataPaneListPane extends JListControlPane implements TableData } private boolean isIncludeUnderline(String name) { - return name.contains(StoreProcedureAssist.GROUP_MARKER); + return name.contains(MultiResultTableData.GROUP_MARKER); } /** diff --git a/designer-base/src/main/java/com/fr/design/data/datapane/TableDataSourceOP.java b/designer-base/src/main/java/com/fr/design/data/datapane/TableDataSourceOP.java index d9ec4bb827..61c578453c 100644 --- a/designer-base/src/main/java/com/fr/design/data/datapane/TableDataSourceOP.java +++ b/designer-base/src/main/java/com/fr/design/data/datapane/TableDataSourceOP.java @@ -4,9 +4,9 @@ import com.fr.base.StoreProcedureParameter; import com.fr.base.TableData; import com.fr.data.MultiResultTableData; import com.fr.data.TableDataSource; -import com.fr.data.impl.NameDataModel; import com.fr.data.impl.storeproc.StoreProcedure; import com.fr.data.impl.storeproc.StoreProcedureConstants; +import com.fr.data.impl.storeproc.StoreProcedureHelper; import com.fr.design.DesignModelAdapter; import com.fr.design.data.DesignTableDataManager; import com.fr.design.data.tabledata.wrapper.MultiResultTableDataNameWrapper; @@ -203,7 +203,7 @@ public class TableDataSourceOP implements UserObjectOP { if (tableData instanceof StoreProcedure) { StoreProcedure storeProcedure = (StoreProcedure) tableData; - StoreProcedureParameter[] parameters = StoreProcedure.getSortPara(storeProcedure.getParameters()); + StoreProcedureParameter[] parameters = StoreProcedureHelper.getSortPara(storeProcedure.getParameters()); for (StoreProcedureParameter parameter : parameters) { if (parameter.getSchema() != StoreProcedureConstants.IN) { if (!nodeName.contains(parameter.getName())) { @@ -217,7 +217,7 @@ public class TableDataSourceOP implements UserObjectOP { } } } - } else { + } /*else { if (tableData.getDataModelList().size() > 1) { for (NameDataModel nameDataModel : tableData.getDataModelList()) { if (!nodeName.contains(nameDataModel.getName())) { @@ -231,7 +231,7 @@ public class TableDataSourceOP implements UserObjectOP { } } } - } + }*/ if (!resultNames.isEmpty()) { diff --git a/designer-base/src/main/java/com/fr/design/data/datapane/TableDataTreePane.java b/designer-base/src/main/java/com/fr/design/data/datapane/TableDataTreePane.java index 0df8c112de..880cccd2d5 100644 --- a/designer-base/src/main/java/com/fr/design/data/datapane/TableDataTreePane.java +++ b/designer-base/src/main/java/com/fr/design/data/datapane/TableDataTreePane.java @@ -3,7 +3,6 @@ package com.fr.design.data.datapane; import com.fr.base.TableData; import com.fr.data.MultiResultTableData; import com.fr.data.TableDataSource; -import com.fr.data.api.StoreProcedureAssist; import com.fr.data.impl.DBTableData; import com.fr.data.impl.TableDataSourceDependent; import com.fr.design.DesignModelAdapter; @@ -522,7 +521,7 @@ public class TableDataTreePane extends BasicTableDataTreePane { private boolean isIncludeUnderline(String name) { - return !ComparatorUtils.equals(name.indexOf(StoreProcedureAssist.GROUP_MARKER), -1); + return !ComparatorUtils.equals(name.indexOf(MultiResultTableData.GROUP_MARKER), -1); } @Override diff --git a/designer-base/src/main/java/com/fr/design/data/tabledata/tabledatapane/ProcedureDataPane.java b/designer-base/src/main/java/com/fr/design/data/tabledata/tabledatapane/ProcedureDataPane.java index dec6609205..b57ca864fd 100644 --- a/designer-base/src/main/java/com/fr/design/data/tabledata/tabledatapane/ProcedureDataPane.java +++ b/designer-base/src/main/java/com/fr/design/data/tabledata/tabledatapane/ProcedureDataPane.java @@ -289,16 +289,16 @@ public class ProcedureDataPane extends AbstractTableDataPane imp @Override protected Void doInBackground() throws Exception { DesignTableDataManager.setThreadLocal(DesignTableDataManager.NO_PARAMETER); - sp.setCalculating(true); + // sp.setCalculating(true); ProcedureDataModel[] dataModels = (ProcedureDataModel[]) DesignTableDataManager.createLazyDataModel(sp, false); - sp.refreshDataModelListAndResultNames(dataModels); + //sp.refreshDataModelListAndResultNames(dataModels); return null; } @Override public void done() { DesignTableDataManager.setThreadLocal(DesignTableDataManager.NO_PARAMETER); - sp.setCalculating(false); + // sp.setCalculating(false); doAfterProcudureDone(); fireDSChanged(); TableDataTreePane.getInstance(DesignModelAdapter.getCurrentModelAdapter()); diff --git a/designer-base/src/main/java/com/fr/design/data/tabledata/wrapper/MultiResultTableDataWrapper.java b/designer-base/src/main/java/com/fr/design/data/tabledata/wrapper/MultiResultTableDataWrapper.java index 2e351cf3c2..9b626f5951 100644 --- a/designer-base/src/main/java/com/fr/design/data/tabledata/wrapper/MultiResultTableDataWrapper.java +++ b/designer-base/src/main/java/com/fr/design/data/tabledata/wrapper/MultiResultTableDataWrapper.java @@ -71,7 +71,7 @@ public final class MultiResultTableDataWrapper implements TableDataWrapper { public MultiResultTableDataWrapper(Component component, MultiResultTableData tableData, String tableDataName, String dsName, boolean needLoad) { this.dsName = dsName; this.tableData = tableData; - this.tableData.setCalculating(false); + /*this.tableData.setCalculating(false);*/ this.tableDataName = tableDataName; if (component == null) { component = new JFrame(); diff --git a/designer-base/src/main/java/com/fr/design/data/tabledata/wrapper/StoreProcedureDataWrapper.java b/designer-base/src/main/java/com/fr/design/data/tabledata/wrapper/StoreProcedureDataWrapper.java index 1960fed7c8..9eb09376e5 100644 --- a/designer-base/src/main/java/com/fr/design/data/tabledata/wrapper/StoreProcedureDataWrapper.java +++ b/designer-base/src/main/java/com/fr/design/data/tabledata/wrapper/StoreProcedureDataWrapper.java @@ -76,7 +76,7 @@ public final class StoreProcedureDataWrapper implements TableDataWrapper { public StoreProcedureDataWrapper(Component component, StoreProcedure storeProcedure, String storeprocedureName, String dsName, boolean needLoad) { this.dsName = dsName; this.storeProcedure = storeProcedure; - this.storeProcedure.setCalculating(false); + /*this.storeProcedure.setCalculating(false);*/ this.storeprocedureName = storeprocedureName; if (component == null) { component = new JFrame();