procedure TFormjzls.DBGrid1TitleClick(Column: TColumn);
var
ifieldcount:integer;
begin //if not DBGrid1.activ then exit;
for iFieldCount := 0 to DBGrid1.Columns.Count - 1 do
begin
if (Copy(DBGrid1.Columns[iFieldCount].Title.Caption,Length(DBGrid1.Columns[iFieldCount].Title.Caption)-1,2) = '▼') or (Copy(DBGrid1.Columns[iFieldCount].Title.Caption,Length(DBGrid1.Columns[iFieldCount].Title.Caption)-1,2) = '▲') then
begin
DBGrid1.Columns[iFieldCount].Title.Caption := Copy(DBGrid1.Columns[iFieldCount].Title.Caption,1,Length(DBGrid1.Columns[iFieldCount].Title.Caption)-3);
break;
end;
end;
if Column.FieldName = FSortField then
begin
if FSort = 'DESC' then
FSort := 'ASC'
else
FSort := 'DESC';
end
else begin
FSortField := Column.FieldName;
FSort := 'ASC';
end;
if FSort = 'ASC' then
Column.Title.Caption := Column.Title.Caption + ' ▲'
else
Column.Title.Caption := Column.Title.Caption + ' ▼';
adotable1.Sort := Column.FieldName + ' ' + FSort;end;
var
ifieldcount:integer;
begin //if not DBGrid1.activ then exit;
for iFieldCount := 0 to DBGrid1.Columns.Count - 1 do
begin
if (Copy(DBGrid1.Columns[iFieldCount].Title.Caption,Length(DBGrid1.Columns[iFieldCount].Title.Caption)-1,2) = '▼') or (Copy(DBGrid1.Columns[iFieldCount].Title.Caption,Length(DBGrid1.Columns[iFieldCount].Title.Caption)-1,2) = '▲') then
begin
DBGrid1.Columns[iFieldCount].Title.Caption := Copy(DBGrid1.Columns[iFieldCount].Title.Caption,1,Length(DBGrid1.Columns[iFieldCount].Title.Caption)-3);
break;
end;
end;
if Column.FieldName = FSortField then
begin
if FSort = 'DESC' then
FSort := 'ASC'
else
FSort := 'DESC';
end
else begin
FSortField := Column.FieldName;
FSort := 'ASC';
end;
if FSort = 'ASC' then
Column.Title.Caption := Column.Title.Caption + ' ▲'
else
Column.Title.Caption := Column.Title.Caption + ' ▼';
adotable1.Sort := Column.FieldName + ' ' + FSort;end;
解决方案 »
- 问一个过程返回值问题!请伴伴水清回答
- 请问dbexpress怎样连接access数据库?
- 一个关于线段拉动和放大问题
- 求与PHOTOSHOP完全相同的CMYK转RGB算法
- 关于三层开发的基础问题,帮看下这个错误是什么问题 50分
- 请教!在拖动调整窗口大小时,如果能让TWindowsMediaPlayer自适应窗口大小?
- 如何判断Grid的一个Cell的四个顶点在可见区域?
- 我的程序为什么不能相应OnHelp事件?
- 100分。如何使treeview快速显示到特定层次?
- 如何向SQLSERVER中修改及插入一个TEXT字段类型?急!!!!!!!!!!!
- 求助!问题解决会再次加分!
- 怎样截获dbedit的错误
就是每次点击时,根据Column的Field来重新组织语句.
如:case column of
indexbyname:=fieldname1;
indexbyname:=fieldname2;
SQL:='Select * From Table Order by '+VarStr;
if column.fieldname= 'fieldname' then
indexfieldnames:= 'fieldname';
加一个TDataSetProvider,和一个TClientDataSet..
DataSetProvider连接你原来的数据集,ClientDataSet连接这个Provider.
DBGRID的数据源就改为指向这个ClientDataSet..在dbgrid中ontitleclick
indexfieldnames:= Column.FieldName;它与数据集原来的索引无关,只是在内存中排序,效果应该能够令人满意.
加一个TDataSetProvider,和一个TClientDataSet..
DataSetProvider连接你原来的数据集,ClientDataSet连接这个Provider.
DBGRID的数据源就改为指向这个ClientDataSet..在dbgrid中ontitleclick
indexfieldnames:= Column.FieldName;它与数据集原来的索引无关,只是在内存中排序,效果应该能够令人满意.