CustomFunctions Class
Contains static methods to register a custom function for the End-User Report Designer‘s Expression Editor.
Namespace: DevExpress.XtraReports.Expressions
Assembly: DevExpress.XtraReports.v20.2.dll
NuGet Packages: DevExpress.Reporting.Core, DevExpress.WindowsDesktop.Reporting.Core
Declaration
Remarks
The CustomFunctions class allows you to register a custom function that users can utilize in the Expression Editor for expression bindings and calculated fields.
A custom function implements the DevExpress.XtraReports.Expressions.ReportCustomFunctionOperatorBase interface.
The following code defines a custom function:
using DevExpress.XtraReports.Expressions;
using System;
// ...
public class CustomFormatFunction : ReportCustomFunctionOperatorBase
{
public override string FunctionCategory
=> "String";
public override string Description
=> "CustomFormatFunction(string format, object arg0)" +
"\r\nConverts an arg0 value to a string based on a specified format";
public override bool IsValidOperandCount(int count)
=> count == 2;
public override bool IsValidOperandType(int operandIndex, int operandCount, Type type)
=> true;
public override int MaxOperandCount
=> 2;
public override int MinOperandCount
=> 2;
public override object Evaluate(params object[] operands)
{
string res = String.Format(operands[0].ToString(), operands[1]);
return res;
}
public override string Name
=> "CustomFormatFunction";
public override Type ResultType(params Type[] operands)
{
return typeof(string);
}
}
Call the static CustomFunctions.Register method to register a custom function. Pass the custom function class instance as a parameter. To unregister a custom function, use the static CustomFunctions.Unregister method.
The following code registers a custom function for use in the End-User Designer:
private void Form1_Load(object sender, EventArgs e)
{
DevExpress.XtraReports.Expressions.CustomFunctions.Register(new NewLineConstant());
DevExpress.XtraReports.Expressions.CustomFunctions.Register(new CustomFormatFunction());
reportDesigner1.OpenReport("Reports\\XtraReport1.repx");
}