手动计划

任务的计划模式有两种,分别是手动计划和自动计划.

手动计划可以提供最大的灵活性,可直接指定任务的开始日期和结束日期, 不会因为约束、前驱任务或资源的依赖关系而导致任务日程被动变更。

我们通常将计划模式为手动的任务,称为手动任务,我们可以通过拖动、手动或代码方式增加手动任务。

在添加手动任务时,不需要(也不能)设置约束,而是直接指定任务的起始日期和结束日期:

如果通过拖动创建手动任务,会自动生成起始日期和结束日期。

如果要改为通过起始时间和持续时间来设置日程,则要先去掉结束日期复选框的勾选状态:

你可以通过代码创建手动任务,例如:

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.Manual
'计划模式为手动
tk1.Start =
New Date(2024, 9, 2) '任务开始日期
tk1.Finish =
New Date(2024, 9, 12) '任务结束日期
gv.Tasks.Add(tk1)
'将任务添加到Tasks集合

Dim tk2 As New Gantt.Task() '增加一个任务 ,通过开始日期和持续天数来设置日程
tk2.Name =
"Task2" '设置任务名称
tk2.Mode = Gantt.TaskMode.Manual
'计划模式为手动
tk2.Start =
New Date(2024, 9, 13) '任务开始日期
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集合

运行上述代码,会得到两个手动任务:

手动任务很灵活,没有约束,例如我们可以拖动Task2调整其开始日期,使得其开始日期在前驱任务Task1的结束日期之前,如果是自动任务,这是不允许发生的:

如上图所示,系统对于这种日程冲突,会在表格的行号位置显示一个红色的冲突符号。


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