创建自定义日历
例如某个任务是星期三和星期天休息,其他任务则正常双休。
参考代码:
Dim gv As GanttView = e.Form.Controls("GanttView1").GanttView
Dim cal As New Gantt.CustomCalendar() '新建一个日历
cal.Name = "某某日历" '日历名
Dim wk As New Gantt.WorkWeek() '新建工作周
wk.Name = "某某工作周" '工作周名
wk.StartDate = New Date(2024, 1, 1) '工作周生效起始日期
wk.FinishDate = New Date(2024, 12, 31) '工作周生效结束日期
wk.WednesdayTimes.DayTimesKind = Gantt.DayTimesKind.NonworkingTime '星期三休息
wk.SaturdayTimes.DayTimesKind = Gantt.DayTimesKind.SpecificTimes '星期六要工作,自行指定工作时间。
wk.SaturdayTimes.Interval_1.Empty = False '星期六第一个工作时段为上午9点到中午1点
wk.SaturdayTimes.Interval_1.From = New Date(1, 1, 1, 1, 9, 0, 0, 0)
wk.SaturdayTimes.Interval_1.To = New Date(1, 1, 1, 1, 13, 0, 0, 0)
wk.SaturdayTimes.Interval_2.Empty = False '星球六的第二个工作时段为下午2点到6点。
wk.SaturdayTimes.Interval_2.From = New Date(1, 1, 1, 1, 14, 0, 0, 0)
wk.SaturdayTimes.Interval_2.To = New Date(1, 1, 1, 1, 18, 0, 0, 0)
cal.WorkWeeks.Add(wk) '将工作这加入到日历的工作周集合中
gv.CustomCalendars.Add(cal) '将日历增加到GanttView日历集合中
'为任务Task1指定日历
Dim tk As Gantt.Task = gv.Tasks.Search("Task1")
tk.Calendar = cal
提示:
tk.Calendar = cal
等效于:
tk.CalendarID = cal.ID
或:
tk.Calendar = gv.CustomCalendars.Search("某某日历")
实际开发过程可根据需要选用。