ReportTemplate.cs 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. using System;
  2. using InABox.Core;
  3. namespace InABox.Core.Reports
  4. {
  5. [UserTracking(false)]
  6. public class ReportTemplate : Entity, IPersistent, IRemotable, ILicense<CoreLicense>
  7. {
  8. [TextBoxEditor]
  9. [EditorSequence(1)]
  10. public string Name { get; set; }
  11. [ComboLookupEditor(typeof(PrinterLookups), Visible = Core.Visible.Hidden, Editable = Editable.Hidden)]
  12. [EditorSequence(2)]
  13. public string PrinterName { get; set; }
  14. [NullEditor]
  15. public string RDL { get; set; }
  16. [CheckBoxEditor]
  17. [EditorSequence(3)]
  18. public bool Visible { get; set; } = true;
  19. [CheckBoxEditor]
  20. [EditorSequence(4)]
  21. public bool AllRecords { get; set; } = false;
  22. [CheckBoxEditor]
  23. [EditorSequence(5)]
  24. public bool SelectedRecords { get; set; } = true;
  25. [CheckBoxEditor]
  26. [EditorSequence(6)]
  27. public bool OptimiseData { get; set; } = false;
  28. [NullEditor]
  29. public string Script { get; set; }
  30. [NullEditor]
  31. public string DataModel { get; set; }
  32. [NullEditor]
  33. public string Section { get; set; }
  34. [NullEditor]
  35. [Obsolete("All Reports are now Fast Reports-based")]
  36. public bool IsRDL { get; set; } = false;
  37. public static readonly string DefaultScriptTemplate = @"using System;
  38. using System.Linq;
  39. using System.Runtime;
  40. using InABox.Core;
  41. using Comal.Classes;
  42. public class Report
  43. {{
  44. public {0} Model {{ get; set; }}
  45. public IEnumerable<String> RequiredTables {{ get; set; }}
  46. public bool Init()
  47. {{
  48. return true;
  49. }}
  50. public bool Populate()
  51. {{
  52. return true;
  53. }}
  54. }}";
  55. private class PrinterLookups : LookupGenerator<object>
  56. {
  57. public PrinterLookups(object[] items) : base(items)
  58. {
  59. AddValue("", "No Printer Selected");
  60. foreach (var printer in ReportPrinters.All)
  61. AddValue(printer, printer);
  62. }
  63. }
  64. }
  65. }