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

数据表——创建和修改数据记录(ActiveX版)


VARCHART XGantt是一个交互式的甘特图控件,其模块化的设计让您可以创建满足您和您的客户所需求的应用程序。除此之外,同时还具有一个稳定可靠的甘特图工具,在编写第一行代码之前,您就可以知道是否可以满足客户的需求。本文主要描述甘特图数据表教程中的创建和修改数据记录!这是ActiveX版本的教程,本文内容紧接上文(创建数据表)~

点击下载VARCHART XGantt最新版

创建和修改数据记录

定义数据表字段之后,您可以通过API将数据记录添加到表中。有两种向记录中添加数据的方法。我们建议使用一种常见的做法来定义类型变量的数组,其元素的数量与数据表字段的数量相对应。

示例代码

Dim dataTable As VcDataTable
Dim dataRecCltn As VcDataRecordCollection
Dim dataRecVal() As Variant
Dim dataRec1 As VcDataRecord
Dim dataRec2 As VcDataRecord
Set dataTable = VcGantt1.DataTableCollection.DataTableByName("Maindata")
Set dataRecCltn = dataTable.DataRecordCollection

ReDim dataRecVal(dataTable.DataTableFieldCollection.Count)
dataRecVal(0) = 1
dataRecVal(1) = "Node 1"
dataRecVal(2) = DateSerial(2007, 1, 8)
dataRecVal(4) = 8

可以通过DataRecordCollection的Add()方法添加数据记录,变体数组作为参数传递。

示例代码

Set dataRec1 = dataRecCltn.Add(dataRecVal)

第二种方法是使用由数据值组成的字符串,这些数据值由分号分隔。

示例代码

Set dataRec2 = dataRecCltn.Add("2;Node 2;15.01.07;;9")

如果数据值本身包含分号,则该字符串必须用双引号括起来。

示例代码

Set dataRec2 = dataRecCltn.Add("2; ""Node 2;"";15.01.07;;9")

可以通过DataRecordByID()方法和主键快速找到对数据库对象的引用。

示例代码

Set dataRec1 = dataRecCltn.DataRecordByID(1)
Set dataRec2 = dataRecCltn.DataRecordByID(2)

通过使用索引属性DataField(),可以轻松修改数据记录的单个数据字段的内容。对于替换记录的所有数据字段的内容,属性AllData非常有用。

示例代码

dataRec1.DataField(Main_ID) = 1
dataRec1.DataField(Main_Name) = "Activity X"
dataRec1.DataField(Main_Start) = DateSerial(2007, 1, 4)
dataRec1.DataField(Main_Duration) = 12
dataRec1.UpdateDataRecord

dataRec2.AllData = "2;Activity Y;18.01.07;;5"
dataRec2.UpdateDataRecord

记录的修改仅在调用对象DataRecordUpdate()方法之后才显示在图表中。

通过Alldata读取数据字段值可在设计时快速显示数据,并轻松将数据记录的内容传输到其他表的记录中。

示例代码

Dim content As String
content = dataRec1.AllData & vbCr & dataRec2.AllData & vbCr &
dataRec1.DataField(Main_Name)
MsgBox (content)

注意:为了提高访问数据字段时的可读性,可以定义全局常量,其名称比索引号更具描述性。

请在下面找到一致的代码分区。

示例代码

Const Main_ID = 0
Const Main_Name = 1
Const Main_Start = 2
Const Main_Duration = 4
'... 
Dim dataRec1 As VcDataRecord
Dim dataRec2 As VcDataRecord

Dim content As String
VcGantt1.TimeScaleEnd = DateSerial(2008, 1, 1)
VcGantt1.TimeScaleStart = DateSerial(2007, 1, 1)

VcGantt1.ExtendedDataTablesEnabled = True
Set dataTable = VcGantt1.DataTableCollection.DataTableByName("Maindata")
Set dataRecCltn = dataTable.DataRecordCollection

ReDim dataRecVal(dataTable.DataTableFieldCollection.Count)

dataRecVal(Main_ID) = 1
dataRecVal(Main_Name) = "Node 1"
dataRecVal(Main_Start) = DateSerial(2007, 1, 8)
dataRecVal(Main_Duration) = 8
Set dataRec1 = dataRecCltn.Add(dataRecVal)

dataRecCltn.Add("2;Node 2;15.01.07;;9")

VcGantt1.EndLoading

'...

Set dataRec1 = dataRecCltn.DataRecordByID(1)
Set dataRec2 = dataRecCltn.DataRecordByID(2)

dataRec1.DataField(Main_ID) = 1
dataRec1.DataField(Main_Name) = "Activity X"
dataRec1.DataField(Main_Start) = DateSerial(2007, 1, 4)
dataRec1.DataField(Main_Duration) = 12
dataRec1.UpdateDataRecord

dataRec2.AllData = "2;Activity Y;18.01.07;;5"
dataRec2.UpdateDataRecord

content = dataRec1.AllData & vbCr & dataRec2.AllData & vbCr &
dataRec1.DataField(Main_Name)
MsgBox (content)
'...
dataRec2.AllData = "2;""Activity Y;Z"";18.01.07;;5"
dataRec2.UpdateDataRecord
content = dataRec1.AllData & vbCr & dataRec2.AllData
MsgBox (content)

这是输出:

创建和修改数据记录

本教程内容完结啦,感兴趣的朋友可以下载VARCHART XGantt体验一下哦~

相关内容推荐:

VARCHART XGantt用户手册:数据表——处理数据表(ActiveX版)

VARCHART XGantt用户手册:数据表——处理数据表(.NET版)

VARCHART XGantt用户手册:数据表——创建和修改数据记录(.NET版)

VARCHART XGantt用户手册:如何添加、复制、删除或编辑框


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

Zend-Studio-640×220.png