Главная страница
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.045 c
1-1092156246
3APA3A
2004-08-10 20:44
2004.08.29
Работа ListView в режиме vsReport


3-1091458329
sloug
2004-08-02 18:52
2004.08.29
Нужно просуммировать


4-1089877699
banderas
2004-07-15 11:48
2004.08.29
Как сделать что бы запускался почтовый клиент по умолчанию


1-1092389998
Aleksander
2004-08-13 13:39
2004.08.29
Как обработать символ < >


11-1080063843
Delphi5.01
2004-03-23 20:44
2004.08.29
Chem mojet bit vizvana oshibka: ExptIntf.dcu