Skip to main content

DevExpress v24.2 Update — Your Feedback Matters

Our What's New in v24.2 webpage includes product-specific surveys. Your response to our survey questions will help us measure product satisfaction for features released in this major update and help us refine our plans for our next major release.

Take the survey Not interested

XtraReport.CreateDocumentAsync(CancellationToken) Method

Asynchronously creates a document from an XtraReport to print or display this report.

Namespace: DevExpress.XtraReports.UI

Assembly: DevExpress.XtraReports.v24.2.dll

NuGet Package: DevExpress.Reporting.Core

#Declaration

public Task CreateDocumentAsync(
    CancellationToken token = default(CancellationToken)
)

#Optional Parameters

Name Type Default Description
token CancellationToken null

A cancellation token that the task observes.

#Returns

Type Description
Task

A task that creates a report document.

#Remarks

This method is equivalent to the CreateDocument() method, but does not lock other actions performed concurrently. For instance, the user interface remains operational while the application creates a report document.

Call the CreateDocumentAsync method with the await operator.

The optional CancellationToken parameter provides a way to send a cancellation signal to the task. The task monitors the token and stops when it receives the signal. Create a CancellationTokenSource class instance and pass its Token property to the CreateDocumentAsync method call. Call the CancellationTokenSource.Cancel method to stop the task.

#Example

The code sample below creates a report document asynchronously. A CancellationTokenSource class instance is used to allow users to interrupt the document creation process if it takes too long.

using DevExpress.XtraReports.UI;
using System;
using System.Threading;
// ...
// Use cancellationTokenSource to allow users to stop the document creation process.
CancellationTokenSource cancellationTokenSource = new CancellationTokenSource();
// ...
async public void CreateReportAsync()
{
    // Create a simple report.
    XtraReport report = new XtraReport() {
        Name = "SimpleReport",
        Bands = {
            new DetailBand() {
                Controls = {
                    new XRLabel() {
                        Text = "Simple Report"
                    }
                }
            }
        }
    };
    // Create a report document.
    await report.CreateDocumentAsync(cancellationTokenSource.Token);
}
See Also