SampleForm.cs 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138
  1. using GanttChartPoC.GanttChart;
  2. using System;
  3. using System.Windows.Forms;
  4. namespace GanttChartPoC
  5. {
  6. public partial class SampleForm : Form
  7. {
  8. private GanttData _ganttData;
  9. public SampleForm()
  10. {
  11. InitializeComponent();
  12. }
  13. private void Reload()
  14. {
  15. _ganttData = new GanttData(new[]
  16. {
  17. new GanttMachine(new[]
  18. {
  19. new GanttMachineTask
  20. {
  21. Begin = new DateTime(2019, 06, 29, 2, 0, 0)
  22. , End = new DateTime(2019, 06, 29, 12, 50, 0)
  23. , Text = "排程文字"
  24. , Detail =
  25. $"1详细信息{Environment.NewLine}第二行{Environment.NewLine}更多行{Environment.NewLine}更多行{Environment.NewLine}更多行"
  26. }
  27. , new GanttMachineTask
  28. {
  29. Begin = new DateTime(2019, 06, 29, 13, 0, 0)
  30. , End = new DateTime(2019, 06, 29, 22, 0, 0)
  31. , Text = "排程文字"
  32. , Detail =
  33. $"2详细信息{Environment.NewLine}第二行{Environment.NewLine}更多行{Environment.NewLine}更多行{Environment.NewLine}更多行"
  34. }
  35. , new GanttMachineTask
  36. {
  37. Begin = new DateTime(2019, 06, 30, 1, 0, 0)
  38. , End = new DateTime(2019, 06, 30, 6, 50, 0)
  39. , Text = "排程文字很长长长"
  40. , Detail =
  41. $"3详细信息{Environment.NewLine}第二行{Environment.NewLine}更多行{Environment.NewLine}更多行{Environment.NewLine}更多行"
  42. }
  43. , new GanttMachineTask
  44. {
  45. Begin = new DateTime(2019, 06, 30, 7, 0, 0)
  46. , End = new DateTime(2019, 06, 30, 18, 30, 0)
  47. , Text = "前一个超出色块要下移避免踩到"
  48. , Detail =
  49. $"4详细信息{Environment.NewLine}第二行{Environment.NewLine}更多行{Environment.NewLine}更多行{Environment.NewLine}更多行"
  50. }
  51. ,
  52. }) {Name = "机台1"}
  53. , new GanttMachine(new[]
  54. {
  55. new GanttMachineTask
  56. {
  57. Begin = new DateTime(2019, 06, 30, 0, 30, 0)
  58. , End = new DateTime(2019, 06, 30, 7, 30, 0)
  59. , Text = "排程文字很长2"
  60. , Detail =
  61. $"5详细信息{Environment.NewLine}第二行{Environment.NewLine}更多行{Environment.NewLine}更多行{Environment.NewLine}更多行"
  62. }
  63. , new GanttMachineTask
  64. {
  65. Begin = new DateTime(2019, 06, 30, 8, 30, 0)
  66. , End = new DateTime(2019, 06, 30, 15, 0, 0)
  67. , Text = "没被踩到也下移,因为不好计算"
  68. , Detail =
  69. $"6详细信息{Environment.NewLine}第二行{Environment.NewLine}更多行{Environment.NewLine}更多行{Environment.NewLine}更多行"
  70. }
  71. , new GanttMachineTask
  72. {
  73. Begin = new DateTime(2019, 06, 30, 16, 0, 0)
  74. , End = new DateTime(2019, 06, 30, 18, 0, 0)
  75. , Text = "右边预留一格空间呈现超出的文字"
  76. , Detail =
  77. $"7详细信息{Environment.NewLine}第二行{Environment.NewLine}更多行{Environment.NewLine}更多行{Environment.NewLine}更多行"
  78. }
  79. , new GanttMachineTask
  80. {
  81. Begin = new DateTime(2019, 06, 30, 19, 0, 0)
  82. , End = new DateTime(2019, 06, 30, 21, 0, 0)
  83. , Text = "自动调整机台行高度"
  84. , Detail =
  85. $"8详细信息{Environment.NewLine}第二行{Environment.NewLine}更多行{Environment.NewLine}更多行{Environment.NewLine}更多行"
  86. }
  87. , new GanttMachineTask
  88. {
  89. Begin = new DateTime(2019, 06, 30, 22, 0, 0)
  90. , End = new DateTime(2019, 06, 30, 23, 0, 0)
  91. , Text = "自动调整机台行高度"
  92. , Detail =
  93. $"9详细信息{Environment.NewLine}第二行{Environment.NewLine}更多行{Environment.NewLine}更多行{Environment.NewLine}更多行"
  94. }
  95. ,
  96. }) {Name = "机台2"}
  97. , new GanttMachine(new GanttMachineTask[] { }) {Name = "机台3无任务"}
  98. , new GanttMachine(new[]
  99. {
  100. new GanttMachineTask
  101. {
  102. Begin = new DateTime(2019, 06, 29, 20, 0, 0)
  103. , End = new DateTime(2019, 06, 30, 7, 0, 0)
  104. , Text = "排程跨天了"
  105. , Detail =
  106. $"A详细信息{Environment.NewLine}第二行{Environment.NewLine}更多行{Environment.NewLine}更多行{Environment.NewLine}更多行"
  107. }
  108. ,
  109. }) {Name = "机台4"}
  110. ,
  111. });
  112. foreach (var machine in _ganttData.Machines)
  113. {
  114. foreach (var task in machine.Tasks)
  115. {
  116. task.Detail = $"{task.Begin:MM/dd HH:mm} - {task.End:MM/dd HH:mm}";
  117. }
  118. }
  119. MainGanttChart.SetData(_ganttData);
  120. }
  121. private void NewToolStripButton_Click(object sender, EventArgs e)
  122. {
  123. Reload();
  124. }
  125. private void TimelineOffsetTrackBar_ValueChanged(object sender, EventArgs e)
  126. {
  127. MainGanttChart.TimelineOffsetHours = TimelineOffsetTrackBar.Value;
  128. Reload();
  129. }
  130. }
  131. }