using FastReport; using FastReport.Utils; using System; using System.Reflection; using System.Windows; namespace UserFunctions { /// /// Interaction logic for MainWindow.xaml /// public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); RegisterCustomFunctions(); } private void RegisterCustomFunctions() { RegisteredObjects.AddFunctionCategory("MyFuncs", "My Functions"); // obtain MethodInfo for our functions Type myType = typeof(MyFunctions); MethodInfo myUpperCaseFunc = myType.GetMethod("MyUpperCase"); MethodInfo myMaximumIntFunc = myType.GetMethod("MyMaximum", new Type[] { typeof(int), typeof(int) }); MethodInfo myMaximumLongFunc = myType.GetMethod("MyMaximum", new Type[] { typeof(long), typeof(long) }); // register simple function RegisteredObjects.AddFunction(myUpperCaseFunc, "MyFuncs"); // register overridden functions RegisteredObjects.AddFunction(myMaximumIntFunc, "MyFuncs,MyMaximum"); RegisteredObjects.AddFunction(myMaximumLongFunc, "MyFuncs,MyMaximum"); } private void Button_Click(object sender, RoutedEventArgs e) { using (var report = new Report()) { report.Design(); } } } }