Browse Source

REPORT-4840 单元格元素数据列 数据汇总方法设置不能保存

master
yaoh.wu 8 years ago
parent
commit
046a7e7f95
  1. 37
      designer/src/com/fr/design/dscolumn/ResultSetGroupDockingPane.java
  2. 2
      designer/src/com/fr/quickeditor/cellquick/CellDSColumnEditor.java

37
designer/src/com/fr/design/dscolumn/ResultSetGroupDockingPane.java

@ -23,7 +23,7 @@ import java.awt.event.ItemListener;
* 这个pane是选中数据列后在上方QuickRegion处显示的pane * 这个pane是选中数据列后在上方QuickRegion处显示的pane
* *
* @author zhou, yaoh.wu * @author zhou, yaoh.wu
* @version 2017年8月2日14点55 * @version 2017年9月26日17点22
* @since 8.0 * @since 8.0
*/ */
public class ResultSetGroupDockingPane extends ResultSetGroupPane { public class ResultSetGroupDockingPane extends ResultSetGroupPane {
@ -115,13 +115,13 @@ public class ResultSetGroupDockingPane extends ResultSetGroupPane {
@Override @Override
public void populate(TemplateCellElement cellElement) { public void populate(TemplateCellElement cellElement) {
//更新面板信息时可能会触发绑定在组件上的事件,先移除这些事件
this.removeListener();
this.cellElement = cellElement; this.cellElement = cellElement;
if (isNPE(cellElement)) {
if (isNPE(cellElement)) return; return;
}
DSColumn dSColumn = (DSColumn) cellElement.getValue(); DSColumn dSColumn = (DSColumn) cellElement.getValue();
// populate groupPane
// RecordGrouper
recordGrouper = dSColumn.getGrouper(); recordGrouper = dSColumn.getGrouper();
if (recordGrouper instanceof FunctionGrouper && !((FunctionGrouper) recordGrouper).isCustom()) { if (recordGrouper instanceof FunctionGrouper && !((FunctionGrouper) recordGrouper).isCustom()) {
int mode = recordGrouper.getDivideMode(); int mode = recordGrouper.getDivideMode();
@ -153,13 +153,16 @@ public class ResultSetGroupDockingPane extends ResultSetGroupPane {
this.groupComboBox.setSelectedIndex(ADVANCED); this.groupComboBox.setSelectedIndex(ADVANCED);
} }
checkButtonEnabled(); checkButtonEnabled();
//加上面板组件的交互事件监听
this.addListener();
} }
@Override @Override
public void update() { public void update() {
if (isNPE(cellElement)) return; if (isNPE(cellElement)) {
return;
}
DSColumn dSColumn = (DSColumn) cellElement.getValue(); DSColumn dSColumn = (DSColumn) cellElement.getValue();
if (this.goBox.getSelectedIndex() == BIND_GROUP) { if (this.goBox.getSelectedIndex() == BIND_GROUP) {
recordGrouper = updateGroupCombox(); recordGrouper = updateGroupCombox();
} else if (this.goBox.getSelectedIndex() == BIND_SELECTED) { } else if (this.goBox.getSelectedIndex() == BIND_SELECTED) {
@ -206,10 +209,8 @@ public class ResultSetGroupDockingPane extends ResultSetGroupPane {
cardPane.repaint(); cardPane.repaint();
} }
public void addListener(ItemListener listener) {
goBox.addItemListener(listener); public void setListener(ItemListener listener) {
groupComboBox.addItemListener(listener);
functionComboBox.addItemListener(listener);
this.listener = listener; this.listener = listener;
} }
@ -221,4 +222,16 @@ public class ResultSetGroupDockingPane extends ResultSetGroupPane {
public void setRecordGrouper(RecordGrouper recordGrouper) { public void setRecordGrouper(RecordGrouper recordGrouper) {
this.recordGrouper = recordGrouper; this.recordGrouper = recordGrouper;
} }
private void addListener() {
goBox.addItemListener(this.listener);
groupComboBox.addItemListener(this.listener);
functionComboBox.addItemListener(this.listener);
}
private void removeListener() {
goBox.removeItemListener(this.listener);
groupComboBox.removeItemListener(this.listener);
functionComboBox.removeItemListener(this.listener);
}
} }

2
designer/src/com/fr/quickeditor/cellquick/CellDSColumnEditor.java

@ -219,7 +219,7 @@ public class CellDSColumnEditor extends CellQuickEditor {
dataPane = new SelectedDataColumnPane(true, true, tc, cellElement); dataPane = new SelectedDataColumnPane(true, true, tc, cellElement);
groupPane = new ResultSetGroupDockingPane(); groupPane = new ResultSetGroupDockingPane();
dataPane.addListener(dataListener); dataPane.addListener(dataListener);
groupPane.addListener(groupListener); groupPane.setListener(groupListener);
double[] rowSize = {P}, columnSize = {P, F}; double[] rowSize = {P}, columnSize = {P, F};
UILabel uiLabel = new UILabel(Inter.getLocText("FR-Designer_Filter_Conditions")); UILabel uiLabel = new UILabel(Inter.getLocText("FR-Designer_Filter_Conditions"));

Loading…
Cancel
Save