MainWindow.xaml.cs 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. using FastReport;
  2. using FastReport.Utils;
  3. using System;
  4. using System.Reflection;
  5. using System.Windows;
  6. namespace UserFunctions
  7. {
  8. /// <summary>
  9. /// Interaction logic for MainWindow.xaml
  10. /// </summary>
  11. public partial class MainWindow : Window
  12. {
  13. public MainWindow()
  14. {
  15. InitializeComponent();
  16. RegisterCustomFunctions();
  17. }
  18. private void RegisterCustomFunctions()
  19. {
  20. RegisteredObjects.AddFunctionCategory("MyFuncs", "My Functions");
  21. // obtain MethodInfo for our functions
  22. Type myType = typeof(MyFunctions);
  23. MethodInfo myUpperCaseFunc = myType.GetMethod("MyUpperCase");
  24. MethodInfo myMaximumIntFunc = myType.GetMethod("MyMaximum", new Type[] { typeof(int), typeof(int) });
  25. MethodInfo myMaximumLongFunc = myType.GetMethod("MyMaximum", new Type[] { typeof(long), typeof(long) });
  26. // register simple function
  27. RegisteredObjects.AddFunction(myUpperCaseFunc, "MyFuncs");
  28. // register overridden functions
  29. RegisteredObjects.AddFunction(myMaximumIntFunc, "MyFuncs,MyMaximum");
  30. RegisteredObjects.AddFunction(myMaximumLongFunc, "MyFuncs,MyMaximum");
  31. }
  32. private void Button_Click(object sender, RoutedEventArgs e)
  33. {
  34. using (var report = new Report())
  35. {
  36. report.Design();
  37. }
  38. }
  39. }
  40. }