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

BandCollection.Add(Band) Method

Overrides the XRControlCollection.Add method.

Namespace: DevExpress.XtraReports.UI

Assembly: DevExpress.XtraReports.v23.1.dll

NuGet Package: DevExpress.Reporting.Core

Declaration

public int Add(
    Band band
)

Parameters

Name Type Description
band Band

A Band object to add to the collection of bands.

Returns

Type Description
Int32

An integer value indicating the position into which the new band was inserted.

Remarks

When you create or edit a report, use the Add method to add a new band. Note that some band types should appear only once in the report, while other band types can be added multiple times. When you attempt to add a band of a type that cannot be duplicated in the report, an exception occurs with the message Msg_IncorrectBandType.

Note that the Add method is not intended to copy bands from one report to another. You must create a new Band instance, and then add it to the BandCollection.

If you want to copy a band from an existing report, you should serialize and deserialize the band to create a new instance and then add it to the collection, as the following code snippet shows:

using DevExpress.XtraReports.Serialization;
// ...
static Band CopyBand(Band band) {
    using (var stream = new System.IO.MemoryStream()) {
        RootXmlObject rootObject = new RootXmlObject(new System.ComponentModel.IComponent[] { band });
        XRControlXmlSerializer serializer = new XRControlXmlSerializer(new XtraReportsSerializationContext() { RootObject = rootObject });
        serializer.SerializeRootObject(rootObject, stream);
        stream.Position = 0;
        rootObject = new RootXmlObject();
        serializer.DeserializeObject(rootObject, stream, string.Empty);
        return rootObject.Controls.First() as Band;
    }
}

Example

The following example demonstrates how to use the BandCollection class methods to construct a simple report. The AddMarginBands method creates two margin bands and adds them to the collection.

using DevExpress.XtraPrinting;
using DevExpress.XtraReports.UI;
// ...

public class XtraReport1 : DevExpress.XtraReports.UI.XtraReport {
// ...

    // ...
    // Generated code for the XtraReport1 class.
    // ...

    public void AddMarginBands() {

        // Check if the TopMargin band is already present in the report.
        if(Bands[BandKind.TopMargin] == null) {
            // Create a new TopMargin band and add it to the report.
            TopMarginBand tmBand = new TopMarginBand();
            Bands.Add(tmBand);

            // Create a label and set its text and width.
            XRLabel label = new XRLabel();
            label.Text = "TopMargin Band";
            label.Width = 200;

            // Add the label to the TopMargin band.
            tmBand.Controls.Add(label);
        }

        // Check if the BottomMargin band is already present in the report.
        if(Bands[BandKind.BottomMargin] == null) {
            // Create a new BottomMargin band and add it to the report.
            BottomMarginBand bmBand = new BottomMarginBand();
            Bands.Add(bmBand);

            // Create an XRPageInfo object and set its width and PageInfo option.
            XRPageInfo datePageInfo = new XRPageInfo();
            datePageInfo.Width = 200;
            datePageInfo.PageInfo = PageInfo.DateTime;

            // Add the page information control to the BottomMargin band.
            bmBand.Controls.Add(datePageInfo);
        }
    }

}

The following code handles button clicks to call the AddMarginBands method and show the preview:

XtraReport1 report = new XtraReport1();

private void btnPreview_Click(object sender, System.EventArgs e) {
    ReportPrintTool preview = new ReportPrintTool(report);
    preview.ShowPreview();
}

private void btnAddBands_Click(object sender, System.EventArgs e) {
    report.AddMarginBands();
}

The following code snippets (auto-collected from DevExpress Examples) contain references to the Add(Band) method.

Note

The algorithm used to collect these code examples remains a work in progress. Accordingly, the links and snippets below may produce inaccurate results. If you encounter an issue with code examples below, please use the feedback form on this page to report the issue.

See Also