Skip to main content

Manage Report Documents in Code

  • 4 minutes to read

Reporting for WinForms

Code snippets in this section show how to use the report’s SaveDocument and LoadDocument methods to save and load report documents.

Save a Document to a File

// Specify the path to a report document file.
string filePath = @"C:\Temp\Report1.prnx";

// Create a report instance. 
XtraReport1 report = new XtraReport1();

// Create a report document.
report.CreateDocument();

// Save the created report document to a file. 
report.PrintingSystem.SaveDocument(filePath);

Load a Document from a File

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

// Specify the path to a report document file. 
string documentPath = @"C:\Temp\Report1.prnx";

// Specify the file to which the report document should be exported.
string exportPath = @"C:\Temp\Report1.docx";

// Create a new report instance.
XtraReport report = new XtraReport();

// Load the report document.
if (System.IO.File.Exists(documentPath)) {
    report.PrintingSystem.LoadDocument(documentPath);
}
else {
    System.Console.WriteLine("The source file does not exist.");
}

// Export the loaded report document to DOCX format.
report.ExportToDocx(exportPath);

Save a Document to a Stream

// Create a Memory Stream.
using (MemoryStream stream = new MemoryStream()) {

    // Create a report instance. 
    XtraReport1 report = new XtraReport1();

    // Create a report document.
    report.CreateDocument();

    // Save the created report document to the stream. 
    report.PrintingSystem.SaveDocument(stream);
}

Load a Document from a Stream

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

// Declare a data byte array that should store the document.
byte[] reportBytes;

// Create a report instance. 
XtraReport report = new XtraReport();

// Create a Memory Stream.
using (MemoryStream stream = new MemoryStream(reportBytes)) {

    // Load the report document.
    report.PrintingSystem.LoadDocument(stream);
}

// Send the loaded report document to the specified printer.
report.Print("PrinterName");

Reporting for WPF

Add the DocumentViewerControl component to your project. Assign a document source to the DocumentSource property.

The following types of document sources are supported:

  • An object that implements the IReport interface.
  • An object that implements the ILink interface.
  • A Stream that contains report document data.
  • A string that contains a path to a file that stores report document data (a PRNX file).

If you use the IReport or ILink object as a document source, call the document source’s CreateDocument method or set the DocumentPreviewControl’s RequestDocumentCreation property to True to generate a preview.

<Window x:Class="WpfApplication1.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525" xmlns:dxp="http://schemas.devexpress.com/winfx/2008/xaml/printing" Loaded="Window_Loaded">
    <Grid>
        <dxp:DocumentPreviewControl x:Name="documentPreview" HorizontalAlignment="Stretch" VerticalAlignment="Stretch"/>
    </Grid>
</Window>