logo VARCHART XGantt 2019教程 我也要发布文档

如何创建直方图(ActiveX版)(上)


VARCHART XGantt,用于工业4.0项目管理、交互式的甘特图绝佳解决方案,世界级甘特图大师。它是一个交互式的甘特图控件,其模块化的设计让您可以创建满足您和您的客户所需求的应用程序。(我们领先的甘特图控件VARCHART XGantt可用于.NET,ActiveX和ASP.NET应用程序。)

点击下载VARCHART XGantt免费版

在此示例中,您将熟悉直方图。我们将演示如何定义可用性曲线,如何从活动创建容量曲线以及如何在工作负载内可视化标记的活动部分。

13.png

在上面的示例中,活动按单个单元的数量占用资源。在活动重叠的地方,占用单位加起来等于所占总容量。

在接下来的步骤中,我们将通过上述功能完成我们前面的示例。为了更好地说明直方图的功能,我们使用了不同的记录和无限链接。 Form1_Load示例已修改,如下所示:

示例代码

Private Sub Form_Load()
 VcGantt1.Width = ScaleWidth - VcGantt1.Left
 VcGantt1.Height = ScaleHeight - VcGantt1.Top

 VcGantt1.InsertNodeRecord ("1;Node 1;07.05.07;;5")
 VcGantt1.InsertNodeRecord ("2;Node 2;09.05.07;;5")
 VcGantt1.InsertNodeRecord ("3;Node 3;10.05.07;;6")
 VcGantt1.InsertNodeRecord ("4;Node 4;17.05.07;;10")
 VcGantt1.InsertNodeRecord ("5;Node 5;22.05.07;;3")
 VcGantt1.InsertNodeRecord ("6;Node 6;23.05.07;;1")
 VcGantt1.EndLoading

 VcGantt1.OptimizeTimeScaleStartEnd (3)

 'Calculating the end date of all nodes
 Dim node As VcNode
 VcGantt.SuspendUpdate True
 For Each node In VcGantt1.NodeCollection
 SetNodeEndDate node
 Next
 VcGantt.SuspendUpdate False
End Sub

此外,我们从上面的示例中删除了过滤器(“里程碑”,“活动”)和附加层(“里程碑”)。完整的程序可以在UserGuideSamples \ VB6 \ XGantt_Tutorial02目录中找到。

首先,通过选择单选按钮甘特图直方图,需要在图表区域部分的属性页面布局上显示直方图

14.png

标记的节点应显示交叉影线图案。因此,在属性页的节点部分,节点的标记类型将图表中的字段设置无标记

15.png

稍后将在我们的示例中再次需要一个数据字段,我们现在将创建该数据字段。在“编辑数据表”对话框中,请创建一个Integer类型的字段并将其命名为Selected。该字段将使活动的显示取决于ist标记状态。

16.png

每次触发事件OnNodesMarkComplete时,都需要更新Selected字段的值。

示例代码

Private Sub VcGantt1_OnNodesMarkComplete()
 Dim node As VcNode
 For Each node In VcGantt1.NodeCollection
 If node.MarkNode = True Then
 node.DataField(5) = 1
 Else
 node.DataField(5) = 0
 End If
 node.UpdateNode
 Next
End Sub

OnNodeCreateCompleteEx事件中,以下代码将防止新创建的节点在出现时被标记。由于在创建新节点时,先前选择的所有节点都将未标记,因此必须更新“Selected”字段的内容。

示例代码

Private Sub VcGantt1_OnNodeCreateCompleteEx _
 (ByVal node As VcGanttLib.VcNode,_
 ByVal creationType As VcGanttLib.CreationTypeEnum,_
 ByVal isLastNodeInSeries As Boolean)
 node.DataField(1) = "Node " + node.DataField(0)
 node.MarkNode = False
 node.UpdateNode
 Dim node As VcNode
 For Each node In VcGantt1.NodeCollection
 node.DataField(5) = 0
 node.UpdateNode
 Next
End Sub

接下来,我们将定义区分标记和未标记活动的过滤器。请单击按钮Filter ...在属性页面对象上获取对话框“管理过滤器”。请通过单击创建两个新过滤器20190902095348.png,并将其中一个命名为NotSelected,另一个命名为Marked

17.png

要过滤NotSelected,请设置条件选择不等于1

18.png

对于过滤器Selected,请将条件选择设置为1

19.png

现在,活动的外观应与过滤器相关联。请单击属性页面对象上的“图层”按钮,转到“指定栏外观”对话框。将图层Start-End重命名为Unmarked Nodes,并将过滤器NotSelected指定给它。通过单击复制图层20190903110633.png并命名复制标记节点。将选定过滤器分配给图层。

20.png

两层看起来仍然相似。在对话框编辑图层中,通过选择图案交叉影线和背景颜色黄色来修改图层SelectedNodes的设计。

注意:在属性页面节点上,应勾选“显示非工作间隔”,以确保在非工作间隔(例如,在周末)将显示一行而不是一条栏。

21.png

本教程内容尚未结束,后续内容请看下面~

相关文章:

VARCHART XGantt_v5.1用户手册:如何创建直方图(ActiveX版)(下)

VARCHART XGantt_v5.1用户手册:如何使用过滤器(.NET版)

VARCHART XGantt_v5.1用户手册:如何使用过滤器(ActiveX版)

VARCHART XGantt_v5.1用户手册:如何使用图层


想要购买VARCHART XGantt正版授权,或了解更多产品信息请点击“咨询在线客服”

扫描关注慧聚IT微信公众号,及时获取最新动态及最新资讯

1563778777.jpg