设置chart control
1. 隐藏列
task data provider为: {id: "T1", name: "Task #1", startTime: "1/14/2008 8:0:0", endTime: "1/28/2008 17:0:0"}
要隐藏的话, 设置列visible属性为false:
<mx:AdvancedDataGridColumn dataField="name" headerText="Name"/>
<mx:AdvancedDataGridColumn dataField="startTime" headerText="Start" visible="false"/>
<mx:AdvancedDataGridColumn dataField="endTime" headerText="End" visible="false"/>
这里的endTime和startTime的visible属性为false, 所以不会显示; id没有列出, 所以也不会显示
2. 为task设置图标, 使用GanttDataGrid的iconFunction属性, 来设置task的icon
[Embed(source="summary.png")]
public var SummaryIcon:Class;
[Embed(source="leaf.png")]
public var LeafIcon:Class;
public function customIconFunction(item:Object):Class {
var taskItem:TaskItem = taskChart.ganttSheet.itemToTaskItem(item);
return taskItem.isSummary ? SummaryIcon : LeafIcon;
}
<ilog:dataGrid>
<ilog:GanttDataGrid iconFunction="customIconFunction" />
</ilog:dataGrid>
3. 设置时间的可视范围
使用GanttSheet的visibleTimeRangeStart和visibleTimeRangeEnd这两个属性来设置它的范围, 】
<ilog:ganttSheet>
<ilog:GanttSheet
visibleTimeRangeStart="{new Date(2008, 0, 1)}"
visibleTimeRangeEnd="{new Date(2008, 11, 31, 24)}" />
</ilog:ganttSheet>
当这个范围没有设置的时候, task chart根据task data provider的数据来设置这个范围, 这里的时间范围是2008-01-01 00:00:00到2008-12-31 24:00:00
4. 设置最大和最小的可视时间
上面所说的可视范围永远是在这个范围之内的
<ilog:ganttSheet>
<ilog:GanttSheet minVisibleTime="{new Date(2007, 0, 1)}" maxVisibleTime="{new Date(2010, 11, 31, 24)}"/>
</ilog:ganttSheet>
这里的时间范围是从2007-01-01 00:00:00到2007-12-31 24:00:00
5. tasks和constraints的tooltips
两种类型的tooltip: 鼠标滑过时显示的tooltip; 编辑(移动或者resize)task时, 作为对正在进行的操作的回馈而显示的tooltip。默认情况下, 这两个tooltip显示的内容是相同的, task: task的名字、 开始时间、结束时间和持续时间; constraint: constraint的种类、source task和destination task。 可以通过设置GanttSheet的dataTipField或者dataTipFunction属性来自定义data tip将要显示的内容。 设置GanttSheet的editingTipFunction属性来自定义editing tip将要显示的内容。
6. 设置工作和非工作日期
工作和非工作日期由以下属性设置
属性 描述
nonWorkingDays 一个由非工作日组成的数组, 0表示Sunday、6表示Saturday
workingTimes 可以使用数组或者对象来作为此参数的值, 每一个对象需要包含以下属性:
rangeStart: 工作时间范围的开始时间, 一个形如HH:MM的字符串, 此属性未必须属性
rangEnd: 工作时间范围的结束时间, 一个形如HH:MM的字符串, 此属性未必须属性
days: 数组; 指定此workingTime对哪些天有效; 可选值从0(Sunday)~6(Saturday); 此属性可选, 当此属性未设置时, 设置的workingTime对所有workDay有效
例: workingTimes="{[ {rangeStart: '8:00', rangeEnd: '11:45'}, {rangeStart: '12:45', rangeEnd: '17:30'}, {days: [5], rangeStart: '8:00', rangeEnd: '11:45'}, {days: [5], rangeStart: '12:45', rangeEnd: '16:30'} ]}"
nonWorkingRanges 非工作时间, 对nonWorkingDays的一个补充, 可以是一个数组也可以是一个对象, 它的优先级高于另外两个属性, 它的成员可以是
1) 一个Date对象, 指定某一天为非工作时间
2) 一个包含以下属性的对象
rangeStart: 一个表示非工作时间范围的开始时间的Date对象
rangeEnd: 一个表示非工作时间范围的结束时间的Date对象
例: nonWorkingRanges="{[ new Date(2007,11,25), {rangeStart: new Date(2008,1,1,12,0), rangeEnd: new Date(2008,1,4,14,30} ]}"
表示2007-11-25一整天和2008-02-01 12:00:00到2008-02-04 14:30:00为非工作时间
7. resize task的时候管理task
当设置了此属性之后, move或者resize task的时候, task只能以设置的值来跳动, 比如说<ilog:GanttSheet snappingTimePrecision=”{{unit: TimeUnit.DAY, steps: 1}}”/>, 就只能是一天一天的动。