![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как всегда DBGrid
niko4543 © (2003-07-28 09:46:00)
Здорова Братва.
Я пишу на этот форум потому-что у меня нет времени на реализацию данного вопроса.
Я прошу вас помогите пожайлуста кодом или советом лучше и то и другое.
Вопрос вот в чём мне надо сделать сотировку данных в DBGrid"e тоесть пользователь щёлкает на заголовок и записи выстраиваются по алфавиту.
Заранее спасибо и сильно не ругайтесь на то что задаю глупый вопрос.
Sergey13 (2003-07-28 10:21:00) [1]
>Удалено модератором
>Примечание: Не суди по себе, если ты фраер, но это не значит, что и остальные тоже
Да я и не сужу. Просто хотел стилизовать ответ под стиль вопроса. Не думал, что обращение "Здорова Братва" - это к местным. 8-(
AbrosimovA (2003-07-28 10:19:00) [2]Сортировка, используя индексы.
type
TMainForm=class(TForm)
DBGrid1: TDBGrid;
DBNavigator1: TDBNavigator;
SetSort: TRadioGroup;
procedure DBGrid1TitleClick(Column: TColumn);
procedure TMainForm.DBGrid1TitleClick(Column: TColumn);
begin
Case SetSort.ItemIndex of
0: IOp:=[];//По возрастанию
1: IOp:=[ixDescending];По убыванию
end;
Case Column.Index of
0: with Table1 do begin
Close;
Exclusive:=true;
if IndexDefs.Find("iFio").Name<>"" then //Если индекс iFio
DeleteIndex("iFio"); //есть, то удалить
AddIndex("iFio","Fio",Iop);//создать индекс iFio
IndexName:="iFio";//сортировка по столбцу FIO
Exclusive:=false;
Open;
end;
1: with Table1 do begin
Close;
Exclusive:=true;
if IndexDefs.Find("iAddress").Name<>"" then
DeleteIndex("iAddress");
( "iAddress","Address",Iop)Сортировка, используя индексы.
type
TMainForm=class(TForm)
DBGrid1: TDBGrid;
DBNavigator1: TDBNavigator;
SetSort: TRadioGroup;
procedure DBGrid1TitleClick(Column: TColumn);
procedure TMainForm.DBGrid1TitleClick(Column: TColumn);
begin
Case SetSort.ItemIndex of
0: IOp:=[];//По возрастанию
1: IOp:=[ixDescending];По убыванию
end;
Case Column.Index of
0: with Table1 do begin
Close;
Exclusive:=true;
if IndexDefs.Find("iFio").Name<>"" then //Если индекс iFio
DeleteIndex("iFio"); //есть, то удалить
AddIndex("iFio","Fio",Iop);//создать индекс iFio
IndexName:="iFio";//сортировка по столбцу FIO
Exclusive:=false;
Open;
end;
1: with Table1 do begin
Close;
Exclusive:=true;
if IndexDefs.Find("iAddress").Name<>"" then
DeleteIndex("iAddress");
AddIndex("iAddress","Address",Iop);
IndexName:="iAddress";//сортировка по столбцу Address
Exclusive:=false;
Open;
end;
end;
end;
Zacho (2003-07-28 10:19:00) [3]
Написать обработчик события OnTitleClick, в котором:
1. Если DBGrid подключен к TTable, то подключать индекс для поля, по заголовку колонки которого кликнули.
2. Если к TQuery, то изменить в ORDER BY запроса имя поля на нужное и переоткрыть Query.
Anatoly Podgoretsky (2003-07-28 09:59:00) [4]
Отложить этот вопрос, на тот период, когда появится время.
Sergey13 (2003-07-28 09:58:00) [5]
Удалено модератором
Примечание: Не суди по себе, если ты фраер, но это не значит, что и остальные тоже
Reindeer Moss Eater (2003-07-28 09:57:00) [6]
А где сам вопрос-то?