- 相關推薦
Powerbuilder中樹形視圖的實現與應用
中國人民銀行黃山市中心支行 楊新平 周詠梅 摘 要:本文分析了Powerbuilder中樹形視圖的結構和特點,結合樹的數據結構及其存儲和遍歷方法,說明了樹形視圖的構造方法,指出其中的注意事項,并給出程序實例。 關鍵詞:樹形視圖 Powerbuilder 構造 應用 樹形視圖控件最適合顯示具有層次關系的數據,在Windows 95中文件和文件夾(子目錄)之間的關系就是用樹形視圖來表現的。在數據庫中,樹形視圖是管理大量數據的好方法,因為用戶只需簡單地點擊鼠標就可以選擇自己需要的數據。 當我們對數據的表現有以下要求時,我們可首先考慮使用樹形視圖控件: * 顯示層次結構中元素之間的關系; * 元素在層次結構之間漫游(元素間的拷貝、移動等); * 描述每個元素相關信息; * 將大量數據檢索的過程劃分為若干步驟,只表現其中需要的部分。 在Powerbuilder中,對樹形視圖的編程是窗口中較為復雜的部分,它無法像數據窗口那樣使用一條Retrieve()函數就可以將數據表現出來。下面我們結合樹的數據結構及其存儲和遍歷,探討一下樹形視圖的構建和應用。 1. 樹的數據結構及其存儲結構 樹是一種常見的非線性的數據結構,使用非常廣泛。一般人們用孩子表示法、孩子兄弟表示法(二叉樹表示法)和雙親表示法來存貯一棵樹。其中前兩種表示法或因各結點不同構或冗余度太大,或因存貯量太大而不適合在PowerBuilder中應用,而數據庫中表的結構和特性正與樹的雙親結點表示法的要求相符合,因而最好是采用雙親節點表示法。 樹的雙親節點表示法利用了每個節點(除根節點外)只有唯一的雙親的性質,每個結點的結構分為兩個域,即Data域和Link域。Data域用以存儲本節點的有關信息,Link域為指向雙親節點的指針。 2.數據庫中表的設置 為了便于說明問題,我們以商品傳銷網為例,傳銷網中每個人都對應到樹中的一個節點。我們把有關數據存儲在表Persons中。 根據樹的雙親節點表示法的特點,同時考慮到便于查詢,將Data域分成本人代號(code)和本人姓名(name)兩個字段,而Link域對應到上線代號字段(pcode)。雖然在關系型數據庫中,數據的操作是以集合為基礎的,而集合中的元素是沒有順序的,但在構建樹形視圖時必須一個一個地將節點添加進去,且PowerBuilder不支持指針型變量,因而我們在表Persons中增加一字段Handno,記錄每個結點的句柄,配合Pcode字段,以實現“指針”的功能,其原理是:通過查找本結點的上線代號來查找其雙親結點的句柄號。由于樹形視圖等級結構非常明顯,我們采用按層次遍歷樹,所以我們在Persons表中再增加一個字段Grade,便于按層次順序構建樹形視圖。表Persons的結構如下表,主鍵為code列。當然可在表中設置一個或多個字段,以存儲各結點的其他信息,但本文旨在說明問題,故不予考慮。【Powerbuilder中樹形視圖的實現與應用】相關文章:
Powerbuilder6.5應用實例08-12
在反思中實現自我教育08-17
《在奮斗中實現理想》的教案08-17
在反思中實現自我教育08-13
幻燈片中的視圖08-16
比法在物理中的應用08-17
生活中的化學在教學中的應用08-23
CAI在“光的反射”中的應用08-17