Esempio n. 1
0
        /// <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));
        }
Esempio n. 2
0
/// <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;
        }
Esempio n. 3
0
        /// <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;
        }
Esempio n. 4
0
        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;
        }
Esempio n. 5
0
        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;
        }
Esempio n. 6
0
        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);
        }
Esempio n. 7
0
/// <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
            }
        }
Esempio n. 8
0
            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");
                }
            }
Esempio n. 9
0
        /// <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);
        }
Esempio n. 10
0
        /// <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);
        }
Esempio n. 11
0
        /// <summary>
        /// Construct wiith an initial grouping type selected
        /// </summary>
        /// <param name="groupingTypeId"></param>

        public AggregationDef(GroupingTypeEnum groupingTypeId)
        {
            Role         = AggregationRole.RowGrouping;
            GroupingType = groupingTypeId;
        }
Esempio n. 12
0
        /// <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;
        }