/// <summary> /// Summary type selected /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void AggregationTypeMenuItem_Click(object sender, EventArgs e) { PivotGridFieldMx f = PivotGridField; DXMenuItem mi = sender as DXMenuItem; string typeName = mi.Tag.ToString(); // tag is enum member name AggregationTypeDetail atd = AggregationTypeDetail.GetByTypeName(typeName, true); if (atd.IsGroupingType && atd.GroupingType == GroupingTypeEnum.NumericInterval) { DialogResult dr = NumericIntervalDialog.ShowDialog(f.Aggregation, UIMisc.MousePosition); //if (dr == DialogResult.Cancel) return; } f.Aggregation.SetFromTypeName(typeName); f.SyncDxAreaToMxRole(); // sync Dx area PivotGrid.RefreshData(); if (UpdateViewWhenGridControlChanges) { View.UpdateViewFieldsFromGridFields(); } return; }
/// <summary> /// The area that a field is located in has changed. /// If changed by the DX UI then the added members in PivotGridFieldMx must be updated /// If changed by Mobius code (InSetup = true) then nothing needed here. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void Grid_FieldAreaChanged(object sender, PivotFieldEventArgs e) { if (InSetup) { return; } try { InSetup = true; PivotGridFieldContext fc = GetPivotGridFieldContext(e.Field); if (fc == null) { return; } PivotGridFieldMx f = fc.F; f.SyncMxRoleToDxArea(); ResultsField rfld = fc.ResultsField; if (rfld == null || rfld.MetaColumn == null) { return; } f.Aggregation.SetDefaultTypeIfUndefined(rfld.MetaColumn); // may need to set default type as well PivotGridControlMx.SetFieldCaption(f); PivotGrid.RefreshData(); // recalc summaries if (UpdateViewWhenGridControlChanges) { View.UpdateViewFieldsFromGridFields(); } return; } finally { InSetup = false; } }