Ejemplo n.º 1
0
        /// <summary>
        /// Erweiterung der Popup-Menüs
        /// </summary>
        private void OnPopupMenuShowing(object sender, PopupMenuShowingEventArgs e)
        {
            PivotGridField pivotGridField = e.HitInfo.HeaderField;

            if (pivotGridField != null)
            {
                // PivotSummaryType
                DXSubMenuItem summaryMenuItem = new DXSubMenuItem {
                    Caption = "Zusammenfassung", BeginGroup = true
                };
                e.Menu.Items.Add(summaryMenuItem);
                Dictionary <string, PivotSummaryType> summaryTypes = new Dictionary <string, PivotSummaryType>
                {
                    { "Summe", PivotSummaryType.Sum },
                    { "Durchschnitt", PivotSummaryType.Average },
                    { "Anzahl", PivotSummaryType.Count },
                    { "Minimum", PivotSummaryType.Min },
                    { "Maximum", PivotSummaryType.Max },
                };
                foreach (string key in summaryTypes.Keys)
                {
                    PivotSummaryType summaryType = summaryTypes[key];
                    DXMenuCheckItem  menuItem    = new DXMenuCheckItem {
                        Caption = key, Checked = pivotGridField.SummaryType == summaryType
                    };
                    menuItem.Click += delegate
                    { this.DuplicatePivotGridField(pivotGridField, summaryType, pivotGridField.SummaryDisplayType); };
                    summaryMenuItem.Items.Add(menuItem);
                }

                // PivotSummaryDisplayType
                DXSubMenuItem summaryDisplayMenuItem = new DXSubMenuItem {
                    Caption = "Anzeigen als"
                };
                e.Menu.Items.Add(summaryDisplayMenuItem);
                Dictionary <string, PivotSummaryDisplayType> summaryDisplayTypes = new Dictionary <string, PivotSummaryDisplayType>
                {
                    { "Standard", PivotSummaryDisplayType.Default },
                    { "Varianz zum Vorgänger (absolut)", PivotSummaryDisplayType.AbsoluteVariation },
                    { "Varianz zum Vorgänger (prozentual)", PivotSummaryDisplayType.PercentVariation },
                    { "Prozent vom Gesamt (Spalte)", PivotSummaryDisplayType.PercentOfColumn },
                    { "Prozent vom Gesamt (Zeile)", PivotSummaryDisplayType.PercentOfRow },
                    { "Prozent vom Gesamtergebnis (Spalte)", PivotSummaryDisplayType.PercentOfColumnGrandTotal },
                    { "Prozent vom Gesamtergebnis (Zeile)", PivotSummaryDisplayType.PercentOfRowGrandTotal },
                };
                foreach (string key in summaryDisplayTypes.Keys)
                {
                    PivotSummaryDisplayType summaryDisplayType = summaryDisplayTypes[key];
                    DXMenuCheckItem         menuItem           = new DXMenuCheckItem {
                        Caption = key, Checked = pivotGridField.SummaryDisplayType == summaryDisplayType
                    };
                    menuItem.Click += delegate { this.DuplicatePivotGridField(pivotGridField, pivotGridField.SummaryType, summaryDisplayType); };
                    summaryDisplayMenuItem.Items.Add(menuItem);
                }
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Dupliziert das angegebene Feld
        /// </summary>
        /// <param name="pivotGridField">das Feld, das dupliziert werden soll</param>
        /// <param name="summaryType">der Aggregattyp, der für das duplizierte Feld verwendet werden soll</param>
        /// <param name="summaryDisplayType">die Anzeige des Aggregattyps, der für das duplizierte Feld verwendet werden soll</param>
        private void DuplicatePivotGridField(PivotGridField pivotGridField, PivotSummaryType summaryType, PivotSummaryDisplayType summaryDisplayType)
        {
            PivotGridField duplicatedField = new PivotGridField(pivotGridField.Name + " " + summaryDisplayType + " " + summaryType, pivotGridField.Area)
            {
                Name               = pivotGridField.Name + "-" + summaryDisplayType + "-" + summaryType,
                Caption            = (!String.IsNullOrEmpty(pivotGridField.Caption)) ? pivotGridField.Caption : pivotGridField.FieldName,
                SummaryType        = summaryType,
                SummaryDisplayType = summaryDisplayType,
                UnboundType        = pivotGridField.UnboundType,
                UnboundExpression  = pivotGridField.UnboundExpression,
                AllowedAreas       = pivotGridField.AllowedAreas,
                FieldName          = pivotGridField.FieldName
            };

            duplicatedField.CellFormat.FormatType   = pivotGridField.CellFormat.FormatType;
            duplicatedField.CellFormat.FormatString = (summaryDisplayType.ToString().StartsWith("Percent")) ? "P" : pivotGridField.CellFormat.FormatString;

            this.Fields.Add(duplicatedField);
        }