/// <summary> /// Add a new field associated with specified ResultsField /// </summary> /// <param name="rfld"></param> /// <returns></returns> internal static PivotGridFieldMx AddField( ResultsField rfld, List <PivotGridFieldMx> Fields, PivotGridGroup group, GroupingTypeEnum pgi) { return(AddField(rfld, Fields, PivotArea.RowArea, false, group, pgi)); }
/// <summary> /// Set role and default grouping/summary type based on the metacolumn type /// </summary> /// <param name="role"></param> /// <param name="mct"></param> public void SetDefaultTypeIfUndefined( MetaColumn mc, bool setIfAlreadyDefined = false) { MetaColumnType mct = mc.DataType; if (IsGroupingType) { if (mct == MetaColumnType.Date && GroupingType == GroupingTypeEnum.EqualValues) { GroupingType = GroupingTypeEnum.Date; // fixup for date types } if (GroupingType == GroupingTypeEnum.Undefined || setIfAlreadyDefined) { if (mct == MetaColumnType.Date) { GroupingType = GroupingTypeEnum.Date; } else { GroupingType = GroupingTypeEnum.EqualValues; } } } else if (Role == AggregationRole.DataSummary) { if (SummaryType == SummaryTypeEnum.Undefined || setIfAlreadyDefined) { if (MetaColumn.IsNumericMetaColumnType(mct)) { if (mc.SinglePoint && mc.MultiPoint) { SummaryType = SummaryTypeEnum.ResultMean; } else if (mc.MultiPoint) { SummaryType = SummaryTypeEnum.GeometricMean; } else { SummaryType = SummaryTypeEnum.ArithmeticMean; } } else { SummaryType = SummaryTypeEnum.Count; } } } return; }
/// <summary> /// Copy values from view to form /// </summary> void Setup(GroupingTypeEnum tpt) { InSetup = true; switch (tpt) { case GroupingTypeEnum.Date: Date.Checked = true; break; case GroupingTypeEnum.DateDay: DateDayOfMonth.Checked = true; break; case GroupingTypeEnum.DateDayOfWeek: DateDayOfWeek.Checked = true; break; case GroupingTypeEnum.DateDayOfYear: DateDayOfYear.Checked = true; break; case GroupingTypeEnum.DateWeekOfMonth: DateWeekOfMonth.Checked = true; break; case GroupingTypeEnum.DateWeekOfYear: DateWeekOfYear.Checked = true; break; case GroupingTypeEnum.DateMonth: DateMonth.Checked = true; break; case GroupingTypeEnum.DateQuarter: DateQuarter.Checked = true; break; case GroupingTypeEnum.DateYear: DateYear.Checked = true; break; default: None.Checked = true; break; } InSetup = false; return; }
public void SetFromDetail(AggregationTypeDetail atd) { if ((Role == AggregationRole.ColumnGrouping && atd.Role == AggregationRole.RowGrouping) || (Role == AggregationRole.RowGrouping && atd.Role == AggregationRole.ColumnGrouping)) { Role = Role; // don't change role if both are grouping roles } else { Role = atd.Role; } SummaryType = atd.SummaryTypeId; GroupingType = atd.GroupingType; return; }
private void OK_Click(object sender, EventArgs e) { if (Date.Checked) { TimePeriodType = GroupingTypeEnum.Date; } else if (DateDayOfMonth.Checked) { TimePeriodType = GroupingTypeEnum.DateDay; } else if (DateDayOfWeek.Checked) { TimePeriodType = GroupingTypeEnum.DateDayOfWeek; } else if (DateDayOfYear.Checked) { TimePeriodType = GroupingTypeEnum.DateDayOfYear; } else if (DateWeekOfMonth.Checked) { TimePeriodType = GroupingTypeEnum.DateWeekOfMonth; } else if (DateWeekOfYear.Checked) { TimePeriodType = GroupingTypeEnum.DateWeekOfYear; } else if (DateMonth.Checked) { TimePeriodType = GroupingTypeEnum.DateMonth; } else if (DateQuarter.Checked) { TimePeriodType = GroupingTypeEnum.DateQuarter; } else if (DateYear.Checked) { TimePeriodType = GroupingTypeEnum.DateYear; } else if (None.Checked) { TimePeriodType = GroupingTypeEnum.EqualValues; } DialogResult = DialogResult.OK; return; }
public static AggregationTypeDetail AddGroupingTypeItem( GroupingTypeEnum groupingType, string label, GroupingMethodDelegate groupingDelegate = null, string format = "", Bitmaps16x16Enum image = Bitmaps16x16Enum.None) { AggregationTypeDetail item = new AggregationTypeDetail(); item.Role = AggregationRole.RowGrouping; item.GroupingType = groupingType; item.TypeName = groupingType.ToString(); item.GroupingMethod = groupingDelegate; AddAggTypeDetailItem(item, label, format, image); return(item); }
/// <summary> /// Key Mobius classes related to and/or extending the DX classes /// </summary> void PivotGridControlMx() { PivotGridControlMx pgcMx = new PivotGridControlMx(); // Mx method extensions of the DX PivotGridControl PivotGridFieldMx pgfMx = pgcMx.Fields[0] as PivotGridFieldMx; // Mx extensions of the DX PivotGridField { AggregationDef ad = pgfMx.Aggregation; // Grouping and summarization for Mx field { AggregationRole ar = ad.Role; // Role of field in agg/pivot (similar to DX Area) SummaryTypeEnum st = ad.SummaryType; // Type of Mx summary GroupingTypeEnum gt = ad.GroupingType; // Type of Mx grouping Decimal nis = ad.NumericIntervalSize; // interval size for numeric grouping } ResultsField rfld = pgfMx.ResultsField as ResultsField; // Mobius ResultsField, QueryColumn and MetaColumn associated with field } }
public static dynamic GetTSObject(GroupingTypeEnum dynEnum) { var tsType = TSActivator.CreateInstance("Tekla.Structures.Model.RebarPropertyModifier.GroupingTypeEnum").GetType(); switch (dynEnum) { case GroupingTypeEnum.AUTOMATIC: return(System.Enum.Parse(tsType, "AUTOMATIC")); case GroupingTypeEnum.MANUAL: return(System.Enum.Parse(tsType, "MANUAL")); case GroupingTypeEnum.NO_GROUPING: return(System.Enum.Parse(tsType, "NO_GROUPING")); default: throw new DynamicAPIException(dynEnum.ToString() + "- enum value is not implemented"); } }
/// <summary> /// Add a new field associated with specified ResultsField /// </summary> /// <param name="rfld"></param> /// <param name="Fields"></param> /// <param name="area"></param> /// <param name="visible"></param> /// <param name="pgi"></param> /// <returns></returns> internal static PivotGridFieldMx AddField( ResultsField rfld, List <PivotGridFieldMx> Fields, PivotArea area, bool visible, PivotGridGroup group, GroupingTypeEnum pgi) { QueryColumn qc = rfld.QueryColumn; MetaColumn mc = qc.MetaColumn; QueryTable qt = qc.QueryTable; PivotGridFieldMx f = new PivotGridFieldMx(); if (mc.IsKey) { f.ImageIndex = (int)Bitmaps16x16Enum.Key; } else { f.ImageIndex = (int)mc.DataTypeImageIndex; } f.UnboundFieldName = qt.Alias + "." + mc.Name + // identify by tableAlias.mcName (allows multiple instances of same metatable in query) "." + (UnboundFieldNameCount++); // and make unique in case used in multiple PivotGroupIntervals (needed?) f.ResultsField = rfld; // store associated results field f.SummaryTypeMx = SummaryTypeEnum.Count; f.Area = area; f.Visible = visible; // if not visible then put in list of unused fields f.Aggregation.GroupingType = pgi; PivotGridControlMx.SetFieldCaption(f); Fields.Add(f); if (group != null) { group.Add(f); // add to group } return(f); }
/// <summary> /// Show dialog & process results /// </summary> /// <returns></returns> public static DialogResult ShowDialog( ref GroupingTypeEnum timePeriodType) { if (Instance == null) { Instance = new DateGroupingDialog(); } DateGroupingDialog i = Instance; i.TimePeriodType = timePeriodType; i.Setup(timePeriodType); DialogResult dr = i.ShowDialog(SessionManager.ActiveForm); if (dr == DialogResult.OK) { timePeriodType = i.TimePeriodType; } return(dr); }
/// <summary> /// Construct wiith an initial grouping type selected /// </summary> /// <param name="groupingTypeId"></param> public AggregationDef(GroupingTypeEnum groupingTypeId) { Role = AggregationRole.RowGrouping; GroupingType = groupingTypeId; }
/// <summary> /// Render the view into the specified results control /// </summary> public override void ConfigureRenderingControl() { Query q; ResultsFormat rf = ResultsFormat; ResultsTable rt; QueryTable qt; MetaTable mt; ResultsField rfld; Mobius.Data.QueryColumn qc; MetaColumn mc; PivotGridField pgf; bool includeActivityClass = true; if (!BuildUnpivotedResults(includeActivityClass)) { return; } PivotGridPropertiesMx p = PivotGridPropertiesMx; if (p == null) { return; } if (p.PivotFields == null) // if not defined then configure { PivotGridCtl.Fields.Clear(); // clear any prev display PivotGridCtl.Groups.Clear(); if (DataIncludesDates) { DialogResult dr = DateGroupingDialog.ShowDialog(ref DateGroupInterval); } p.PivotFields = new List <PivotGridFieldMx>(); foreach (ResultsTable rt0 in rf.Tables) // determine visible fields { rt = rt0; qt = rt.QueryTable; mt = qt.MetaTable; if (Lex.Eq(mt.Name, MultiDbAssayDataNames.CombinedNonSumTableName)) { if ((rfld = rt.GetResultsFieldByName("activity_bin")) != null) { pgf = PivotGridView.AddField(rfld, p.PivotFields, PivotArea.RowArea, true, null, GroupingTypeEnum.EqualValues); } if ((rfld = rt.GetResultsFieldByName("run_dt")) != null && DataIncludesDates && DateGroupInterval != GroupingTypeEnum.EqualValues) { GroupingTypeEnum pgi = DateGroupInterval; int intervalCnt = 0; bool week = false, month = false, year = false; // include larger date units up to year if (pgi == GroupingTypeEnum.DateDayOfWeek) { week = month = year = true; intervalCnt = 3; } else if (pgi == GroupingTypeEnum.DateWeekOfMonth) { intervalCnt = 3; month = year = true; } else if (pgi == GroupingTypeEnum.DateMonth || pgi == GroupingTypeEnum.DateQuarter) { year = true; } PivotGridGroup g = null; if (intervalCnt > 1) { g = new PivotGridGroup(); PivotGridCtl.Groups.Add(g); } if (year) { PivotGridView.AddField(rfld, p.PivotFields, PivotArea.ColumnArea, true, g, GroupingTypeEnum.DateYear); } if (month) { PivotGridView.AddField(rfld, p.PivotFields, PivotArea.ColumnArea, true, g, GroupingTypeEnum.DateMonth); } if (week) { PivotGridView.AddField(rfld, p.PivotFields, PivotArea.ColumnArea, true, g, GroupingTypeEnum.DateWeekOfMonth); } PivotGridView.AddField(rfld, p.PivotFields, PivotArea.ColumnArea, true, g, pgi); } if ((rfld = rt.GetResultsFieldByName("assy_nm")) != null) { pgf = PivotGridView.AddField(rfld, p.PivotFields, PivotArea.ColumnArea, true, null, GroupingTypeEnum.EqualValues); } if ((rfld = rt.GetResultsFieldByName("rslt_val")) != null) { pgf = PivotGridView.AddField(rfld, p.PivotFields, PivotArea.DataArea, true, null, GroupingTypeEnum.EqualValues); } } else // tables other than the standard pivoted table { foreach (ResultsField rfld0 in rt.Fields) { rfld = rfld0; qc = rfld.QueryColumn; mc = qc.MetaColumn; } } } } // done defining initial set of fields SyncMxFieldListWithSourceQuery(BaseQuery, ref p.PivotFields); // be sure main grid & pivot view fields are in synch ConfigurePivotGridControl(); // configure the control to display the data PivotGridCtl.DataSource = Qm.DataTableManager.DataSource; // set the data table to start rendering return; }