绑定带来的日期问题
使用绑定会带来便利,但也会带来一些麻烦,第一个麻烦就是起始日和结束日期的问题。
绑定到数据表之后,会出现以下问题:
1、对于手动任务,Start列和Finish列有数据,但Duration没有数据,也就是有起始日期和结束日期,但没有持续天数,根据起始日期和结束日期来计算持续的工作天数
,是非常困难的。
2、对于自动任务,Start列和Finish列没有数据,ConstraintDate、ConstraintType和Duration有数据,根据这三列数据计算起始日期和结束日期同样是不容易的。
3、对于摘要任务,则上述5列都没有数据。
但实际上,将甘特图转换为数据表后,不管是何种任务,都应该有开始日期、结束日期和持续天数这三个数据才行,否则很不方便。
为解决这个问题,可以将窗口的AfterClose事件代码改为:
Dim
gv
As
GanttView = e.Form.Controls("GanttView1").GanttView
For
Each
dr
As
DataRow
In
DataTables("Tasks").DataRows
Dim
tk
As
Gantt.Task = gv.Tasks.Search(dr("TaskID"))
'根据TaskID找到对应的任务
dr("Start")
= tk.Start
'获取开始日期
dr("Finish")
= tk.Finish
'获取结束日期
dr("Duration")
= tk.Duration
'获取任务持续天数
Next
gv.SaveSettings()
'将设置信息保存到数据表
DataTables("Properties").Save()
DataTables("Calendars").Save()
DataTables("Resources").Save()
DataTables("Tasks").Save()