摘要
隨著紫金橋組態(tài)軟件和實(shí)時(shí)數(shù)據(jù)庫(kù)在全球范圍內(nèi)的廣泛應(yīng)用,為了滿足廣大客戶的應(yīng)用需求,紫金橋公司開(kāi)發(fā)了“通用數(shù)據(jù)表組件”,使用該組件可以在畫(huà)面緩存數(shù)據(jù),同時(shí)也可以作為一種類型以參數(shù)的形式進(jìn)行傳遞。使用該組件時(shí),可以把它想像成一個(gè)Excel表,因?yàn)閮?nèi)部原理也是以行列的形式進(jìn)行存儲(chǔ)的。該組件可以和自由報(bào)表聯(lián)合使用完成數(shù)據(jù)的展示。
本文詳細(xì)的介紹了紫金橋公司“通用數(shù)據(jù)表”提供的腳本函數(shù)和使用方法。
通用數(shù)據(jù)表的使用可以分成兩種方法:一種是作為組件,另一種是數(shù)據(jù)類型。下面分別介紹這兩種使用方法。
一、作為組件使用
創(chuàng)建通用數(shù)據(jù)表:打開(kāi)“拖拽子圖到窗口/組件、復(fù)雜精靈/報(bào)表/通用數(shù)據(jù)表”。如下圖:

雙擊或拖拽“通用數(shù)據(jù)表”圖標(biāo),一個(gè)通用數(shù)據(jù)表就建立了。這樣建立的通用數(shù)據(jù)表是一個(gè)窗口對(duì)象,在窗口內(nèi)可見(jiàn)。如下圖:

下面是在腳本中使用,向數(shù)據(jù)表中加入三列和二行數(shù)據(jù),列名為“姓名、年齡、成績(jī)”,內(nèi)容列表如下:
姓名 |
年齡 |
成績(jī) |
張三 |
25 |
98.5 |
李四 |
26 |
92 |
腳本內(nèi)容如下圖:

二、作為數(shù)據(jù)類型使用
如果你僅是想在某個(gè)腳本中臨時(shí)使用通用數(shù)據(jù)表,那么你不必在窗口中事先創(chuàng)建一個(gè)具有實(shí)體的通用數(shù)據(jù)表,只需定義一個(gè)臨時(shí)的通用數(shù)據(jù)表對(duì)象即可。
定義一個(gè)通用數(shù)據(jù)表是指在任意人機(jī)界面的腳本內(nèi)以數(shù)據(jù)類型的形式定義一個(gè)臨時(shí)對(duì)象,這就像定義一個(gè)臨時(shí)變量一樣。定義方法如下:
ObDataTable [對(duì)象名];
腳本內(nèi)容如下圖:

三、通用數(shù)據(jù)表支持的函數(shù)
1)BOOL Get(string ColName, int Row, int Val)
說(shuō)明:
從表格對(duì)象的指定的列、行中獲取整型數(shù)據(jù)。
參數(shù):
ColName,字符串型,列名。
Row,整型,行號(hào),從0開(kāi)始。
Val,整型變量,得到的整型數(shù)據(jù)。
返回值:
成功標(biāo)志,非 0 表示操作成功;0 表示失敗。
2)BOOL Get(string ColName, int Row, real Val)
說(shuō)明:
從表格對(duì)象的指定的列、行中獲取實(shí)型數(shù)據(jù)。
參數(shù):
ColName,字符串型,列名。
Row,整型,行號(hào),從0開(kāi)始。
Val,實(shí)型變量,得到的實(shí)型數(shù)據(jù)。
返回值:
成功標(biāo)志,非 0 表示操作成功;0 表示失敗。
3)BOOL Get(string ColName, int Row, string Text)
說(shuō)明:
從表格對(duì)象的指定的列、行中獲取文本數(shù)據(jù)。
參數(shù):
ColName,字符串型,列名。
Row,整型,行號(hào),從0開(kāi)始。
Text,字符串型變量,得到的文本數(shù)據(jù)。
返回值:
成功標(biāo)志,非 0 表示操作成功;0 表示失敗。
4)BOOL Set (string ColName, int Row, int Val)
說(shuō)明:
設(shè)置表格對(duì)象的指定的列、行中整型數(shù)據(jù)。
參數(shù):
ColName,字符串型,列名。
Row,整型,行號(hào),從0開(kāi)始。
Val,整型,要設(shè)置的整型數(shù)據(jù)。
返回值:
成功標(biāo)志,非 0 表示操作成功;0 表示失敗。
注意:
若想為通用數(shù)據(jù)表某一列增加一個(gè)單元格,則直接使用Set()即可,本對(duì)象不提供SetCount()和Add()函數(shù)。
每一列的數(shù)據(jù)類型必須相同。
5)BOOL Set(string ColName, int Row, real Val)
說(shuō)明:
設(shè)置表格對(duì)象的指定的列、行中實(shí)型數(shù)據(jù)。
參數(shù):
ColName,字符串型,列名。
Row,整型,行號(hào),從0開(kāi)始。
Val,實(shí)型,要設(shè)置的實(shí)型數(shù)據(jù)。
返回值:
成功標(biāo)志,非 0 表示操作成功;0 表示失敗。
注意:
若想為通用數(shù)據(jù)表某一列增加一個(gè)單元格,則直接使用Set()即可,本對(duì)象不提供SetCount()和Add()函數(shù)。
每一列的數(shù)據(jù)類型必須相同。
6)BOOL Set(string ColName, int Row, string Text)
說(shuō)明:
設(shè)置表格對(duì)象的指定的列、行中文本。
參數(shù):
ColName,字符串型,列名。
Row,整型,行號(hào),從0開(kāi)始。
Text,字符串型,要設(shè)置的文本數(shù)據(jù)。
返回值:
成功標(biāo)志,非 0 表示操作成功;0 表示失敗。
注意:
若想為通用數(shù)據(jù)表某一列增加一個(gè)單元格,則直接使用Set()即可,本對(duì)象不提供SetCount()和Add()函數(shù)。
每一列的數(shù)據(jù)類型必須相同。
7)BOOL RemoveCol (string ColName)
說(shuō)明:
刪除表格對(duì)象中指定的列。
參數(shù):
ColName,字符串型,要?jiǎng)h除列的列名。
返回值:
成功標(biāo)志,非 0 表示操作成功;0 表示失敗。
8)BOOL RemoveRow (int Row)
說(shuō)明:
刪除表格對(duì)象中指定的行。
參數(shù):
Row,整型,要?jiǎng)h除行的行號(hào),從0開(kāi)始。
返回值:
成功標(biāo)志,非 0 表示操作成功;0 表示失敗。
9)string GetColName (int Col)
說(shuō)明:
得到表格對(duì)象中指定列的名稱。
參數(shù):
Col,整型,指定的列號(hào),從0開(kāi)始。
返回值:
字符串型,返回的列名。
10)int GetColCount ()
說(shuō)明:
得到表格對(duì)象列的個(gè)數(shù)。
參數(shù):
無(wú)。
返回值:
整型,返回的列數(shù)。
11)int GetRowCount ()
說(shuō)明:
得到表格對(duì)象行的個(gè)數(shù)。
參數(shù):
無(wú)。
返回值:
整型,返回的行數(shù)。
12)BOOl Clear ()
說(shuō)明:
清空數(shù)據(jù)表中的數(shù)據(jù),包括列名。
參數(shù):
無(wú)。
返回值:
成功標(biāo)志,非 0 表示操作成功;0 表示失敗。
13)BOOL Copy (ObDataTable DestTable)
說(shuō)明:
將本數(shù)據(jù)表中的數(shù)據(jù)復(fù)制到指定的數(shù)據(jù)表。
參數(shù):
DestTable,通用數(shù)據(jù)表對(duì)象,指定的目標(biāo)數(shù)據(jù)表。
返回值:
成功標(biāo)志,非 0 表示操作成功;0 表示失敗。
14)int GetType (string ColName)
說(shuō)明:
得到表格對(duì)象指定的列的數(shù)據(jù)類型。
參數(shù):
ColName,字符串型,指定的列名。
返回值:
整型,0:浮點(diǎn);1:整型;2:字符串
三、總結(jié):
紫金橋通用數(shù)據(jù)表的使用非常簡(jiǎn)單,并且易于理解。