谁知道在dbgrideh中直接点击title就可按点击的那个字段排序的方法?不盛感激!(48分)

  • 主题发起人 devexpress
  • 开始时间
D

devexpress

Unregistered / Unconfirmed
GUEST, unregistred user!
用鼠标单击他的某一字段,
字段下的数据就可按升序或降序排列

procedure TForm1.DBGridehTitleClick(Column: TColumn);
var
SortStr:string;
begin
SortStr:=Column.Field.FieldName+' ASC';
adoqeuery1.Sort :=SortStr;
end;
//这种方法是不行的。

case Column.Title.SortMarker of
smNoneEh: Column.Title.SortMarker := smDownEh;
smDownEh: Column.Title.SortMarker := smUpEh;
smUpEh: Column.Title.SortMarker := smNoneEh;
end;

在我的OnSortMarkingChanged事件中:
ShowMessage('marker changed!');
添加Order By语句 //怎样添加才能起作用

我的DBGridEh属性页中,OptionsEh里设置:
dghautosortmarking=True;
TitleButton := True
 
close ;
// Change....
open;
 
procedure Toh_queryform.DBGrid1TitleClick(Column: TColumn);
var
i:integer;
TitleName:string;
begin
//假设adoquery1.sql当前的查询语句为
//select * from talbel1
// where item='221'
//order by item
//以下的语句使单击标题时能按所单击的标题进行排序[8D][8D]
i:=adoquery1.SQL.Count-1;
TitleName:=column.FieldName;
with adoquery1 do
begin
close;
if radiogroup1.Items[radiogroup1.ItemIndex]='升序' then
sql.Strings:='order by ' + TitleName+' asc'
else
sql.Strings:='order by ' + TitleName+' desc';
open;
for i:=0 to FieldCount-1 do
if fields.DataType=FTFloat then
TFloatfield(fields).DisplayFormat:='#0.00';
end;
end;
 
procedure TForm1.DBGridEh1TitleClick(Column: TColumnEh);
begin
//点击GridEh标题排序
if (Column.Title.SortMarker = smNoneEh) or (Column.Title.SortMarker = smDownEh) then
begin
ADOQuery1.SORT := COLUMN.FIELDNAME;
Column.Title.SortMarker := smUpEh
end
else
begin
ADOQuery1.SORT := COLUMN.FIELDNAME + ' DESC';
Column.Title.SortMarker := smDownEh
end;
end;
 
to 盛利
仁兄,高见,佩服佩服!!!
 
搭车问一下哪里有dbgrideh控件下载,要那种带XX版的。
 
要那种带XX版??有这样有版本吗,我也想要!
 
procedure TPrintMai_frm.DBGridEh1TitleClick(Column: TColumnEh);
var
sortstring: string;
begin //进行排序
with Column do
begin
if FieldName = '' then
Exit;
case Title.SortMarker of
smNoneEh:
begin
Title.SortMarker := smDownEh;
sortstring := Column.FieldName + ' ASC';
end;
smDownEh: sortstring := Column.FieldName + ' ASC';
smUpEh: sortstring := Column.FieldName + ' DESC';
end; //数据集排序。
try
DM.DataModule1.qry2.Sort := sortstring //dataset为实际数据集变量名
except
end;
end;
end;
 
建索引,用索引不成吗?
,应该可以吧
而且好像所有的dataset都可以,不用只在ADO上用
 
xx版就是破解或者注册版的。
 
我下载的最新版,里面有个demo1,没有写任何代码,好像就支持自动排序的,而且还支持多列排序,你可以按住ctrl再单击title,这样在SortMark旁边会显示1、2、3等数字,表示排序字段的顺序。
 
在哪裡有得下載啊?
 
顶部