VARCHART XGantt用戶手冊(cè):數(shù)據(jù)表——?jiǎng)?chuàng)建和修改數(shù)據(jù)記錄(ActiveX版)
VARCHART XGantt是一個(gè)交互式的甘特圖控件,其模塊化的設(shè)計(jì)讓您可以創(chuàng)建滿足您和您的客戶所需求的應(yīng)用程序。除此之外,同時(shí)還具有一個(gè)穩(wěn)定可靠的甘特圖工具,在編寫(xiě)第一行代碼之前,您就可以知道是否可以滿足客戶的需求。本文主要描述甘特圖數(shù)據(jù)表教程中的創(chuàng)建和修改數(shù)據(jù)記錄!這是ActiveX版本的教程,本文內(nèi)容緊接上文(創(chuàng)建數(shù)據(jù)表)~
創(chuàng)建和修改數(shù)據(jù)記錄
定義數(shù)據(jù)表字段之后,您可以通過(guò)API將數(shù)據(jù)記錄添加到表中。有兩種向記錄中添加數(shù)據(jù)的方法。我們建議使用一種常見(jiàn)的做法來(lái)定義類型變量的數(shù)組,其元素的數(shù)量與數(shù)據(jù)表字段的數(shù)量相對(duì)應(yīng)。
示例代碼
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
可以通過(guò)DataRecordCollection的Add()方法添加數(shù)據(jù)記錄,變體數(shù)組作為參數(shù)傳遞。
示例代碼
Set dataRec1 = dataRecCltn.Add(dataRecVal)
第二種方法是使用由數(shù)據(jù)值組成的字符串,這些數(shù)據(jù)值由分號(hào)分隔。
示例代碼
Set dataRec2 = dataRecCltn.Add("2;Node 2;15.01.07;;9")
如果數(shù)據(jù)值本身包含分號(hào),則該字符串必須用雙引號(hào)括起來(lái)。
示例代碼
Set dataRec2 = dataRecCltn.Add("2; ""Node 2;"";15.01.07;;9")
可以通過(guò)DataRecordByID()方法和主鍵快速找到對(duì)數(shù)據(jù)庫(kù)對(duì)象的引用。
示例代碼
Set dataRec1 = dataRecCltn.DataRecordByID(1) Set dataRec2 = dataRecCltn.DataRecordByID(2)
通過(guò)使用索引屬性DataField(),可以輕松修改數(shù)據(jù)記錄的單個(gè)數(shù)據(jù)字段的內(nèi)容。對(duì)于替換記錄的所有數(shù)據(jù)字段的內(nèi)容,屬性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
記錄的修改僅在調(diào)用對(duì)象DataRecord的Update()方法之后才顯示在圖表中。
通過(guò)Alldata讀取數(shù)據(jù)字段值可在設(shè)計(jì)時(shí)快速顯示數(shù)據(jù),并輕松將數(shù)據(jù)記錄的內(nèi)容傳輸?shù)狡渌淼挠涗浿小?/p>
示例代碼
Dim content As String content = dataRec1.AllData & vbCr & dataRec2.AllData & vbCr & dataRec1.DataField(Main_Name) MsgBox (content)
注意:為了提高訪問(wèn)數(shù)據(jù)字段時(shí)的可讀性,可以定義全局常量,其名稱比索引號(hào)更具描述性。
請(qǐng)?jiān)谙旅嬲业揭恢碌拇a分區(qū)。
示例代碼
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)
這是輸出:
本教程內(nèi)容完結(jié)啦,感興趣的朋友可以下載VARCHART XGantt體驗(yàn)一下哦~
相關(guān)內(nèi)容推薦:
VARCHART XGantt用戶手冊(cè):數(shù)據(jù)表——處理數(shù)據(jù)表(ActiveX版)
VARCHART XGantt用戶手冊(cè):數(shù)據(jù)表——處理數(shù)據(jù)表(.NET版)
VARCHART XGantt用戶手冊(cè):數(shù)據(jù)表——?jiǎng)?chuàng)建和修改數(shù)據(jù)記錄(.NET版)
VARCHART XGantt用戶手冊(cè):如何添加、復(fù)制、刪除或編輯框
想要購(gòu)買(mǎi)VARCHART XGantt正版授權(quán),或了解更多產(chǎn)品信息請(qǐng)點(diǎn)擊“咨詢?cè)诰€客服”