MatrixHeaderMenu.cs 3.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. using System;
  2. using FastReport.Utils;
  3. namespace FastReport.Matrix
  4. {
  5. internal class MatrixHeaderMenu : MatrixCellMenuBase
  6. {
  7. private ContextMenuItem miSort;
  8. private ContextMenuItem miSortAsc;
  9. private ContextMenuItem miSortDesc;
  10. private ContextMenuItem miSortNone;
  11. private ContextMenuItem miTotals;
  12. private ContextMenuItem miPageBreak;
  13. private ContextMenuItem miSuppressTotals;
  14. private ContextMenuItem miTotalsFirst;
  15. private void Sort_Click(object sender, EventArgs e)
  16. {
  17. (Descriptor as MatrixHeaderDescriptor).Sort = (SortOrder)(sender as ContextMenuItem).Tag;
  18. Change();
  19. }
  20. private void miTotals_Click(object sender, EventArgs e)
  21. {
  22. (Descriptor as MatrixHeaderDescriptor).Totals = miTotals.Checked;
  23. Change();
  24. }
  25. private void miPageBreak_Click(object sender, EventArgs e)
  26. {
  27. (Descriptor as MatrixHeaderDescriptor).PageBreak = miPageBreak.Checked;
  28. Change();
  29. }
  30. private void miSuppressTotals_Click(object sender, EventArgs e)
  31. {
  32. (Descriptor as MatrixHeaderDescriptor).SuppressTotals = miSuppressTotals.Checked;
  33. Change();
  34. }
  35. private void miTotalsFirst_Click(object sender, EventArgs e)
  36. {
  37. (Descriptor as MatrixHeaderDescriptor).TotalsFirst = miTotalsFirst.Checked;
  38. Change();
  39. }
  40. public MatrixHeaderMenu(MatrixObject matrix, MatrixElement element, MatrixDescriptor descriptor)
  41. : base(matrix, element, descriptor)
  42. {
  43. MyRes res = new MyRes("ComponentMenu,MatrixCell");
  44. miSort = CreateMenuItem(Res.Get("Forms,DataBandEditor,Sort"), null);
  45. miSortAsc = CreateMenuItem(Res.Get("Forms,GroupBandEditor,Ascending"), Sort_Click);
  46. miSortAsc.CheckOnClick = true;
  47. miSortAsc.Tag = SortOrder.Ascending;
  48. miSortDesc = CreateMenuItem(Res.Get("Forms,GroupBandEditor,Descending"), Sort_Click);
  49. miSortDesc.CheckOnClick = true;
  50. miSortDesc.Tag = SortOrder.Descending;
  51. miSortNone = CreateMenuItem(Res.Get("Forms,GroupBandEditor,NoSort"), Sort_Click);
  52. miSortNone.CheckOnClick = true;
  53. miSortNone.Tag = SortOrder.None;
  54. miTotals = CreateMenuItem(res.Get("Totals"), miTotals_Click);
  55. miTotals.CheckOnClick = true;
  56. miPageBreak = CreateMenuItem(Res.Get("ComponentMenu,Band,StartNewPage"), miPageBreak_Click);
  57. miPageBreak.CheckOnClick = true;
  58. miSuppressTotals = CreateMenuItem(res.Get("SuppressTotals"), miSuppressTotals_Click);
  59. miSuppressTotals.CheckOnClick = true;
  60. miTotalsFirst = CreateMenuItem(res.Get("TotalsFirst"), miTotalsFirst_Click);
  61. miTotalsFirst.CheckOnClick = true;
  62. miSort.DropDownItems.AddRange(new ContextMenuItem[] { miSortAsc, miSortDesc, miSortNone });
  63. int insertIndex = Items.IndexOf(miDelete);
  64. Items.Insert(insertIndex, miSort);
  65. Items.Insert(insertIndex + 1, miTotals);
  66. Items.Insert(insertIndex + 2, miPageBreak);
  67. Items.Insert(insertIndex + 3, miSuppressTotals);
  68. Items.Insert(insertIndex + 4, miTotalsFirst);
  69. SortOrder sort = (Descriptor as MatrixHeaderDescriptor).Sort;
  70. miSortAsc.Checked = sort == SortOrder.Ascending;
  71. miSortDesc.Checked = sort == SortOrder.Descending;
  72. miSortNone.Checked = sort == SortOrder.None;
  73. miTotals.Checked = (Descriptor as MatrixHeaderDescriptor).Totals;
  74. miTotals.Enabled = !matrix.IsAncestor;
  75. miPageBreak.Checked = (Descriptor as MatrixHeaderDescriptor).PageBreak;
  76. miSuppressTotals.Checked = (Descriptor as MatrixHeaderDescriptor).SuppressTotals;
  77. miTotalsFirst.Checked = (Descriptor as MatrixHeaderDescriptor).TotalsFirst;
  78. }
  79. }
  80. }