乐趣区

VARCHART-XGanttv51用户手册如何提供数据ActiveX版

VARCHART XGantt 是一个交互式的甘特图控件,其模块化的设计让您可以创建满足您和您的客户所需求的应用程序。VARCHART XGantt 可以快速、简单地集成到您的应用程序中,帮助您识别性能瓶颈、避免延迟以及高效利用资源,使复杂数据变得更加容易理解。本篇文章主要介绍 VARCHART XGantt 用户手册中的如何提供数据(针对 ActiveX 版),这个版本与.NET 版本最大的区别就是代码不同,现在就跟着小编来看一下吧~

为了显示活动和链接,需要为 VARCHART XGantt 提供数据。默认情况下,所需的通信由两个表实现:

  1. 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
如果您现在运行该程序,结果对应一下图片。

退出移动版