创建自定义日历

例如某个任务是星期三和星期天休息,其他任务则正常双休。

参考代码:

 

 

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("某某日历")

 

实际开发过程可根据需要选用。


本页地址:http://www.foxtable.com/webhelp/topics/4016.htm