![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как сделать сортировку в DBGrid е [D7]
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 поля.