Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.08.29;
Скачать: CL | DM;

Вниз

Сортировка в TClientDataSet   Найти похожие ветки 

 
serg128   (2004-08-03 09:49) [0]

Народ, подскажите, как можно сделать сортировку данных в TClientDataSet (без участия SQL)? Если можно - кусок кода. Пасиба.


 
Nikolay M. ©   (2004-08-03 10:03) [1]

F1 по TClientDataSet.IndexDefs, например.


 
Romkin ©   (2004-08-03 10:20) [2]

Какой код?! IndexFieldNames - через ; без пробелов вписать имена полей. и все.


 
Nikolay M. ©   (2004-08-03 10:55) [3]


> Romkin ©   (03.08.04 10:20) [2]
> Какой код?!

Он хочет по клику на Title DBGrid-a DataSet сортировать, имхо :)
Так что ему это программно нужно :)


 
Romkin ©   (2004-08-03 10:59) [4]

Nikolay M. ©  (03.08.04 10:55) [3] Телепат, да?
http://rsdn.ru/article/db/midas.xml
Если мне память не изменяет, то в клиенте для этой статьи я сделал сортировку при нажатии на заголовок...


 
serg128   (2004-08-03 11:14) [5]

> Romkin

там нету сортировки


 
serg128   (2004-08-03 11:17) [6]

У меня есть такой код (по щелчку на заголовке), но он иногда работает не корректно (появляются левые записи). Подскажите, где ошибка.

   if((ioCur!=smNone) && (dynamic_cast<TClientDataSet*>(DBG->DataSource->DataSet)->IndexName != ""))
     dynamic_cast<TClientDataSet*>(DBG->DataSource->DataSet)->DeleteIndex(dynamic_cast<TClientDataSet*>(DBG->DataSource->Data Set)->IndexName);
   switch (ioCur)
   {
     case smUp:
       dynamic_cast<TClientDataSet*>(DBG->DataSource->DataSet)->AddIndex(Field->FullName, Field->FullName, TIndexOptions()<<ixDescending, "", "", 0);
       dynamic_cast<TClientDataSet*>(DBG->DataSource->DataSet)->IndexName = Field->FullName;
       SortStr = Field->FullName;
       ioCur = smDown;
       break;
     case smDown:
       if(ioCur!=smNone && dynamic_cast<TClientDataSet*>(DBG->DataSource->DataSet)->IndexName!="")
         dynamic_cast<TClientDataSet*>(DBG->DataSource->DataSet)->DeleteIndex(dynamic_cast<TClientDataSet*>(DBG->DataSource->Data Set)->IndexName);
       dynamic_cast<TClientDataSet*>(DBG->DataSource->DataSet)->IndexName="";
       SortStr = Field->FullName;
       ioCur = smNone;
       break;
     case smNone:
       dynamic_cast<TClientDataSet*>(DBG->DataSource->DataSet)->AddIndex(Field->FullName, Field->FullName, TIndexOptions(), "", "", 0);
       dynamic_cast<TClientDataSet*>(DBG->DataSource->DataSet)->IndexName = Field->FullName;
       SortStr = Field->FullName;
       ioCur = smUp;
       break;
   }


 
serg128   (2004-08-03 17:03) [7]

Ну помогите ж блин!!!!


 
Nikolay M. ©   (2004-08-03 17:21) [8]


> Romkin ©   (03.08.04 10:59) [4]
> Nikolay M. ©  (03.08.04 10:55) [3] Телепат, да?

Ага :)


> Если мне память не изменяет

Изменяет :(


> есть такой код (по щелчку на заголовке), но он иногда работает
> не корректно (появляются левые записи).

На первый взгляд все правильно. Может, DBGrid остается неперерисованным? Проскролль его вверх-вниз.


 
serg128   (2004-08-03 17:35) [9]

Проскролил -> непомогает :(



Страницы: 1 вся ветка

Текущий архив: 2004.08.29;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.04 c
4-1090223134
DmitryMN
2004-07-19 11:45
2004.08.29
Поиск директории Program Files


14-1092311413
WondeRu
2004-08-12 15:50
2004.08.29
Компоненты для работы с шифрованием по ...


3-1091543705
reticon
2004-08-03 18:35
2004.08.29
SQL + функция Format


1-1092026133
vasko
2004-08-09 08:35
2004.08.29
Перевод строки в CHAR


3-1091785162
vic
2004-08-06 13:39
2004.08.29
ADOQuery + compute