绑定带来的日期问题

使用绑定会带来便利,但也会带来一些麻烦,第一个麻烦就是起始日和结束日期的问题。

绑定到数据表之后,会出现以下问题:

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()


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