- 相關(guān)推薦
Powerbuilder中樹形視圖的實(shí)現(xiàn)與應(yīng)用
中國(guó)人民銀行黃山市中心支行 楊新平 周詠梅 摘 要:本文分析了Powerbuilder中樹形視圖的結(jié)構(gòu)和特點(diǎn),結(jié)合樹的數(shù)據(jù)結(jié)構(gòu)及其存儲(chǔ)和遍歷方法,說(shuō)明了樹形視圖的構(gòu)造方法,指出其中的注意事項(xiàng),并給出程序?qū)嵗? 關(guān)鍵詞:樹形視圖 Powerbuilder 構(gòu)造 應(yīng)用 樹形視圖控件最適合顯示具有層次關(guān)系的數(shù)據(jù),在Windows 95中文件和文件夾(子目錄)之間的關(guān)系就是用樹形視圖來(lái)表現(xiàn)的。在數(shù)據(jù)庫(kù)中,樹形視圖是管理大量數(shù)據(jù)的好方法,因?yàn)橛脩糁恍韬?jiǎn)單地點(diǎn)擊鼠標(biāo)就可以選擇自己需要的數(shù)據(jù)。 當(dāng)我們對(duì)數(shù)據(jù)的表現(xiàn)有以下要求時(shí),我們可首先考慮使用樹形視圖控件: * 顯示層次結(jié)構(gòu)中元素之間的關(guān)系; * 元素在層次結(jié)構(gòu)之間漫游(元素間的拷貝、移動(dòng)等); * 描述每個(gè)元素相關(guān)信息; * 將大量數(shù)據(jù)檢索的過(guò)程劃分為若干步驟,只表現(xiàn)其中需要的部分。 在Powerbuilder中,對(duì)樹形視圖的編程是窗口中較為復(fù)雜的部分,它無(wú)法像數(shù)據(jù)窗口那樣使用一條Retrieve()函數(shù)就可以將數(shù)據(jù)表現(xiàn)出來(lái)。下面我們結(jié)合樹的數(shù)據(jù)結(jié)構(gòu)及其存儲(chǔ)和遍歷,探討一下樹形視圖的構(gòu)建和應(yīng)用。 1. 樹的數(shù)據(jù)結(jié)構(gòu)及其存儲(chǔ)結(jié)構(gòu) 樹是一種常見(jiàn)的非線性的數(shù)據(jù)結(jié)構(gòu),使用非常廣泛。一般人們用孩子表示法、孩子兄弟表示法(二叉樹表示法)和雙親表示法來(lái)存貯一棵樹。其中前兩種表示法或因各結(jié)點(diǎn)不同構(gòu)或冗余度太大,或因存貯量太大而不適合在PowerBuilder中應(yīng)用,而數(shù)據(jù)庫(kù)中表的結(jié)構(gòu)和特性正與樹的雙親結(jié)點(diǎn)表示法的要求相符合,因而最好是采用雙親節(jié)點(diǎn)表示法。 樹的雙親節(jié)點(diǎn)表示法利用了每個(gè)節(jié)點(diǎn)(除根節(jié)點(diǎn)外)只有唯一的雙親的性質(zhì),每個(gè)結(jié)點(diǎn)的結(jié)構(gòu)分為兩個(gè)域,即Data域和Link域。Data域用以存儲(chǔ)本節(jié)點(diǎn)的有關(guān)信息,Link域?yàn)橹赶螂p親節(jié)點(diǎn)的指針。 2.?dāng)?shù)據(jù)庫(kù)中表的設(shè)置 為了便于說(shuō)明問(wèn)題,我們以商品傳銷網(wǎng)為例,傳銷網(wǎng)中每個(gè)人都對(duì)應(yīng)到樹中的一個(gè)節(jié)點(diǎn)。我們把有關(guān)數(shù)據(jù)存儲(chǔ)在表Persons中。 根據(jù)樹的雙親節(jié)點(diǎn)表示法的特點(diǎn),同時(shí)考慮到便于查詢,將Data域分成本人代號(hào)(code)和本人姓名(name)兩個(gè)字段,而Link域?qū)?yīng)到上線代號(hào)字段(pcode)。雖然在關(guān)系型數(shù)據(jù)庫(kù)中,數(shù)據(jù)的操作是以集合為基礎(chǔ)的,而集合中的元素是沒(méi)有順序的,但在構(gòu)建樹形視圖時(shí)必須一個(gè)一個(gè)地將節(jié)點(diǎn)添加進(jìn)去,且PowerBuilder不支持指針型變量,因而我們?cè)诒鞵ersons中增加一字段Handno,記錄每個(gè)結(jié)點(diǎn)的句柄,配合Pcode字段,以實(shí)現(xiàn)“指針”的功能,其原理是:通過(guò)查找本結(jié)點(diǎn)的上線代號(hào)來(lái)查找其雙親結(jié)點(diǎn)的句柄號(hào)。由于樹形視圖等級(jí)結(jié)構(gòu)非常明顯,我們采用按層次遍歷樹,所以我們?cè)赑ersons表中再增加一個(gè)字段Grade,便于按層次順序構(gòu)建樹形視圖。表Persons的結(jié)構(gòu)如下表,主鍵為code列。當(dāng)然可在表中設(shè)置一個(gè)或多個(gè)字段,以存儲(chǔ)各結(jié)點(diǎn)的其他信息,但本文旨在說(shuō)明問(wèn)題,故不予考慮。【Powerbuilder中樹形視圖的實(shí)現(xiàn)與應(yīng)用】相關(guān)文章:
Powerbuilder6.5應(yīng)用實(shí)例08-12
數(shù)據(jù)字典在ArcView GIS中的實(shí)現(xiàn)與應(yīng)用08-09
幻燈片中的視圖08-16
比法在物理中的應(yīng)用08-17
實(shí)現(xiàn)基于Spring框架應(yīng)用的權(quán)限控制系統(tǒng)08-19
生活中的化學(xué)在教學(xué)中的應(yīng)用08-23
CAI在“光的反射”中的應(yīng)用08-17