procedure TA3_form.DBGridEh1TitleClick(Column: TColumnEh);
begin
if (Not ADOQuery1.Active) or (ADOQuery1.RecordCount = 0) then exit;try
if AnsiPos('ASC',ADOQuery1.Sort) = 0 then
ADOQuery1.Sort := column.fieldname + ' ASC'
else
ADOQuery1.Sort := column.fieldname + ' DESC'; except
application.MessageBox('不允许对该列排序!','提示',mb_ok+mb_iconerror);
end;
end;比如写成一个过程:
procedure dbgrid_asc(AdoQuery:TADOQuery);
。。该如何写呢?
begin
if (Not ADOQuery1.Active) or (ADOQuery1.RecordCount = 0) then exit;try
if AnsiPos('ASC',ADOQuery1.Sort) = 0 then
ADOQuery1.Sort := column.fieldname + ' ASC'
else
ADOQuery1.Sort := column.fieldname + ' DESC'; except
application.MessageBox('不允许对该列排序!','提示',mb_ok+mb_iconerror);
end;
end;比如写成一个过程:
procedure dbgrid_asc(AdoQuery:TADOQuery);
。。该如何写呢?
解决方案 »
- **我想把RxRichEdit里面图文混编的内容保存到数据库里面,用什么方法最好
- ShellExecute 打开 一个 盘符(光驱Z:) 如何模拟F5刷新 一下 z盘 ?
- fastreport 中打印两栏数据如何实现?
- 问一个QUERY的更新问题,很急
- 图片显示
- delphi查询access时,如何判断时间?
- quickreport中怎么实现自定义纸张的连续打印?高手指点
- 关于ClientDataSet的问题,看源码,送大分!!!
- 关于mapx的问题,救命!!!!!
- 这个循环怎么会出错呢?请大家帮忙看看!
- 问个基础问题如何编写当击窗体右上角的最小化时执行一个事件
- win7中xe2开发firemonkey上,拖动几个非可视组件上去。。。。。
procedure TForm1.ColSort(DBGridEh:TDBGridEh; qry:TADOQuery);
var
i:Integer;
begin
with qry do
begin
if (not Active) or (recordcount=0) then Exit;
try
for i:=0 to DBGridEh.Columns.Count-1 do
begin
if AnsiPos('ASC',qry.Sort) = 0 then
Sort := DBGridEh.Columns[i].FieldName+' ASC'
else
Sort := DBGridEh.Columns[i].FieldName+' DESC';
end;
except
Application.MessageBox('不允许对该列排序!','提示',mb_ok+mb_iconerror);
end;
end;
end;
procedure TForm1.DBGridEh1TitleClick(Column: TColumnEh);
begin
ColSort(DBGridEh1,qry1);
end;
你的方法不能用呀,只能执行一次,再点击第二次就不行了,你测试一下看看。
var s: string;
begin
with TADOQuery(Column.Grid.DataSource.DataSet) do begin
if (Not Active) or (RecordCount = 0) then exit;
s := ' ASC';
if AnsiPos('ASC',Sort) > 0 then s := ' DESC';
try
Sort := column.fieldname + s;
except
application.MessageBox('不允许对该列排序!','提示',mb_ok+mb_iconerror);
end;
end;
end;
begin
dbgrid_asc(Column);
end;