参考这里:
在dbgrid中按列表表头进行排序!
先在create事件中查询,然后在dbgridtitle双击事件中,
with query do
begin
close;
sql.clear;
sql.add('select * from table');
open;
if column.Title.Caption='日期' then
sql.add('order by a_date');
if column.Title.Caption='科室' then
sql.add('order by a_dept');
if column.Title.Caption='名称' then
sql.add('order by a_name');
end;