Gantt_Chart-Task_Chart-1-配置task_chart的数据

来源:互联网 发布:bbc听力软件下载 编辑:程序博客网 时间:2024/05/16 18:43

 

1. task chart 需要两个data provider: 

1) task data provider包含任务数据, 可以是一级的或者多级的或者分组的数据, 使用TaskChart的taskDataProvider属性来设置, task chart的数据表格完全使用AdvancedDataGrid所提供的功能

2) constraint data provider包含约束数据, 是一组同级别的数据, 使用TaskChart的constraintDataProvider属性来设置

 

除了设置TaskChart的taskDataProvider和constraintDataProvider, 还需要:

1) 指定每一列所对应的task数据项

2) 指定在gantt图中所对应的task数据项

3) 指定在gantt图中constraint数据之间的约束关系

 

2. constraint data provider必须是list-based的, 可以是

1) XML

包含xml文本的字符串; 

E4X格式的XML数据: <mx:XML> 或者 <mx:XMLList>

XML或者XMLList对象

2) IList 或者 ICollectionView

任何实现了IList 或者 ICollectionView的类的对象(例如: ArrayCollection 或者 XMLListCollection )

3) 其他对象

一个包含数据项的数组, 或者一个对象

 

当设置了TaskChart的constraintDataProvider属性之后, 会按照以下规则来使用:

1) XML 和 XMLList, 被包装成一个XMLListCollection对象

2) IList 和 ICollectionView, 直接使用

3) Array, 被包装成一个ArrayCollection对象

4) SctionScript 对象或者其他数据类型, 被包装成

例如, 当设置constraintDataProvider属性为一个Array对象时, 如果再去读取constraintDataProvider属性, 返回的将是一个ArrayCollection对象

 

3. 指定每一列所对应的task数据项

例: data provider的数据为:

id: "T1",

name: "Task #1",

startTime: "1/14/2008 8:0:0",

endTime: "1/28/2008 17:0:0"

指定数据项为:

<ilog:dataGrid>

<ilog:GanttDataGrid>

<ilog:columns>

<mx:AdvancedDataGridColumn dataField="name"  headerText="Name"/>

<mx:AdvancedDataGridColumn dataField="id" headerText="ID"/>

<mx:AdvancedDataGridColumn dataField="startTime" headerText="Start"/>

<mx:AdvancedDataGridColumn dataField="endTime" headerText="End"/>

</ilog:columns>

</ilog:GanttDataGrid>

</ilog:dataGrid>

 

4. 指定task数据项所对应的标签

taskEndTimeField        endTime or @endTime        task的结束时间

taskIsMilestoneField    milestone or @milestone     是否是milestone task

taskIsSummaryField   summary or @summary      是否是summary task

taskLabelField             name or @name                 task的名称

taskStartTimeField      startTime or @startTime      task的开始时间

 

1) taskEndTimeField和taskStartTimeField必须是一个时间对象或者是一个可以直接用来创建时间对象的字符串

2) taskIsMilestoneField和taskIsSummaryField必须是Boolea对象或者是 "true" 或 "false" 当中的任意一个字符串, 包含子task的任务会被默认的认为是summary task

 

5. 指定解析task数据项的方法(函数)

如果需要第二种方法来解析task数据, 可以使用taskEndTimeFunction, taskLabelFunction, taskStartTimeFunction, taskIsMilestoneFunction and taskIsSummaryFunction这些属性来获得end time, label, start time, milestone flag, and summar

例:

<?xml version="1.0"?>

<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" xmlns:ilog="http://www.ilog.com/2007/ilog/flex">

<mx:Script>

<![CDATA[

import mx.collections.HierarchicalData;

 

[Bindable]

public var tasks:HierarchicalData = new HierarchicalData([

{ id: "T1", name: "Task #1", startTime: "1/14/2008 8:0:0", endTime: "1/28/2008 17:0:0" },

{ id: "T2", name: "Milestone #1", milestone: "true", startTime: "1/29/2008 8:0:0", endTime: "1/29/2008 08:0:0" }

]);

 

public function parseDate(value:String):Date {

return new Date(value);

}

public function startTimeFunction(item:Object):Date {

return parseDate(item.startTime);

}

public function endTimeFunction(item:Object):Date {

return parseDate(item.endTime);

}

public function isMilestoneFunction(item:Object):Boolean {

return new Boolean(item["milestone"]);

}

]]>

</mx:Script>

 

<ilog:TaskChart

width="100%" height="100%"

taskDataProvider="{tasks}"

taskStartTimeFunction="{startTimeFunction}"

taskEndTimeFunction="{endTimeFunction}"

taskIsMilestoneFunction="{isMilestoneFunction}">

</ilog:TaskChart>

</mx:Application>

6. 指定constraint数据

1) 指定constraint数据所对应的标签

constraintKindField        kind or @kind        指定constraint的种类, 可选的值有startToStart, startToEnd, endToStart, endToEnd

2) 可以使用constraintKindFunction属性来从constraint数据当中或组kind的值

3) 指定tasks和constraints之间的关系

(1) TaskChart按照以下的规则来创建tasks和constraints之间的关系

一个task可以是0个或多个constraint的source或者destination

一个constraint包含一个source task和一个destination task

(2) 

taskIdField                      id or @idtask data         provider的内部唯一标示符, task的field

constraintFromIdField      fromId or @fromId        constraint的source task的id, constraint的field

constraintToIdField          toId or @toId                constraint的destination task的id, constraint的field

如果在外面改变了tasks和constraints之间的关系, 需要调用ICollectionView.itemUpdated()方法来告诉data provider数据已经改变了

(3) TaskChart提供了以下方法

getFromTask(constraint:Object):Object — 返回constraint的source task

getToTask(constraint:Object):Object — 返回constraint的destination task

getFromConstraints(task:Object):Array — 返回source为参数task的constraint数组

getToConstraints(task:Object):Array — 返回destination为参数task的constraint数组

 

原创粉丝点击