设置特殊日历例外
示例一
假定2024年没有双休,改为每五天休息一天,参考代码:
Dim
gv
As
GanttView = e.Form.Controls("GanttView1").GanttView
gv.DefaultDaysOff = Gantt.WeekDays.None
'取消原来的周末休息
Dim
exp
As
New
Gantt.CalendarException()
'定义一个日历例外
exp.Name =
"五天一休"
exp.StartDate =
New
Date(2024,
1, 1)
'例外开始日
exp.FinishDate =
New
Date(2024,
12, 31)
'例外结束日
'注意必须设置LimitedBy属性设置为FinishDate,FinishDate属性才会生效:
exp.LimitedBy = C1.Win.C1GanttView.ExceptionLimitedBy.FinishDate
exp.RecurrencePattern.Interval = 5
'每五天触发一次例外,也就是每五天休一天
gv.CalendarExceptions.Add(exp)
执行后的甘特图看起来是这样的:
示例二
要求2024年每个月第一周的星期三停工,用于设备检修维护,参考代码:
Dim
gv
As
GanttView = e.Form.Controls("GanttView1").GanttView
Dim
exp
As
New
Gantt.CalendarException()
'定义一个日历例外
exp.Name =
"设备月检修"
exp.StartDate =
New
Date(2024,
1, 1)
'例外开始日
exp.FinishDate =
New
Date(2024,
12, 31)
'例外结束日
'注意必须设置LimitedBy属性设置为FinishDate,FinishDate属性才会生效:
exp.LimitedBy = C1.Win.C1GanttView.ExceptionLimitedBy.FinishDate
exp.RecurrencePattern.WeekOfMonth = Gantt.WeekOfMonth.First
'例外发生在每月第一周
exp.RecurrencePattern.WeekDays = Gantt.WeekDays.Wednesday
'例外发生在第一周的星期三
gv.CalendarExceptions.Add(exp)
示例三
要求每年5月17日停工举办公司周年庆典:
Dim
gv
As
GanttView = e.Form.Controls("GanttView1").GanttView
Dim
exp
As
New
Gantt.CalendarException()
exp.Name =
"周年庆典"
exp.StartDate =
New
Date(2000,
1, 1)
exp.FinishDate =
New
Date(2100,
12, 31)
exp.LimitedBy = C1.Win.C1GanttView.ExceptionLimitedBy.FinishDate
exp.RecurrencePattern.MonthOfYear = 5
'例外发生在每年5月,如果每月都要发生,删除这样代码即可
exp.RecurrencePattern.DayOfMonth = 17
'例外发生在这个月的17日
gv.CalendarExceptions.Add(exp)