Back to Devexpress

PivotChartItemType Enum

corelibraries-devexpress-dot-xtrapivotgrid-d7a7bd3f.md

latest5.4 KB
Original Source

PivotChartItemType Enum

Lists values that specify the type of a PivotGridControl’s item to be represented in a ChartControl.

Namespace : DevExpress.XtraPivotGrid

Assembly : DevExpress.PivotGrid.v25.2.Core.dll

NuGet Packages : DevExpress.PivotGrid.Core, DevExpress.Win.Navigation

Declaration

csharp
public enum PivotChartItemType
vb
Public Enum PivotChartItemType

Members

NameDescription
RowItem

A row field value is processed to be represented in the chart control.

| | ColumnItem |

A column field value is processed to be represented in the chart control.

| | CellItem |

A data cell value is processed to be represented in the chart control.

|

The following properties accept/return PivotChartItemType values:

LibraryRelated API Members
WinForms ControlsPivotCustomChartDataSourceDataEventArgs.ItemType
ASP.NET Web Forms ControlsPivotCustomChartDataSourceDataEventArgs.ItemType

Remarks

Values listed by this enumeration are used to set the ItemType property of the CustomChartDataSourceData event’s parameter (the PivotCustomChartDataSourceDataEventArgs.ItemType property for the XtraPivotGrid, and the PivotCustomChartDataSourceDataEventArgs.ItemType property for the ASPxPivotGrid).

Example

The following example demonstrates how to add custom text to data prepared by the PivotGridControl, to display it in a ChartControl.

For this, it is necessary to handle the PivotGridControl.CustomChartDataSourceData event. In this event handler, you can determine the item type via the PivotCustomChartDataSourceDataEventArgs.ItemType property and change the PivotCustomChartDataSourceDataEventArgs.Value according to your custom requirements.

Note

A complete sample project is available at https://github.com/DevExpress-Examples/winforms-customize-pivot-grid-data-before-displaying-it-in-a-chart-control

csharp
private void pivotGridControl1_CustomChartDataSourceData(object sender, 
PivotCustomChartDataSourceDataEventArgs e) {
    if(e.ItemType == PivotChartItemType.RowItem) {
        if(e.FieldValueInfo.Field == fieldCategoryName) {
            e.Value = CategoryEncodeTable[e.FieldValueInfo.Value.ToString()];
        } else if(e.FieldValueInfo.Field == fieldProductName) {
            string product =  
                ProductEncodeTable[e.FieldValueInfo.Value.ToString()];
            string category = 
            CategoryEncodeTable[e.FieldValueInfo.GetHigherLevelFieldValue(fieldCategoryName).ToString()];
            e.Value = product + '[' + category + ']';
        }
    }
    if(e.ItemType == PivotChartItemType.ColumnItem) {
        if(e.FieldValueInfo.ValueType == PivotGridValueType.GrandTotal) {
            e.Value = "Total Sales";
        }
    }
    if(e.ItemType == PivotChartItemType.CellItem) {
        e.Value = Math.Round(Convert.ToDecimal(e.CellInfo.Value), 0);
    }
}
vb
Private Sub pivotGridControl1_CustomChartDataSourceData(ByVal sender As Object, _
                              ByVal e As PivotCustomChartDataSourceDataEventArgs) _
                          Handles pivotGridControl1.CustomChartDataSourceData
    If e.ItemType = PivotChartItemType.RowItem Then
        If e.FieldValueInfo.Field Is fieldCategoryName Then
            e.Value = CategoryEncodeTable(e.FieldValueInfo.Value.ToString())
        ElseIf e.FieldValueInfo.Field Is fieldProductName Then
            Dim product As String = ProductEncodeTable(e.FieldValueInfo.Value.ToString())
            Dim category As String = CategoryEncodeTable(e.FieldValueInfo.GetHigherLevelFieldValue(fieldCategoryName).ToString())
            e.Value = product & "["c & category & "]"c
        End If
    End If
    If e.ItemType = PivotChartItemType.ColumnItem Then
        If e.FieldValueInfo.ValueType = PivotGridValueType.GrandTotal Then
            e.Value = "Total Sales"
        End If
    End If
    If e.ItemType = PivotChartItemType.CellItem Then
        e.Value = Math.Round(Convert.ToDecimal(e.CellInfo.Value), 0)
    End If
End Sub

See Also

DevExpress.XtraPivotGrid Namespace