Forms("设计计划甘特图").Show() Dim Chart As WinForm.Chart Chart= Forms("设计计划甘特图").Controls("Chart1") Chart.ChartType = ChartTypeEnum.Gantt '图表类型为甘特图 Chart.SeriesList.Clear Dim t As Table = Tables("设计分配计划表") Chart.Inverted = True '对调X轴和Y轴位置 Chart.AxisY.DateType= True 'Y轴为日期型 Chart.AxisY.AnnoFormatString = "MM-dd" '设置Y轴的标示格式' Chart.AxisX.GridMajorVisible = False '隐藏X轴的网格线\ With Forms("设计分配按人筛选").Controls("设计人员") If .Value IsNot Nothing Then Dim drs As List(Of DataRow) drs = DataTables("设计分配计划表").Select("[设计3D_担当] = '" & .Value & "' or [设计2D_担当] = '" & .Value & "'") For Each dr As DataRow In drs With Chart.SeriesList If dr("设计3D_担当") = dr("设计2D_担当") Then Dim d1,d2,d3,d4 As Date d1 = dr("设计3D_计划开始日期") d2 = dr("设计3D_计划结束日期") d3 = dr("设计2D_计划开始日期") d4 = dr("设计2D_计划结束日期") If d4 <= d1 Then .AddGanttSeries(dr("治具规格"),New DateTime() {d1, d2},New DateTime() {d3, d4}) ElseIf d3 >= d2 Then .AddGanttSeries(dr("治具规格"),New DateTime() {d1, d2},New DateTime() {d3, d4}) ElseIf d3 < d1 AndAlso d4 > d2 Then .AddGanttSeries(dr("治具规格"),d3, d4) ElseIf d3 < d1 AndAlso d4 < d2 Then .AddGanttSeries(dr("治具规格"),d3, d2) ElseIf d3 > d1 AndAlso d4 > d2 Then .AddGanttSeries(dr("治具规格"),d1, d4) Else .AddGanttSeries(dr("治具规格"),d1, d2) End If Else Dim d1, d2 As Date If dr("设计3D_担当") = Forms("设计分配按人筛选").Controls("设计人员").value Then d1 = dr("设计3D_计划开始日期") d2 = dr("设计3D_计划结束日期") Else d1 = dr("设计2D_计划开始日期") d2 = dr("设计2D_计划结束日期") End If .AddGanttSeries(dr("治具规格"),d1, d2) End If '.AddGanttLabels("M月d日") End With Next End If End With
|