Skip to main content

ReportState Enum

Specifies the state of the report in the End-User Designer.

Namespace: DevExpress.XtraReports.UserDesigner

Assembly: DevExpress.XtraReports.v23.1.Extensions.dll

NuGet Package: DevExpress.Win.Reporting


public enum ReportState


Name Description

The report’s state is not specified.


The report is in the process of opening.


The report is open in the End-User Designer.


At least one component in the report has been modified.


The report has been saved to a file.


The report editing session is being closed.


This enumeration is used by the XRDesignPanel.ReportState property.


This example shows how to override the SaveFile and OpenFile commands in the End-User Report Designer.

using System;
using System.Windows.Forms;
using DevExpress.XtraReports.UserDesigner;

namespace CustomSavingEUD {
    public partial class Form1 : Form
        public Form1() {

        // Create an MDI (multi-document interface) controller instance.
        XRDesignMdiController mdiController;

        private void button1_Click(object sender, EventArgs e) {
            // Create a design form and get its MDI controller.
            XRDesignForm form = new XRDesignForm();
            mdiController = form.DesignMdiController;

            // Handle the DesignPanelLoaded event of the MDI controller,
            // to override the SaveCommandHandler for every loaded report.
            mdiController.DesignPanelLoaded +=
                new DesignerLoadedEventHandler(mdiController_DesignPanelLoaded);

            // Override the Open Command.
            mdiController.AddCommandHandler(new OpenCommandHandler());

            // Open an empty report in the form.
            mdiController.OpenReport(new XtraReport1());

            // Show the form.
            if (mdiController.ActiveDesignPanel != null) {
        void mdiController_DesignPanelLoaded(object sender, DesignerLoadedEventArgs e) {
            XRDesignPanel panel = (XRDesignPanel)sender;
            // Override the Save Command.
            panel.AddCommandHandler(new SaveCommandHandler(panel));

The following code shows the Save and Open command handlers that implement the ICommandHandler interface:

using DevExpress.XtraReports.UserDesigner;
public class SaveCommandHandler : ICommandHandler {
    XRDesignPanel panel;

    public SaveCommandHandler(XRDesignPanel panel) {
        this.panel = panel;

    public void HandleCommand(ReportCommand command,
    object[] args) {
        // Save the report.

    public bool CanHandleCommand(ReportCommand command,
    ref bool useNextHandler) {
        useNextHandler = !(command == ReportCommand.SaveFile ||
            command == ReportCommand.SaveFileAs);
        return !useNextHandler;

    void Save() {
        // Write your custom method here.
        // ...

        // Example:

        // Prevent the "Report has been changed" dialog from being shown.
        panel.ReportState = ReportState.Saved;

For information on how to customize the WinForms End-User Report Designer, review the following help topic: WinForms End-User Report Designer API and Customization.

See Also