Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как сделать сортировку в DBGrid е [D7]


Страницы:   1 2

Andrushk ©   (2003-02-06 15:02:00) 

Надо сортировать по клику на заголовке столбца
Сейчас я это делаю так:

with (dbgView.DataSource.DataSet as TClientDataSet) do if Active then Close;
if Column.Field.FieldKind=fkData then
with (dbgView.DataSource.DataSet as TClientDataSet) do
begin
IndexDefs.Clear;
IndexDefs.Add("SortIndex",AnsiUpperCase(Column.FieldName),[]);
IndexName:="SortIndex";
end;
(dbgView.DataSource.DataSet as TClientDataSet).Open;

Проблема в том, что сортировать LookUp поля так нельзя, а их в основном и надо.
Может кто делал подобные вещи - поделитесь опытом, а то все что я не придумываю кажется мне не очень универсальным и громоздким.


Andrushk   (2003-02-06 15:50:00) [21]

мне бы не хотелось лезть в запрос

просто тупо добавлять ORDER BY в конец? а вдруг там какая-нить хрень стоит после которой нельзя ORDER BY ставить,
да и вообще, еслибы я мог из clientdataset добраться до clientdataset"а - это еще одно, а так передавать их оба...

может есть еще какие-то пути

я не могу сказать что проще пока не узнаю еще какие-нибудь методы


Reindeer Moss Eater   (2003-02-06 15:38:00) [22]

Что для тебя критерий "простоты"?


Andrushk   (2003-02-06 15:37:00) [23]

>>Reindeer Moss Eater
я сейчас так и делаю, просто else из запроса выкинул когда его вставлял в вопрос, но это не выход, поле NAME таблички совсем необязательно завязано с ID, которым я могу воспользоваться

>>Reindeer Moss Eater
Я думал над этим, но мне надо написать универсальную форму, на которой лежит грид, а уж какие там будут данные, из какого датасета - это заранее неизвестно

можно конечно передавать форме кроме клиентдатасета еще и датасет и список полей соответствия lookup-полей и реальных в базе, а потом динамически подставлять в запрос ORDER BY по нужным полям

но может как-то проще можно?


Reindeer Moss Eater   (2003-02-06 15:09:00) [24]

Получать это поле не на клиенте, и сортировать в запросе


Reindeer Moss Eater   (2003-02-06 15:08:00) [25]

1. По клику на заголовке столбца проверять тип поля. И если оно LookUp, ничего не делать.

2. Сортировать по полю - ключу для lookup поля.


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо