Fields

  • 4 minutes to read

To create a compact report, the Pivot Grid control requires you to create a number of fields (objects bound to real data source fields) and position these fields within appropriate areas.

pivotgrid_headerareas

The field's function is determined by the area in which it is displayed:

  • Position a field within the Column Header Area to list its values along the grid's top edge. The field's values will represent column headers.
  • Position a field within the Row Header Area to list its values along the grid's left edge. The field's values will represent row headers.
  • Position a field within the Data Header Area to calculate summaries against this field.
  • Position a field within the Filter Header Area to make this field available for data filtering or further customizations (e.g. it can be dragged to a different area later on).

Binding Basics

The DXPivotGrid control supports bound and unbound fields. A bound field retrieves data from a field in a pivot grid's data source. An unbound field is not associated with a data source and should be populated with data manually. To learn more on unbound fields, see Unbound Fields.

To bind a pivot grid field to a data source field, use the PivotGridField.FieldName property. This property provides the name of the data field bound to the pivot grid field. The PivotGridField.UnboundType property must be set to FieldUnboundColumnType.Bound.

To learn more, see Binding to Data Overview and Binding to OLAP Data Sources.

Example: How to Bind a PivotGrid Control to an MS Access Database

The following example demonstrates how to bind the PivotGridControl to a "SalesPerson" view in the nwind.mdb database, which is shipped with the installation. The control will be used to analyse sales per country, customers, product categories and years.

The following steps were used to created this example:

  1. A typed dataset is created from the database at design time.
  2. Instances of SalesPersonDataTable and SalesPersonTableAdapter objects are created.
  3. The PivotGridControl is bound to the SalesPersonDataTable instance via the PivotGridControl.DataSource property.
  4. The table is filled with data in the Window_Loaded event handler.

The pivot grid fields that will represent data source fields are created in XAML markup. They are positioned within appropriate areas to analyze the data in the way you want.

Note that if you want to see an example of how to programmatically add pivot grid fields, please refer to the How to: Bind a PivotGrid to an MS Access Database Programmatically tutorial.

<Window x:Class="HowToBindToMDB.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:dxpg="http://schemas.devexpress.com/winfx/2008/xaml/pivotgrid"
        Title="MainWindow" Height="350" Width="525"  Loaded="Window_Loaded">
    <Grid>
        <dxpg:PivotGridControl HorizontalAlignment="Left" Name="pivotGridControl1"
                               VerticalAlignment="Top">
            <dxpg:PivotGridControl.Fields>
                <dxpg:PivotGridField Name="fieldCountry" FieldName="Country" Area="RowArea" />
                <dxpg:PivotGridField Name="fieldCustomer" FieldName="Sales Person" Area="RowArea"
                                     Caption="Customer" />
                <dxpg:PivotGridField Name="fieldYear" FieldName="OrderDate" Area="ColumnArea"
                                     Caption="Year" GroupInterval="DateYear" />
                <dxpg:PivotGridField Name="fieldCategoryName" FieldName="CategoryName" 
                                     Area="ColumnArea" Caption="Product Category" />
                <dxpg:PivotGridField Name="fieldProductName" FieldName="ProductName" 
                                     Area="FilterArea" Caption="Product Name" />
                <dxpg:PivotGridField Name="fieldExtendedPrice" FieldName="Extended Price" 
                                     Area="DataArea" CellFormat="c0" />
            </dxpg:PivotGridControl.Fields>
        </dxpg:PivotGridControl>
    </Grid>
</Window>