设置特殊日历例外

示例一

假定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属性设置为FinishDateFinishDate属性才会生效:
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属性设置为FinishDateFinishDate属性才会生效:
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)

 


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