在PB中應用靈活多樣的排序
發表時間:2023-08-19 來源:明輝站整理相關軟件相關文章人氣:
[摘要]代術成---- PowerBuilder是許多數據庫開發人員熟悉的開發工具,也是許多程序開發人員急需了解和使用的數據庫前端開發工具。尤其是它的數據窗口,能很好地展現各種數據。同時,PowerBuil...
代術成
---- PowerBuilder是許多數據庫開發人員熟悉的開發工具,也是許多程序開發人員急需了解和使用的數據庫前端開發工具。尤其是它的數據窗口,能很好地展現各種數據。同時,PowerBuilder也是基于Windows的圖形用戶界面,因此操作非常方便,熟悉Windows的用戶一定對資源管理器不陌生,當目錄或文件很多時,當然會想到使用排序來盡快定位目標,你只要用鼠標在資源管理器上端的name、size、type或modified中的任意一項點擊,它就會將此項按升序或降序排列。同樣地,在PowerBuilder中,如果數據比較多,我們也可以采用這種辦法來排序以盡快查找記錄。
一、實現原理
---- 數據窗口提供了Clicked事件,當用戶使用鼠標點擊某列的標題時,我們可以通過參數(dwo.Name)來獲得當前點擊的對象,經過適當處理可得到當前點擊的列,然后根據連續點擊該列的奇偶數來決定用升序或降序排列記錄。二、實現細節
---- 1、先設計一個數據窗口和窗口以及一些必要的按鈕,設計好的窗口。
---- 2、要實現這樣的排序功能,定義兩個實例變量String pre_col=“”和Int click_time=0,他們分別記錄上次點擊的列和點擊同一列的奇偶數。然后在dw_1的Clicked事件中添加如下腳本:
String clicked_pos,col,format
Long il_pos
clicked_pos = dwo.Name //取點擊的對象
il_pos = Pos(clicked_pos,'_t') //對于列標題,
取得的對象是列名+”_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、采用上面的方法可實現象Windows中資源管理器靈活排序的功能。實現的結果所示(按Last Name降序排列)。
三、結束
---- 象這些看似雖小的功能,但是它能給我們開發的程序帶來許多方便,讓我們的程序功能更豐富,更強大,讓用戶充分享受圖形用戶界面帶來的形象直觀、方便好用、功能強大等好處。