Re: TDBGrid
От: Rius Россия  
Дата: 20.06.05 10:20
Оценка: +1
Здравствуйте, c.j.frost, Вы писали:

CJF>Как отсортировать TDBGrid по нужному столбцу


Для связки ADO + DBGridEh написал вот такую функцию (сортировка локальная)

void __fastcall TFormMain::DBGEPartySortMarkingChanged(TObject *Sender)
{
    TDBGridEh *grid = dynamic_cast <TDBGridEh *>(Sender);
    if(grid == NULL) return;

    TCustomADODataSet *dataset = dynamic_cast <TCustomADODataSet *>(grid->DataSource->DataSet);
    if(dataset == NULL) return;

    if(grid->SortMarkedColumns->Count == 0)
    {
        dataset->Sort = "";
        return;
    }

    WideString FieldName = grid->SortMarkedColumns->Items[0]->FieldName;
    WideString Order;
    if(grid->SortMarkedColumns->Items[0]->Title->SortMarker == smDownEh)
        Order = " ASC";
    else// smUpEh;
        Order = " DESC";
    dataset->Sort = FieldName + Order;
}
TDBGrid
От: c.j.frost  
Дата: 19.06.05 17:58
Оценка:
Как отсортировать TDBGrid по нужному столбцу

20.06.05 10:28: Перенесено модератором из 'Базы данных' — Merle
Re: TDBGrid
От: wellwell Австралия https://www.softperfect.com
Дата: 19.06.05 19:00
Оценка:
"c.j.frost" <42883@users.rsdn.ru> wrote in message news:1229593@news.rsdn.ru...
> Как отсортировать TDBGrid по нужному столбцу

Сортировать надо не грид а датасет. Например обрабатывать клик по шапке столбца и сортировать датасет (в общем случае делать select * ... order by). ADO компоненты умеют сами сортировать...
Posted via RSDN NNTP Server 1.9
Re: TDBGrid
От: slavdon  
Дата: 19.06.05 19:02
Оценка:
Здравствуйте, c.j.frost, Вы писали:

CJF>Как отсортировать TDBGrid по нужному столбцу


В Delphi\Builder.
Re: TDBGrid
От: Liris Россия http://lifeondvd.narod.ru/
Дата: 20.06.05 04:06
Оценка:
Здравствуйте, c.j.frost, Вы писали:

CJF>Как отсортировать TDBGrid по нужному столбцу

Можно по индексу, если не использовать SQL. Создайте физические индексы для полей, по которым планируете сортировать или создавайте индексы динамически.
Если используете SQL, то используйте .... ORDER BY имя_поля.
Re[2]: TDBGrid
От: Shtirliz Россия  
Дата: 20.06.05 12:29
Оценка:
Здравствуйте, Rius, Вы писали:

R>Здравствуйте, c.j.frost, Вы писали:


CJF>>Как отсортировать TDBGrid по нужному столбцу


R>Для связки ADO + DBGridEh написал вот такую функцию (сортировка локальная)


R>
void __fastcall TFormMain::DBGEPartySortMarkingChanged(TObject *Sender)
R>{
R>    TDBGridEh *grid = dynamic_cast <TDBGridEh *>(Sender);
R>    if(grid == NULL) return;

R>    TCustomADODataSet *dataset = dynamic_cast <TCustomADODataSet *>(grid->DataSource->DataSet);
R>    if(dataset == NULL) return;

R>    if(grid->SortMarkedColumns->Count == 0)
R>    {
R>        dataset->Sort = "";
R>        return;
R>    }

R>    WideString FieldName = grid->SortMarkedColumns->Items[0]->FieldName;
R>    WideString Order;
R>    if(grid->SortMarkedColumns->Items[0]->Title->SortMarker == smDownEh)
R>        Order = " ASC";
R>    else// smUpEh;
R>        Order = " DESC";
R>    dataset->Sort = FieldName + Order;
R>}



А если подключить модуль EhLibADO из папки DataService компонентов Eh, то руками ничего делать не придется.

Удачи.
... << RSDN@Home 1.1.4 beta 7 rev. 463>> А в Winamp'e: И ничего не слышно...
Дункан Маклауд любил ходить в лес и издеваться над кукушками.
138385660
Re[3]: TDBGrid
От: Rius Россия  
Дата: 20.06.05 16:07
Оценка:
Здравствуйте, Shtirliz, Вы писали:


S>А если подключить модуль EhLibADO из папки DataService компонентов Eh, то руками ничего делать не придется.


S>Удачи.

Так как эта .. отказалась компилироваться, пришлось писать вручную
Не расскажите пошагово, как сие подключить?
Re[4]: TDBGrid
От: Shtirliz Россия  
Дата: 21.06.05 06:00
Оценка:
Здравствуйте, Rius, Вы писали:

R>Здравствуйте, Shtirliz, Вы писали:



S>>А если подключить модуль EhLibADO из папки DataService компонентов Eh, то руками ничего делать не придется.


S>>Удачи.

R>Так как эта .. отказалась компилироваться, пришлось писать вручную

А что написало, когда отказывалось компилиться?
Мобыть ето проблемы Builder'а?
Ибо в Delphi нет проблем...
R>Не расскажите пошагово, как сие подключить?

Просто подключить модуль и все.
Он при загрузке регистрит классы для сортировки и фильтрации.
... << RSDN@Home 1.1.4 beta 7 rev. 463>> А в Winamp'e: И ничего не слышно...
Дункан Маклауд любил ходить в лес и издеваться над кукушками.
138385660
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.