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

ReportExpressionEditorCustomizationService Class

Allows you to adjust the list of functions available in the Expression Editor.

Namespace: DevExpress.XtraReports.UserDesigner

Assembly: DevExpress.XtraReports.v24.2.Extensions.dll

NuGet Package: DevExpress.Win.Reporting

#Declaration

public abstract class ReportExpressionEditorCustomizationService :
    IExpressionEditorCustomizationService

#Remarks

The ReportExpressionEditorCustomizationService allows you to customize Expression Editor invoked for expressions in the calculated fields, and for custom expressions in the Filter Editor. For more information, review the following help topics:

To use the service, you should implement the ReportExpressionEditorCustomizationService descendant, override the BeforeRun and/or the BeforeFilterEditorRun methods, and add the service to the XRDesignMdiController instance.

The following code snippet removes the FormatString function from a list of functions displayed in the Expression Editor:

public partial class Form1 : DevExpress.XtraEditors.XtraForm {
    protected override void OnLoad(EventArgs e) {
        base.OnLoad(e);
        this.reportDesigner1.AddService(typeof(ReportExpressionEditorCustomizationService), 
        new MyReportExpressionEditorCustomizationService());       
    }
    public Form1() {
        InitializeComponent();
    }
    private void Form1_Load(object sender, EventArgs e) {
        XtraReport1 report = new XtraReport1();
        this.reportDesigner1.OpenReport(report);
    }
}

class MyReportExpressionEditorCustomizationService : ReportExpressionEditorCustomizationService {
        public override void BeforeRun(string expressionString, IExpressionEditorView expressionEditorView, ExpressionEditorContext expressionEditorContext) {            
            FunctionInfo formatStringFunc = expressionEditorContext.Functions.FirstOrDefault(x => x.Name == "FormatString");
            expressionEditorContext.Functions.Remove(formatStringFunc);
            base.BeforeRun(expressionString, expressionEditorView, expressionEditorContext);
        }
    }
}

#Inheritance

Object
ReportExpressionEditorCustomizationService
See Also