共计 2459 个字符,预计需要花费 7 分钟才能阅读完成。
VARCHART XGantt 是一个交互式的甘特图控件,其模块化的设计让您可以创建满足您和您的客户所需求的应用程序。VARCHART XGantt 可以快速、简单地集成到您的应用程序中,帮助您识别性能瓶颈、避免延迟以及高效利用资源,使复杂数据变得更加容易理解。本篇文章主要介绍 VARCHART XGantt 用户手册中的如何提供数据(针对 ActiveX 版),这个版本与.NET 版本最大的区别就是代码不同,现在就跟着小编来看一下吧~
为了显示活动和链接,需要为 VARCHART XGantt 提供数据。默认情况下,所需的通信由两个表实现:
- Maindata
2. 关系
通过加载数据文件 samples.ini,表格由以下数据填充:
Maindata 表的字段:
关系领域:
此外,必须手动定义所需字段。您可以在设计时通过对话框编辑数据表,或在运行时通过对象 VcDataTableFieldCollection 的 Add(…)方法执行此操作。
如果您需要的表格多于默认定义的两个表格,则可以在属性页面上创建它们,单击常规属性页面上启用的扩展数据表后,在属性页面上管理数据表。您可以在对话框编辑数据表中创建(或编辑)新表所需的字段。
VcDataRecordCollection 的 DataRecordByID()方法允许通过主键快速查找对象。
为了使我们的入门示例中的活动和链接可见,您需要首先在数据表中输入一些记录。
这可以通过使用对象类型 VcDataRecordCollection 的 Add(…)方法来完成。方法 EndLoading 完成了相应图表的数据输入。为此,请在表单的 Load 事件中输入以下代码行。
示例代码
Set dataTable = VcGantt1.DataTableCollection.DataTableByName(“Maindata”)
Set dataRecCltn = dataTable.DataRecordCollection
dataRecCltn.Add “1;Node 1;07.05.2007;;5”
dataRecCltn.Add “2;Node 2;14.05.2007;;5”
dataRecCltn.Add “3;Node 3;21.05.2007;;5”
Set dataTable =
VcGantt1.DataTableCollection.DataTableByName(“Relations”)
Set dataRecCltn = dataTable.DataRecordCollection
dataRecCltn.Add “1;1;2”
dataRecCltn.Add “2;2;3”
VcGantt1.EndLoading
记录中的值由分号分隔。字段的顺序必须与数据定义中字段的顺序相对应。新记录必须具有明确的非空标识。记录中的日期必须与数据定义表中的 DateFormat 定义相对应。持续时间的解释取决于时间单位,并在常规属性页面上预设为 Days。
对于表和常规属性页上的每个对话框,一致定义 Date 输出格式。
从 CSV 文件加载数据
或者,您也可以从所谓的 CSV 文件加载数据。文件的结构必须符合以下方案:
示例代码
1;Node 1;07.05.2007;;5
2;Node 2;14.05.2007;;5
3;Node 3;21.05.2007;;5
1;1;2
2;2;3
每条记录都有自己的路线。行的内容对应于对象类型 VcDataRecordCollection 的 Add(…)方法的传递参数。
首先列出 Maindata 的记录,然后列出关系记录。使用 表名 以标记每个记录组的开头。
如果您在 intro.csv 下保存了这样的文件,您可以按如下方式导入数据:
示例代码
VcGantt1.Open(“c:intro.csv”)
指定表示的时间段
到目前为止,活动仍然是不可见的,因为时间尺度尚未适应节点所处的时间段。要显示的时间范围的可以由属性 TimeScaleStart 和 TimeScaleEnd 定义,也可以通过对象 VcGantt 的 OptimizeTimeScaleStartEnd(…)方法从数据中确定。
示例代码
VcGantt1.TimeScaleEnd = DateSerial(2008, 1, 1)
VcGantt1.TimeScaleStart = DateSerial(2007, 5, 4)
下面列出了我们的入门示例所需的代码行。
示例代码
Private Sub Form_Load()
VcGantt1.Width = ScaleWidth – VcGantt1.Left
VcGantt1.Height = ScaleHeight – VcGantt1.Top
Set dataTable = VcGantt1.DataTableCollection.DataTableByName(“Maindata”)
Set dataRecCltn = dataTable.DataRecordCollection
dataRecCltn.Add “1;Node 1;07.05.2007;;5
dataRecCltn.Add “2;Node 2;14.05.2007;;5”
dataRecCltn.Add “3;Node 3;21.05.2007;;5”
Set dataTable =
VcGantt1.DataTableCollection.DataTableByName(“Relations”)
Set dataRecCltn = dataTable.DataRecordCollection
dataRecCltn.Add “1;1;2”
dataRecCltn.Add “2;2;3”
VcGantt1.EndLoading
VcGantt1.OptimizeTimeScaleStartEnd (3)
End Sub
Private Sub Form_Resize()
VcGantt1.Width = ScaleWidth – VcGantt1.Left
VcGantt1.Height = ScaleHeight – VcGantt1.Top
End Sub
如果您现在运行该程序,结果对应一下图片。