国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

TreeView在借書管理系統(tǒng)中的實現(xiàn)與應(yīng)用

2013-12-29 00:00:00周小平
考試周刊 2013年36期

摘 要: 文章介紹了樹形視圖控件(也稱為樹狀瀏覽控件)的常用事件、常用函數(shù)及使用的具體步驟,并以借書管理系統(tǒng)為例,詳細地介紹了樹形視圖的具體實現(xiàn)與應(yīng)用。通過靈活使用樹形視圖控件,在PB開發(fā)中,可以使應(yīng)用程序的功能更加強大,更加直觀地表示數(shù)據(jù)項。

關(guān)鍵詞: PowerBuilder 樹型視圖控件 數(shù)據(jù)窗口

1.引言

PowerBuilder是一款優(yōu)秀的企業(yè)級數(shù)據(jù)庫前端應(yīng)用開發(fā)工具,它提供簡潔友好的用戶界面、功能強大的數(shù)據(jù)窗口技術(shù)和性能優(yōu)越的數(shù)據(jù)庫訪問能力,所以受到很多程序開發(fā)人員的喜愛,是當前流行的數(shù)據(jù)庫前端開發(fā)工具之一。而在PowerBuilder的眾多控件之中,樹形視圖控件能直觀地表示數(shù)據(jù)項,所以在開發(fā)各種管理系統(tǒng)時,經(jīng)常會用到這種控件,但是這種控件使用時比較復(fù)雜,故本文在介紹樹形視圖的常用事件、常用函數(shù)及使用方法之后,通過具體的實例進行講解。

2.樹形視圖簡介

如果你想顯示具有層次關(guān)系的數(shù)據(jù),那么樹形視圖控件是最適合的控件。它就像Windows系統(tǒng)中的資源管理器,通過資源管理器,可以在左邊的列表中以層次結(jié)構(gòu)列出驅(qū)動器、目錄及子目錄,而用戶可以通過單擊層次結(jié)構(gòu)中的加號(+)、減號(-)展開或者折疊目錄。要想管理大量數(shù)據(jù),樹形視圖是最好的工具,因為用戶只需要簡單地單擊鼠標左鍵就可以選擇自己想要的數(shù)據(jù),這種表示方法使用戶一目了然。

在PowerBuilder中,樹形視圖(TreeView)和樹形視圖項(TreeViewItem)是樹狀瀏覽控件的兩個對象。其中樹型視圖對象可以在窗口畫筆中通過點擊鼠標的方式創(chuàng)建,而樹型視圖項則必須通過編程來聲明及定義它們的屬性[1]。樹狀瀏覽控件的常規(guī)屬性很多課本都有介紹,在此不再贅述。下面介紹它的常用事件和常用函數(shù)。

2.1常用事件

Constructor(構(gòu)造事件):在控件創(chuàng)建時觸發(fā)該事件,一般在構(gòu)造事件里構(gòu)造樹視圖項。

Click(單擊事件):單擊樹視圖項時,執(zhí)行查詢程序。

2.2常用函數(shù)[1]

Insert Item First ( ): 將加入項作為第一個子項;

Insert Item Last ( ): 將加入項作為最后一個子項;

Insert Item( ) :將加入項放在指定的子項后面;

InsertI tem Sort ( ) :按排序的順序放置加入項。

3.樹形視圖的使用步驟

第一步,添加TreeView控件,設(shè)置該控件的常規(guī)屬性。

第二步,編寫事件處理程序為樹瀏覽控件添加樹視圖項。在添加樹視圖項時,有兩種方法:第一種方法是一次性地向樹形視圖控件添加全部層次的項目。第二種方法是先添加所需層次的項目,而其他項目在需要時再進行添加。

(注意:要正確地運行,就必須建立數(shù)據(jù)庫,設(shè)置好數(shù)據(jù)源,而且能連接數(shù)據(jù)庫。通常連接數(shù)據(jù)庫的代碼是放在應(yīng)用程序里的。)

4.樹形視圖使用實例

下面以借書管理系統(tǒng)為例,先建立圖書信息數(shù)據(jù)庫,該庫中包含圖書信息表。圖書信息表包含圖書編號(bookid)、圖書類型(typeid)、圖書名稱(title)、作者(author)等字段。該表中的每本書都對應(yīng)到樹中的一個節(jié)點。樹形視圖控件跟數(shù)據(jù)窗口控件一起使用更加能體現(xiàn)出數(shù)據(jù)的層次性,適用于大量數(shù)據(jù)的管理。故在此,我們新建一個應(yīng)用程序book,并新建一個窗口w_tree、數(shù)據(jù)窗口dw_book和dw_tree。數(shù)據(jù)窗口dw_book的數(shù)據(jù)列為圖書信息表中的所有列,數(shù)據(jù)窗口dw_tree的數(shù)據(jù)列為圖書信息表中的圖書編號和圖書類型列。窗口w_tree中包含一個樹狀瀏覽控件和一個數(shù)據(jù)窗口控件。數(shù)據(jù)窗口控件用來顯示圖書的信息,其dataobject=“dw_book”。為樹狀瀏覽控件設(shè)置好常規(guī)屬性后,就可以編寫事件程序代碼了。

在樹形視圖控件中,樹形視圖項是非常重要,也是很關(guān)鍵的,它是在程序中逐項加入的,可以用InsertItem()系列函數(shù)中的其中一種將樹形視圖項加入到樹形視圖中。在將樹形視圖項加入到樹形視圖時,本文分別使用了三種方法:第一種方法是采用直接插入的方法加入根節(jié)點;第二種方法是采用游標插入第二層;第三種方法是通過數(shù)據(jù)存儲插入第三層。下面介紹事件處理程序代碼:

首先,在窗口的OPEN()中添加以下代碼:

dw_1.settransobject(sqlca)

dw_1.retrieve()

其次,在樹控件tv_1的構(gòu)造事件中添加如下代碼:

TreeViewItem t_node // 定義樹視圖項目 對象

integer lev0,lev1,lev2,rc,i // lev0第一層,lev1第二層,rc行數(shù),

string c_typeid,s_id,s_typeid

//數(shù)據(jù)存儲

datastore ds

ds=create datastore

ds.dataobject="dw_tree"

ds.settransobject(sqlca)

ds.retrieve()

rc=ds.rowcount() //總行數(shù)

//插入第一層:根節(jié)點(直接插入)

t_node.label="圖書編碼"

lev0=tv_1.insertitemfirst(0,t_node)

//游標

declare c cursor for select distinct typeid from bookinfo; //聲明游標

open c; //打開游標

fetch c into :c_typeid; //使用游標

do while sqlca.sqlcode=0

//插入第二層:類型 (通過游標插入)

t_node.label=c_typeid

lev1=tv_1.insertitemlast(lev0,t_node)

//插入第三層:編號 (通過數(shù)據(jù)存儲插入)

for i=1 to rc

s_typeid=ds.getitemstring(i,"typeid") // 圖書類型

s_id=ds.getitemstring(i,"bookid") // 圖書編號

if s_typeid=c_typeid then

t_node.label=s_id

lev2=tv_1.insertitemlast(lev1,t_node)

end if

next

fetch c into :c_typeid; // 通過游標取下一個類型的值

loop

tv_1.expanditem(lev0) //展開第一層下的節(jié)點

close c; // 關(guān)閉游標

destroy ds; // 銷毀數(shù)據(jù)存儲ds, 釋放空間

最后,在樹狀瀏覽控件的click事件中編寫如下代碼:

TreeViewItem t_node

string str

integer lev

this.getitem(handle,t_node) //得到樹控件點擊項

lev=t_node.level //獲得點擊項的層次

str=t_node.label //獲得節(jié)點名稱

choose case lev

case 1 // 點擊項為第一層,顯示所有的信息

dw_1.setfilter("typeid like '%'")

dw_1.filter()

case 2 // 點擊項為第二層,顯示該層下所有的信息

dw_1.setfilter("typeid='"+str+"'")

dw_1.filter()

dw_1.setsort("bookid A")

dw_1.sort()

case 3 // 點擊項為第三層,顯示該層下所有的信息

dw_1.setfilter("bookid=?耷?謖"+str+"?謖"?謖)

dw_1.filter()

end choose

5.結(jié)語

PowerBuilder是一款優(yōu)秀的企業(yè)級數(shù)據(jù)庫前端應(yīng)用開發(fā)工具,是當前最流行的數(shù)據(jù)庫前端開發(fā)工具之一。在PB中,樹狀瀏覽控件能夠很好地體現(xiàn)出數(shù)據(jù)間的層次關(guān)系,靈活地使用樹狀瀏覽控件會使程序界面更加美觀。本文在介紹了樹狀瀏覽控件的常用事件、常用函數(shù)及使用方法的基礎(chǔ)上,以借書管理系統(tǒng)為例,詳細地介紹了樹形視圖的具體實現(xiàn)與應(yīng)用。

參考文獻:

[1]周詠梅.PB中樹形視圖的實現(xiàn)與數(shù)據(jù)庫表結(jié)構(gòu)的設(shè)計.軟件技術(shù),2004.

[2]樊金生,張翠肖.PowerBuilder 10.5實用教程.科學(xué)出版社.

隆安县| 庄浪县| 剑阁县| 且末县| 武夷山市| 镇坪县| 凤山市| 施秉县| 夹江县| 吴江市| 台湾省| 成武县| 阿拉尔市| 德保县| 海原县| 蒙城县| 临颍县| 田东县| 华宁县| 青铜峡市| 策勒县| 蒲城县| 万源市| 江口县| 定西市| 林周县| 仁寿县| 新余市| 深州市| 洛川县| 潮安县| 芜湖县| 彭水| 内乡县| 健康| 清远市| 邯郸县| 新泰市| 天峨县| 迭部县| 牡丹江市|