Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2014.01.12;
Скачать: [xml.tar.bz2];

Вниз

сортировка в dbgrid   Найти похожие ветки 

 
123454321   (2013-03-15 16:48) [0]

Для определенного столбца в DBGrid нужно написать свою сортировку (на клиенте). Столбец X может иметь значения вида:

aaa121
87bbb
ccc111cc

нужно выцепить из значений числа и сортировать по ним.

в данном случае должно выстроиться последовательность:

либо

aaa121
ccc111cc
87bbb

Как такое сделать?


 
Jeer ©   (2013-03-15 16:50) [1]

Сортировка делается на сервере, тем более при DBGrid.


 
turbouser ©   (2013-03-15 16:51) [2]

Добавить вычисляемое поле и сортировать по нему


 
clickmaker ©   (2013-03-15 19:03) [3]

Можно взять ClientDataSet или другой MemoryData и сортировать его


 
Юрий Зотов ©   (2013-03-16 07:49) [4]

Если проблема в том, чтобы выцепить из значений числа, то это просто. Правда, писал "на лету" и не думая, поэтому могут быть ошибки - проверьте (особенно, для Unicode). В функцию передаем строковое значение поля, а ее результат загоняем в невидимое вычисляемое поле и сортируем по нему.

const
 Digits = ["0"..."9"];

function ExtractNumber(const S: string): cardinal;
var
 i: integer;
begin
 Result := 0;
 i := 1;
 while (i <= Length(S) and not (S[i] in Digits) do
   Inc(i);  
 while (i <= Length(S) and (S[i] in Digits) do
 begin
   Result := Result * 10 + Ord(S[i]) - Ord("0");
   Inc(i)
 end
end;



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

Форум: "Начинающим";
Текущий архив: 2014.01.12;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.008 c
15-1374834231
MonoLife
2013-07-26 14:23
2014.01.12
Всех сисадминов - с Днем сисадмина!!


15-1374558352
DevilDevil
2013-07-23 09:45
2014.01.12
Багтрек Embarcadero


2-1363338801
Zheksonz
2013-03-15 13:13
2014.01.12
Запитывание какого-либо устройства через USB порт


2-1363348236
kirat
2013-03-15 15:50
2014.01.12
Алгоротм. Формулу в цикл.


11-1249205119
DevilDevil
2009-08-02 13:25
2014.01.12
SelLength для ComboBox





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский