GroupHeaderBand.GroupFields Property

Gets a collection of GroupField objects used as the criteria for creating groups in a report.

Namespace: DevExpress.XtraReports.UI

Assembly: DevExpress.XtraReports.v18.2.dll

Declaration

[Favorite(true)]
[SRCategory(ReportStringId.CatBehavior)]
public GroupFieldCollection GroupFields { get; }
<Favorite(True)>
<SRCategory(ReportStringId.CatBehavior)>
Public ReadOnly Property GroupFields As GroupFieldCollection

Property Value

Type Description
GroupFieldCollection

A GroupFieldCollection object.

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;
}

See Also