999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

TreeView在借書管理系統中的實現與應用

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

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

關鍵詞: PowerBuilder 樹型視圖控件 數據窗口

1.引言

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

2.樹形視圖簡介

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

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

2.1常用事件

Constructor(構造事件):在控件創建時觸發該事件,一般在構造事件里構造樹視圖項。

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

2.2常用函數[1]

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

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

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

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

3.樹形視圖的使用步驟

第一步,添加TreeView控件,設置該控件的常規屬性。

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

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

4.樹形視圖使用實例

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

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

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

dw_1.settransobject(sqlca)

dw_1.retrieve()

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

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

integer lev0,lev1,lev2,rc,i // lev0第一層,lev1第二層,rc行數,

string c_typeid,s_id,s_typeid

//數據存儲

datastore ds

ds=create datastore

ds.dataobject="dw_tree"

ds.settransobject(sqlca)

ds.retrieve()

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

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

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)

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

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) //展開第一層下的節點

close c; // 關閉游標

destroy ds; // 銷毀數據存儲ds, 釋放空間

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

TreeViewItem t_node

string str

integer lev

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

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

str=t_node.label //獲得節點名稱

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.結語

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

參考文獻:

[1]周詠梅.PB中樹形視圖的實現與數據庫表結構的設計.軟件技術,2004.

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

主站蜘蛛池模板: 精品福利视频导航| 国产99精品久久| 97综合久久| 色婷婷亚洲十月十月色天| 丰满人妻久久中文字幕| 欧美一区福利| 国产精品亚欧美一区二区| 国产91麻豆视频| 波多野结衣中文字幕一区二区| 亚洲一区国色天香| 欧美综合中文字幕久久| 亚洲最黄视频| 看你懂的巨臀中文字幕一区二区 | 国产精品久久久久久久久kt| 美女一级毛片无遮挡内谢| 美女被操黄色视频网站| 无码aaa视频| 色视频国产| 噜噜噜综合亚洲| 亚洲欧美自拍中文| 久久一本精品久久久ー99| 黑人巨大精品欧美一区二区区| 一级毛片在线播放免费| 日韩午夜片| 伊人无码视屏| 欧美国产菊爆免费观看| 日本三区视频| AV网站中文| 91精品网站| 日本在线视频免费| 中国成人在线视频| 国产午夜福利亚洲第一| 毛片在线区| 欧美一级高清免费a| 午夜色综合| 色哟哟国产精品一区二区| 国产欧美日韩另类| 亚洲第一成年免费网站| 国产精品对白刺激| 精品人妻AV区| 伊人精品视频免费在线| 亚洲水蜜桃久久综合网站 | 久久99精品久久久久久不卡| 看你懂的巨臀中文字幕一区二区| 亚洲女人在线| 亚洲成人免费在线| 亚洲黄网视频| 亚洲人成人无码www| 四虎永久免费在线| 国产精品香蕉在线观看不卡| 日韩在线欧美在线| 亚洲综合经典在线一区二区| 国产嫖妓91东北老熟女久久一| 黄色网址手机国内免费在线观看| 2021国产乱人伦在线播放| 亚洲精品亚洲人成在线| 久草网视频在线| 国产流白浆视频| 久精品色妇丰满人妻| 亚洲日韩精品无码专区| 久久精品欧美一区二区| 国产又爽又黄无遮挡免费观看| 日本不卡免费高清视频| 国产日本欧美亚洲精品视| 99爱在线| 亚洲最新地址| 3D动漫精品啪啪一区二区下载| 亚洲国产日韩在线成人蜜芽| 国产亚洲精品91| 亚洲精品自在线拍| 波多野结衣在线一区二区| 国产区在线看| 免费在线色| 国产99精品久久| 色欲不卡无码一区二区| 国产激情影院| 国产99精品久久| 高清乱码精品福利在线视频| 一级香蕉人体视频| 国产成人欧美| 久久久久久久97| 日韩人妻精品一区|