通过代码增加任务

前面两节用不同的方式增加了两个任务,这一节则通过代码来完成同样的工作。

下面的代码我做了详尽的注释,请务必仔细体会:

Dim gv As GanttView = e.Form.Controls("GanttView1").GanttView
gv.Tasks.Clear()
'清除原来的任务
gv.StartDate =
New Date(2024, 9, 1) '设置项目的起始日期,每个任务的开始日期不能早于此日期

Dim tk1 As New Gantt.Task '增加一个任务
tk1.Name =
"Task1" '设置任务名名称
tk1.Mode = Gantt.TaskMode.Automatic
'计划模式为自动
tk1.ConstraintDate =
New Date(2024, 9, 2) '约束日期
tk1.ConstraintType = Gantt.ConstraintType.StartNoEarlierThan
' 起始日期不早于约束日期
tk1.Duration = 8
'任务持续时间为8个工作日
tk1.DurationUnits = Gantt.DurationUnits.Days
'设置时间单位为天,因为默认就是天,所以这行代码可以省略。
gv.Tasks.Add(tk1)
'将任务添加到Tasks集合 

Dim tk2 As New Gantt.Task() '增加一个任务
tk2.Name =
"Task2" '设置任务名称
tk2.Mode = Gantt.TaskMode.Automatic
'计划模式为自动
tk2.ConstraintDate =
New Date(2024, 9, 13) '约束日期
tk2.ConstraintType = Gantt.ConstraintType.StartNoEarlierThan ' 起始日期不早于约束日期
tk2.Duration = 6
'任务持续时间为6个工作日
Dim
pre As New Gantt.Predecessor() '定义一个前置类
pre.PredecessorTask = tk1
' 设置前驱任务为Task1
pre.PredecessorType = Gantt.PredecessorType.FinishToStart
'两个任务的关系为"FinishToStart" ,也就是前驱任务完成后才开始本任务
tk2.Predecessors.Add(pre)
'将 前置类添加到Predecessors集合
gv.Tasks.Add(tk2)
'将任务添加到Tasks集合


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