diff --git a/designer-realize/src/main/java/com/fr/design/mainframe/CellWidgetPropertyPane.java b/designer-realize/src/main/java/com/fr/design/mainframe/CellWidgetPropertyPane.java index eac4c3e0d9..bb4b2650ee 100644 --- a/designer-realize/src/main/java/com/fr/design/mainframe/CellWidgetPropertyPane.java +++ b/designer-realize/src/main/java/com/fr/design/mainframe/CellWidgetPropertyPane.java @@ -111,6 +111,8 @@ public class CellWidgetPropertyPane extends BasicPane { if (finalCS.isSelectedOneCell(ePane)) { if (tplEC.getTemplateCellElement(cellElement.getColumn(), cellElement.getRow()) == null) {//cellElement未加入到report中时要添加进去 tplEC.addCellElement(cellElement); + } else { + cellElement = tplEC.getTemplateCellElement(finalCS.getColumn(), finalCS.getRow()); } setCellWidget(cellWidget, cellElement); } else { @@ -141,6 +143,8 @@ public class CellWidgetPropertyPane extends BasicPane { if(finalCS.isSelectedOneCell(ePane)){ if(tplEC.getTemplateCellElement(cellElement.getColumn(), cellElement.getRow())== null){//cellElement未加入到report中时要添加进去 tplEC.addCellElement(cellElement); + } else { + cellElement = tplEC.getTemplateCellElement(finalCS.getColumn(), finalCS.getRow()); } setCellWidget(cellWidget, cellElement); }else{ diff --git a/designer-realize/src/main/java/com/fr/design/mainframe/cell/settingpane/AbstractCellAttrPane.java b/designer-realize/src/main/java/com/fr/design/mainframe/cell/settingpane/AbstractCellAttrPane.java index bc8e5e86e6..83ef31eaa9 100644 --- a/designer-realize/src/main/java/com/fr/design/mainframe/cell/settingpane/AbstractCellAttrPane.java +++ b/designer-realize/src/main/java/com/fr/design/mainframe/cell/settingpane/AbstractCellAttrPane.java @@ -4,6 +4,7 @@ import com.fr.design.mainframe.AbstractAttrPane; import com.fr.design.mainframe.ElementCasePane; import com.fr.grid.selection.CellSelection; import com.fr.grid.selection.FloatSelection; +import com.fr.report.cell.DefaultTemplateCellElement; import com.fr.report.cell.TemplateCellElement; import com.fr.report.elementcase.TemplateElementCase; @@ -44,8 +45,17 @@ public abstract class AbstractCellAttrPane extends AbstractAttrPane { * 分成两个方法的意义在于,这个面板如果是个对话框,那么可以传cellElement进来update, 方便重复使用面板 为了对话框做准备 */ public void updateBean() { - updateBean(this.cellElement); + if (elementCasePane == null) { + return; + } + cs = (CellSelection) elementCasePane.getSelection(); TemplateElementCase elementCase = elementCasePane.getEditingElementCase(); - elementCase.addCellElement(cellElement); + TemplateCellElement cellElement = elementCase.getTemplateCellElement(cs.getColumn(), cs.getRow()); + if (cellElement == null) { + cellElement = new DefaultTemplateCellElement(cs.getColumn(), cs.getRow()); + } + this.cellElement = cellElement; + elementCase.addCellElement(this.cellElement); + updateBean(this.cellElement); } } \ No newline at end of file