Skip to main content
A newer version of this page is available. .

GroupFieldCollection Class

A collection of GroupField objects.

Namespace: DevExpress.XtraReports.UI

Assembly: DevExpress.XtraReports.v20.1.dll

NuGet Packages: DevExpress.Reporting.Core, DevExpress.WindowsDesktop.Reporting.Core

Declaration

public class GroupFieldCollection :
    Collection<GroupField>

The following members return GroupFieldCollection objects:

Remarks

Methods of the GroupFieldCollection class allow a user to add new items to the collection and provide access to a particular GroupField object in the collection.

Example

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
Collection<GroupField>
GroupFieldCollection
See Also