急!!!在VFP6里的 Grid控件, 如何做单击列,就对该列进行排序?

YYMMVV 2003-05-28 09:54:02
如:
-------------------------------------------------------------------------------------------------------------
姓名 | 性别 | 电话 |地址|
-----------------------------------
aa | boy | 818 | 12 |
bb | boy | 828 | 13 |
cc | boy | 838 | 14 |
dd | boy | 848 | 15 |
ee | boy | 858 | 16 |
ff | boy | 868 | 17 |
-----------------------------------
当单击第一行的姓名列的时候,按升序排序,或降序排序.

请问如何做???

谢了...



...全文
93 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiolig 2003-05-28
  • 打赏
  • 举报
回复
如果 GRID 的记录源是查询,加上 ORDER BY 子句重新查询(同上);
如果 GRID 的记录源是原始数据表,可以考虑建立索引:
永久索引,使用 SET ORDER TO TAG ...
临时索引,使用 INDEX ON ... TO ...
jiaxingxing 2003-05-28
  • 打赏
  • 举报
回复
呵呵,捡漏的来的不少。捡分来了
augustX 2003-05-28
  • 打赏
  • 举报
回复
in column header click events you can write:


do case
case thisform.tag==''
thisform.tag='ASCENDING'
this.tag=this.caption
this.caption=this.tag+' ↑'
case thisform.tag=='ASCENDING'
thisform.tag='DESCENDING'
this.caption=this.tag+' ↓'
case thisform.tag=='DESCENDING'
thisform.tag='ASCENDING'
this.caption=this.tag+' ↑'
endcase
l_para=alltrim(this.parent.controlsource)
index_command='index on '+l_para+' tag temp_index '+thisform.tag
&index_command
this.parent.parent.refresh()
jiaxingxing 2003-05-28
  • 打赏
  • 举报
回复
这种做法好像只能用于查询,而修改数据时是怎么办?
hnpyz 2003-05-28
  • 打赏
  • 举报
回复
补充:
先应该设置一逻辑变量(全局)

在上面所提到的事件中:
if 逻辑变量
执行升序
逻辑变量 =.F.
else
执行降序
逻辑变量 =.T.
endi
ThisForm.Refresh()
whint 2003-05-28
  • 打赏
  • 举报
回复
楼上的小小鹰说的不错。我补充两句。你可以先设定你需要显示的列数,也就是columncount属性,之后可以对每一个column对象的header对象的click事件进行编程。很方便的
kinlzy 2003-05-28
  • 打赏
  • 举报
回复
在Grid的Header的Click中写代码

Select * From 表名 Order By 字段名
dyming0410 2003-05-28
  • 打赏
  • 举报
回复
xiolig(凌霄) 说得对!

2,722

社区成员

发帖
与我相关
我的任务
社区描述
VFP,是Microsoft公司推出的数据库开发软件,用它来开发数据库,既简单又方便。
社区管理员
  • VFP社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧