/// <summary> /// Aggregation role changed /// </summary> /// <param name="ats"></param> private void AggregationRoleChanged(AggregationDefMenus ats) { FieldGridView.SetRowCellValue(FieldGridRow, "AggRoleCol", Field.Aggregation.RoleLabel); FieldGridView.SetRowCellValue(FieldGridRow, "AggTypeCol", Field.Aggregation.TypeLabel); Field.SyncDxAreaToMxRole(); // sync Dx area PivotGrid.RefreshData(); // refresh the PivotGrid to show new agg type results }
/// <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; }
private void ChangeRole(AggregationRole role) { PivotGridFieldMx f = PivotGridField; ResultsField rfld = f.ResultsField as ResultsField; MetaColumn mc = rfld.MetaColumn; f.Aggregation.Role = role; // set the role for Mobius f.Aggregation.SetDefaultTypeIfUndefined(mc); // and default type if needed f.SyncDxAreaToMxRole(); // sync Dx Area if (UpdateViewWhenGridControlChanges) { View.UpdateViewFieldsFromGridFields(); } return; }
/// <summary> /// Build the Grid fields for the PivotGridControl from the persisted Mobius view fields /// </summary> void BuildGridFieldsFromViewFields() { PivotGridFieldMx gf, gf2; PivotGridCtl.Fields.Clear(); PivotGridCtl.Groups.Clear(); PivotGridPropertiesMx p = PivotGridPropertiesMx; for (int fi = 0; fi < p.PivotFields.Count; fi++) // build grid fields from view fields { PivotGridFieldMx pf = p.PivotFields[fi]; ResultsField rfld = pf.ResultsField as ResultsField; if (rfld == null) { continue; } PivotGridControlMx.SetFieldCaption(pf); // be sure we have a caption Mobius.Data.QueryColumn qc = rfld.QueryColumn; MetaColumn mc = rfld.MetaColumn; gf = new PivotGridFieldMx(); pf.CopyField(gf); pf.SyncDxAreaToMxRole(); if (mc.IsKey) { gf.ImageIndex = (int)Bitmaps16x16Enum.Key; } else { gf.ImageIndex = (int)mc.DataTypeImageIndex; } gf.Options.AllowRunTimeSummaryChange = true; gf.Options.ShowUnboundExpressionMenu = true; PivotGridCtl.Fields.Add(gf); } return; }
/// <summary> /// Value tentatively changed /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void FieldGridView_CellValueChanging(object sender, CellValueChangedEventArgs e) { int ri = e.RowHandle; if (ri < 0) { return; } DataRow dr = FieldGridDataTable.Rows[ri]; GridColumn gc = e.Column; if (gc == null) { return; } int gci = gc.AbsoluteIndex; PivotGridFieldMx f = PivotGrid.Fields[ri] as PivotGridFieldMx; ResultsField rfld = f.ResultsField as ResultsField; Mobius.Data.QueryColumn qc = rfld.QueryColumn; MetaColumn mc = qc.MetaColumn; if (gc.FieldName == "FieldNameCol") { return; // wait til move out of cell } else if (gc.FieldName == "AggRoleCol") { //e=e; //object o = e.Value; //DataRow dr2 = FieldGridDataTable.Rows[e.RowHandle]; //object vo = dr2["AggRoleCol"]; //FieldGridDataTable f.SyncDxAreaToMxRole(); // sync Dx area PivotGrid.RefreshData(); // refresh the PivotGrid to show new agg type results //dr["AggRoleCol"] = f.Aggregation.TypeLabel; return; // throw new NotImplementedException(); //string txt = e.Value.ToString(); //if (Lex.IsNullOrEmpty(txt) || Lex.Eq(txt, "None")) //{ // f.Visible = false; // dr["SummaryTypeCol"] = ""; // //dr["HeaderBinningCol"] = ""; //} //else //{ // f.Area = (PivotArea)Enum.Parse(typeof(PivotArea), txt); // f.Visible = true; // dr["SummaryTypeCol"] = SummaryTypeLabel(f); // //dr["HeaderBinningCol"] = GroupingTypeLabel(f); //} //PivotGrid.SetFilterHeaderVisibility(); } else if (gc.FieldName == "AggTypeCol") { return; } //else if (gc.FieldName == "HeaderBinningCol") //{ // return; //} else if (gc.FieldName == "SourceColumnCol" || gc.FieldName == "SourceTableCol") { return; } else { return; // something else } }