荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: lvyou (让我生命再等候), 信区: Database
标  题: 在PB中应用灵活多样的排序
发信站: 荔园晨风BBS站 (Mon Jul  2 19:32:10 2001), 转信

---- 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降序排列)。
三、结束
---- 象这些看似虽小的功能,但是它能给我们开发的程序带来许多方便,让我们
的程序功能更丰富,更强大,让用户充分享受图形用户界面带来的形象直观、方便
好用、功能强大等好处。


--
                          欢迎访问我的网站:

                          http://192.168.28.29

※ 来源:·荔园晨风BBS站 bbs.szu.edu.cn·[FROM: 192.168.28.29]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店