The requested page is not available for the requested platform. You are viewing the content for Default platform.

GroupField Class

Defines the objects used as criteria when creating groups in Reports.

Namespace: DevExpress.XtraReports.UI

Assembly: DevExpress.XtraReports.v19.1.dll

Declaration

public class GroupField :
    IXRSerializable,
    IGroupField
Public Class GroupField
    Implements IXRSerializable,
               IGroupField

Remarks

Use the GroupField.FieldName property to set a field from the primary data source as a criterion for creating groups in a report (a primary data source is an object set by the XtraReportBase.DataSource property).

To specify a sorting order for the values in the group field use the GroupField.SortOrder property.

Examples

The report created in this example is bound to the CategoryProducts view of the sample Northwind database (the nwind.mdb file located in the directory, where you installed DevExpress demos).

This report contains two bands: DetailBand and GroupHeaderBand, and the Group Header band groups data by the "CategoryName" data field.

At runtime, data grouping can only be done prior to a report document is being created. To group data just before a report is printed/previewed, use the XRControl.BeforePrint event.

Please make sure to include all necessary assemblies to the References list of your project.

using System;
using System.Windows.Forms;
using DevExpress.XtraReports.UI;
using DevExpress.DataAccess.ConnectionParameters;
using DevExpress.DataAccess.Sql;
using DevExpress.XtraReports.Configuration;
// ...

public XtraReport CreateDataGroupingReport() {
    // Create a report.
    XtraReport report = new XtraReport();

    // Create a data source with the required connection parameters.  
    Access97ConnectionParameters connectionParameters =
        new Access97ConnectionParameters("../../nwind.mdb", "", "");
    SqlDataSource ds = new SqlDataSource(connectionParameters);   
    CustomSqlQuery query = new CustomSqlQuery();
    query.Name = "customQuery";
    query.Sql = "SELECT * FROM CategoryProducts";
    ds.Queries.Add(query);
    ds.RebuildResultSchema();

    // Assign the data source to the report.
    report.DataSource = ds;
    report.DataMember = "customQuery";

    // Create a detail band and add it to the report.
    DetailBand detail = new DetailBand { HeightF = 40 };
    report.Bands.Add(detail);

    // Create a group header band and add it to the report.
    GroupHeaderBand ghBand = new GroupHeaderBand { HeightF = 40 };
    report.Bands.Add(ghBand);

    // Create a group field and assign it to the group header band.
    GroupField groupField = new GroupField("CategoryName");
    ghBand.GroupFields.Add(groupField);

    // Create new labels.
    XRLabel labelGroup = new XRLabel { ForeColor = System.Drawing.Color.Blue };
    XRLabel labelDetail = new XRLabel { LocationF = new System.Drawing.PointF(30, 0) };

    // Specify labels' bindings depending on the report's data binding mode.
    if (Settings.Default.UserDesignerOptions.DataBindingMode == DataBindingMode.Bindings) {
        labelGroup.DataBindings.Add("Text", null, "customQuery.CategoryName");
        labelDetail.DataBindings.Add("Text", null, "customQuery.ProductName");
    } else {
        labelGroup.ExpressionBindings.Add(new ExpressionBinding("BeforePrint", "Text", "[CategoryName]"));
        labelDetail.ExpressionBindings.Add(new ExpressionBinding("BeforePrint", "Text", "[ProductName]"));
    }
    // Add these labels to the report's bands.    
    ghBand.Controls.Add(labelGroup);          
    detail.Controls.Add(labelDetail);

    return report;
}

Inheritance

Object
GroupField

Implements

DevExpress.XtraReports.Serialization.IXRSerializable
DevExpress.XtraReports.UI.IGroupField
See Also