Beispiel #1
0
        /// <summary>
        /// ShowAggregationTypeMenu
        /// </summary>
        /// <param name="qc"></param>
        /// <param name="ad"></param>
        /// <param name="p"></param>
        /// <param name="aggTypeChangedDelegate"></param>

        public static void ShowTypeMenu(
            QueryColumn qc,
            AggregationDef ad,
            Point p,
            AggregationTypeChangedDelegate aggTypeChangedDelegate)
        {
            AggregationDefMenus ats = new AggregationDefMenus();
            //if (qc.Aggregation == null) qc.Aggregation = new AggregationDef();

            int qtCount = -1;

            if (qc.QueryTable != null && qc.QueryTable.Query != null)
            {
                qtCount = qc.QueryTable.Query.Tables.Count;
            }

            bool includeGroupingItems = true;
            bool includeSummaryItems  = true;

            if (qc.IsKey && qtCount > 1)             // if key and more than one table in query then no summarization allowed (only allow grouping on key)
            {
                includeSummaryItems = false;
            }

            ContextMenuStrip menu = ats.SetupAggregationTypeMenu(qc, ad, aggTypeChangedDelegate, includeGroupingItems, includeSummaryItems);

            menu.Show(p);

            return;
        }
Beispiel #2
0
        /// <summary>
        /// BuildFieldPopupMenu
        /// </summary>
        /// <param name="e"></param>

        void BuildFieldPopupMenu(
            PopupMenuShowingEventArgs e)
        {
            PivotArea     area      = (PivotArea)(-1);
            string        areaName  = "";
            Image         areaImage = null;
            DXSubMenuItem smi;

            PivotGridFieldContext f = GetPivotGridFieldContext(e.Field);

            if (f == null)
            {
                return;
            }
            PivotGridField = f.F;             // save as current field

            ResultsField rfld = f.ResultsField;
            QueryColumn  qc   = f.Qc;

            GetFieldAreaAttributes(e, out area, out areaName, out areaImage);

            DXPopupMenu dxpMenu = e.Menu;             // clear dest menu

            dxpMenu.Items.Clear();

            AggregationDefMenus ats = new AggregationDefMenus();             // used to build menus

            // Build DataArea summary type items

            if (area == PivotArea.DataArea)
            {
                ContextMenuStrip modelMenu = ats.SetupAggregationTypeMenu(qc, f.Aggregation, null, includeGroupingItems: false, includeSummaryItems: true);
                ConvertAndAppendContextMenuStripToDxPopupMenu(modelMenu, dxpMenu);
            }

            // Build ColumnArea or RowArea Grouping items

            if (area == PivotArea.ColumnArea || area == PivotArea.RowArea)
            {
                ContextMenuStrip modelMenu = ats.SetupAggregationTypeMenu(qc, f.Aggregation, null, includeGroupingItems: true, includeSummaryItems: false);
                ConvertAndAppendContextMenuStripToDxPopupMenu(modelMenu, dxpMenu);
            }

            if (dxpMenu.Items.Count == 0)             // just add to menu if nothing there so far
            {
                smi = dxpMenu;
            }

            else             // add to submenu
            {
                smi            = new DXSubMenuItem("Move Field to");
                smi.BeginGroup = true;
                dxpMenu.Items.Add(smi);
            }

            smi.Items.Add(new DXMenuCheckItem("Column Area", area == PivotArea.ColumnArea, Bitmaps16x16.Images[0], ColumnAreaMenuItem_Click));
            smi.Items.Add(new DXMenuCheckItem("Row Area", area == PivotArea.RowArea, Bitmaps16x16.Images[1], RowAreaMenuItem_Click));
            smi.Items.Add(new DXMenuCheckItem("Data Area", area == PivotArea.DataArea, Bitmaps16x16.Images[2], DataAreaMenuItem_Click));
            smi.Items.Add(new DXMenuCheckItem("Filter Area", area == PivotArea.FilterArea, Bitmaps16x16.Images[3], FilterAreaMenuItem_Click));
            smi.Items.Add(new DXMenuCheckItem("None", area == (PivotArea)(-1), null, UnassignedAreaMenuItem_Click));

            return;
        }