下面的示例演示了在设计时刻如何创建甘特图,添加行动依存关系和进度线,并改善图表的外观。 为了显示计划任务持续时间和完成情况,为图表添加了两组数据,也即两个不同的 甘特 类型的系列。 原因是现在 XtraCharts 不能自动计算任务完成的程度,因此把一个系列用于呈现任务,而另一个系列则用于呈现任务的完成程度。
本文档由下列小节组成。
步骤 1-6: 新建图表并添加数据
-
启动 MS Visual Studio (2005、2008 或 2010),并且新建一个或者打开一个现有的 Windows 窗体应用程序。
-
把 ChartControl 拖放到窗体上。 注意, 在这种情况下,图表向导 可能会被调用 (如果启用了向导的“Display a wizard every time a new chart is added[当添加新图表时显示向导]”选项)。 在本例中,我们不需要使用向导,因此单击 取消(Cancel) 按钮来关闭向导窗口,并人工定制图表控件。
通过单击图表的 (智能标记) 操作列表的 在父容器中停靠 项,停靠图表控件以填充窗体。
-
为了新增一个图表系列,选中 ChartControl 图表控件,打开它的智能标记,并在任务列表中选择 Series(系列)... 项。 然后,Series Collection Editor(系列集合编辑器) 将被调用。
注意 注意,也可以通过在 属性 窗口中单击 ChartControl.Series 属性的省略号按钮来调用此编辑器。
-
然后,一个对话框将出现,它允许新增图表系列并管理其属性。 单击 Add(添加)... 按钮并从列表中选取 Gantt(甘特) 系列视图。
此系列将显示计划持续期间。 切换到 属性 标签页,并把系列的 Name 属性值设置为 Planned。
-
单击 Copy(复制) 按钮创建类似的系列。
然后,把系列的名称更改为 Completed。
-
通过在 Series Collection Editor(系列集合编辑器) 的 Points 标签页的网格中输入数据,从而把数据点添加到系列,如下图所示。
为 Completed 数据系列重复此操作。
步骤 7-8: 添加关系和进度线
-
在本步骤中,我们将添加行动依存关系 (也称为“任务链路”或“关系”)。 它们将显示任务顺序并指明 (在本例中) 行动不应开始,直至前一个行动结束。
使用 TaskLink Collection Editor(任务链路集合编辑器),这是通过在 Series Collection Editor(系列集合编辑器) 窗口中单击 "Links" 列内的省略号按钮 (...) 来调用的。 可以为系列中的每个数据点创建任务链路集合。 该点成为关系中的 父 点。
为除去第一个点以外的每个点添加任务链路,并以 "Finish-to-Start" 链路类型把它连接到前一个点。 在下面列出了链路点:
父点
链路类型
子点
Implementation Finish-to-Start Planning Demos&Docs Finish-to-Start Implementation Testing Finish-to-Start Demos&Docs Presentation Finish-to-Start Testing 注意,在链路表示形式中,一个箭头指向关系的父点。
-
一条 常数线 将作为甘特图的“进度线”。 选中水平的 AxisY (Y 轴,在本例中为日期时间轴),在 属性 窗口中单击 ConstantLines 项的省略号按钮,从而调用 Constant Line Collection Editor(常数线集合编辑器)。 单击 Add(添加) 按钮添加一项,并把它的 Name 属性设置为 PROGRESS、把 LineStyle.DashStyle 属性设置为 Dash、把 AxisValue 属性设置为 10/10/2008。
步骤 9-12: 定制外观
现在图表已经就绪,但是似乎太拥挤了,难以辨别数据标签和轴标记。 为了改善图表的外观,执行下列操作:
-
隐藏图表图例,因为它提供的信息量不大。 选中图例,并把它的 Visible 属性设置为 false。
-
选中日期时间轴 (AxisY 对象,Y 轴)。 把它的 DateTimeOptions.Format 属性设置为 MonthAndDay、把 GridSpacing 属性设置为 10 (意思是每个刻度等于 10 天)。
把 Interlaced 属性设置为 true,从而通过创建两组有不同颜色的数值带、并且沿轴交替刻度标记,来布局图象空间。
把 Label.Angle 属性设置为 -30 而从视觉上把标签分开。 然后需要设置抗锯齿选项 —— 把 Label.Antialiasing 属性设置为 true。
-
隐藏数据系列标签 —— 把每个数据系列的 Label.Visible 属性设置为 false。
使用里程碑公共符号 —— 一个倒三角形 —— 标记任务终点。 因此,把 "Planned" 系列的 MaxValueMarker.Kind 属性设置为 "Inverted Triangle",并把它的 Visible 属性设置为 true。 (译者注: 首先选中 "Planned" 系列,在“属性”窗口中展开 “View” 属性及其 “MaxValueMarker” 属性,然后再设置这些属性)
如果我们需要使用黑色实心的里程碑,就必须修改 MaxValueMarker 的下列属性: 把 Color 属性设置为 "Black"、把 BorderColor 属性设置为 "Black"、并把 FillStyle.FillMode 属性设置为 "Solid"。
-
还可以改变条宽,从而使两个重叠的系列都清晰可见 (Series.View.BarWidth = 0.5 和 0.3),并且调整箭头尺寸 (LinkOptions.ArrowHeight = 11 和 LinkOptions.ArrowWidth = 9)。
结果
在下面的插图中显示了形成的图表。