我再一个表中 查询了一些符合条件的记录然后显示在DBGrid中,然后当我点击DBGRid的Title时要实现排序,不知怎样做?具体排序我会做,但我不懂的是,当我在一个表中检索数据时用的是这个表的名字,而当我排序时表的名字应该怎样安排,是用原来的表的名字那,还是怎样?当用原来表的名字时肯定不行?谢谢了,忘赐教!!!!!
解决方案 »
- 有朋友用过richedit吗?这个框里面的内容保存的话,尺寸非常大,有什么好办法解决吗?
- delphi 如何给formshow方法传参数.
- 求救为什么FastReport导出没有内容?
- 高分求助FTP传输程序 出现 "I/O error 103" 分不够可以再给
- fastreport3.0 简单问题,为什么第一条记录显示不出来?
- 哪位大哥指点一下迷津
- 怎样方便地保存这些网页?
- 为什么我的fastreport在使用adoquery做数据源的时候就总是重复打印地一条记录?
- 如何判断一类文件的存在啊?
- 谁有正式版的Delhp6.0注册码,帮帮忙,谢谢了!
- 找不到DsgnIntf,急ING!!!!
- 请问值得把d6换成d7吗?
OnTitleClick(Column: TColumn);
procedure TForm1.DBGrid1TitleClick(Column: TColumn);
var str:string;
begin
str:=(column.FieldName );
cishu:=cishu+1;
with query1 do
begin
close;
sql.Clear;
sql.add('select * from T_FieldDisplay');
sql.add('order by '+str);
if cishu mod 2 =0 then
sql.add(' asc')
else
sql.add(' desc');
open;
end;
end;其中 CiShu 记录点击的次数,点击一次增序排列,点击2次降序排列。
一个变量不合理,应根据字端建立数组分别记录。
var
i:integer;
begin
if not QryDetail.Active then exit;
if QryDetail.FieldByName(Column.FieldName).FieldKind =fkData then
begin
for i:=0 to dbgDetail.Columns.Count-1 do
begin
if dbgDetail.Columns[i]<>Column then
begin
if (copy(dbgDetail.Columns[i].Title.Caption,1,2)='▲') or (copy(dbgDetail.Columns[i].Title.Caption,1,2)='▼') then
dbgDetail.Columns[i].Title.Caption:=copy(dbgDetail.Columns[i].Title.Caption,3,length(dbgDetail.Columns[i].Title.Caption));
end else
begin
if copy(Column.Title.Caption,1,2)='▼' then
begin
QryDetail.Sort:=Column.FieldName+' DESC';
Column.Title.Caption:='▲'+copy(Column.Title.Caption,3,length(dbgDetail.Columns[i].Title.Caption));
end else
begin
QryDetail.Sort:=Column.FieldName+' ASC';
if copy(Column.Title.Caption,1,2)='▲' then
Column.Title.Caption:='▼'+copy(Column.Title.Caption,3,length(dbgDetail.Columns[i].Title.Caption))
else Column.Title.Caption:='▲'+Column.Title.Caption;
end;
end;
end;
end;
end;
┏━★━━◆━━★━━┓
♂◢◣|任庭前花开花落 ┃
┃◥◤|我自无语笑苍天 ┃
┗━☆━━◇━━━☆━┛
你程序中的Sort是那里来得,怎么没有sql语句呀;
请问:TOMWLD(笑天
能不能说得明白点呀。--------不好意思,俺是菜鸟。