明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

在PB中應(yīng)用靈活多樣的排序

[摘要]代術(shù)成---- PowerBuilder是許多數(shù)據(jù)庫(kù)開(kāi)發(fā)人員熟悉的開(kāi)發(fā)工具,也是許多程序開(kāi)發(fā)人員急需了解和使用的數(shù)據(jù)庫(kù)前端開(kāi)發(fā)工具。尤其是它的數(shù)據(jù)窗口,能很好地展現(xiàn)各種數(shù)據(jù)。同時(shí),PowerBuil...
代術(shù)成

---- PowerBuilder是許多數(shù)據(jù)庫(kù)開(kāi)發(fā)人員熟悉的開(kāi)發(fā)工具,也是許多程序開(kāi)發(fā)人員急需了解和使用的數(shù)據(jù)庫(kù)前端開(kāi)發(fā)工具。尤其是它的數(shù)據(jù)窗口,能很好地展現(xiàn)各種數(shù)據(jù)。同時(shí),PowerBuilder也是基于Windows的圖形用戶界面,因此操作非常方便,熟悉Windows的用戶一定對(duì)資源管理器不陌生,當(dāng)目錄或文件很多時(shí),當(dāng)然會(huì)想到使用排序來(lái)盡快定位目標(biāo),你只要用鼠標(biāo)在資源管理器上端的name、size、type或modified中的任意一項(xiàng)點(diǎn)擊,它就會(huì)將此項(xiàng)按升序或降序排列。同樣地,在PowerBuilder中,如果數(shù)據(jù)比較多,我們也可以采用這種辦法來(lái)排序以盡快查找記錄。
一、實(shí)現(xiàn)原理
---- 數(shù)據(jù)窗口提供了Clicked事件,當(dāng)用戶使用鼠標(biāo)點(diǎn)擊某列的標(biāo)題時(shí),我們可以通過(guò)參數(shù)(dwo.Name)來(lái)獲得當(dāng)前點(diǎn)擊的對(duì)象,經(jīng)過(guò)適當(dāng)處理可得到當(dāng)前點(diǎn)擊的列,然后根據(jù)連續(xù)點(diǎn)擊該列的奇偶數(shù)來(lái)決定用升序或降序排列記錄。二、實(shí)現(xiàn)細(xì)節(jié)
---- 1、先設(shè)計(jì)一個(gè)數(shù)據(jù)窗口和窗口以及一些必要的按鈕,設(shè)計(jì)好的窗口。
---- 2、要實(shí)現(xiàn)這樣的排序功能,定義兩個(gè)實(shí)例變量String pre_col=“”和Int click_time=0,他們分別記錄上次點(diǎn)擊的列和點(diǎn)擊同一列的奇偶數(shù)。然后在dw_1的Clicked事件中添加如下腳本:

String clicked_pos,col,format
Long il_pos
clicked_pos = dwo.Name //取點(diǎn)擊的對(duì)象
il_pos = Pos(clicked_pos,'_t') //對(duì)于列標(biāo)題,
取得的對(duì)象是列名+”_t”
If il_pos >0 Then
col = Left(clicked_pos,il_pos -1)
If col=pre_col Then
If click_time=0 Then
click_time = 1
format = col+" A"
Else
click_time=0
format = col+" D"
End If
Else
click_time = 0
format = col+" A"
End If
pre_col = col
dw_1.SetSort(format)
dw_1.Sort()
End If

---- 3、采用上面的方法可實(shí)現(xiàn)象Windows中資源管理器靈活排序的功能。實(shí)現(xiàn)的結(jié)果所示(按Last Name降序排列)。
三、結(jié)束
---- 象這些看似雖小的功能,但是它能給我們開(kāi)發(fā)的程序帶來(lái)許多方便,讓我們的程序功能更豐富,更強(qiáng)大,讓用戶充分享受圖形用戶界面帶來(lái)的形象直觀、方便好用、功能強(qiáng)大等好處。