GroupHeaderBandMenu.cs 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Text;
  4. using System.Windows.Forms;
  5. using FastReport.Design;
  6. using FastReport.Utils;
  7. namespace FastReport
  8. {
  9. internal class GroupHeaderBandMenu : HeaderFooterBandBaseMenu
  10. {
  11. private SelectedObjectCollection selection;
  12. public ContextMenuItem miKeepTogether;
  13. public ContextMenuItem miResetPageNumber;
  14. private List<GroupHeaderBand> ModifyList
  15. {
  16. get
  17. {
  18. List<GroupHeaderBand> list = new List<GroupHeaderBand>();
  19. foreach (Base c in selection)
  20. {
  21. if (c is GroupHeaderBand && !c.HasRestriction(Restrictions.DontModify))
  22. list.Add(c as GroupHeaderBand);
  23. }
  24. return list;
  25. }
  26. }
  27. private void miKeepTogether_Click(object sender, EventArgs e)
  28. {
  29. foreach (GroupHeaderBand band in ModifyList)
  30. {
  31. band.KeepTogether = miKeepTogether.Checked;
  32. }
  33. Change();
  34. }
  35. private void miResetPageNumber_Click(object sender, EventArgs e)
  36. {
  37. foreach (GroupHeaderBand band in ModifyList)
  38. {
  39. band.ResetPageNumber = miResetPageNumber.Checked;
  40. }
  41. Change();
  42. }
  43. public GroupHeaderBandMenu(Designer designer) : base(designer)
  44. {
  45. selection = Designer.SelectedObjects;
  46. miKeepTogether = CreateMenuItem(Res.Get("ComponentMenu,DataBand,KeepTogether"), new EventHandler(miKeepTogether_Click));
  47. miKeepTogether.CheckOnClick = true;
  48. miResetPageNumber = CreateMenuItem(Res.Get("ComponentMenu,GroupHeaderBand,ResetPageNumber"), new EventHandler(miResetPageNumber_Click));
  49. miResetPageNumber.CheckOnClick = true;
  50. int insertPos = Items.IndexOf(miStartNewPage);
  51. Items.Insert(insertPos, miKeepTogether);
  52. Items.Insert(insertPos + 1, miResetPageNumber);
  53. GroupHeaderBand band = selection[0] as GroupHeaderBand;
  54. bool enabled = !band.HasRestriction(Restrictions.DontModify);
  55. miKeepTogether.Enabled = enabled;
  56. miResetPageNumber.Enabled = enabled;
  57. miKeepTogether.Checked = band.KeepTogether;
  58. miResetPageNumber.Checked = band.ResetPageNumber;
  59. }
  60. }
  61. }