Сортировка колонки по клику в заголовок DBGrid

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Сортировка колонки по клику в заголовок DBGrid

Сообщение mrkaban » 01.10.2017 20:29:07

Здравствуйте, нужно сделать сортировку колонки по нажатию на заголовок в DBGrid. Подскажите пожалуйста, как это можно сделать?
mrkaban
новенький
 
Сообщения: 51
Зарегистрирован: 28.05.2016 09:48:18

Re: Сортировка колонки по клику в заголовок DBGrid

Сообщение Снег Север » 01.10.2017 20:33:59

Например, отлавливать событие нажатия и добавлять к SQL sortby ...
Аватара пользователя
Снег Север
энтузиаст
 
Сообщения: 1175
Зарегистрирован: 27.11.2007 16:14:47

Re: Сортировка колонки по клику в заголовок DBGrid

Сообщение mrkaban » 01.10.2017 20:45:26

Я правильно понял, что речь про событие "DBGrid1CellClick" или как? Не понимаю, как система поймёт по какому столбцу сортировать
mrkaban
новенький
 
Сообщения: 51
Зарегистрирован: 28.05.2016 09:48:18

Re: Сортировка колонки по клику в заголовок DBGrid

Сообщение wofs » 01.10.2017 22:18:20

mrkaban писал(а):Я правильно понял, что речь про событие "DBGrid1CellClick" или как?

onTitleClick (Event handler for mouse click on Title).
mrkaban писал(а):Не понимаю, как система поймёт по какому столбцу сортировать

А это вы ему сами скажете.
У вышеуказанного события есть Column: TColumn. Доступ к имени поля можно получить через Column.FieldName. А дальше просто добавляете к SQL сортировку.
Аватара пользователя
wofs
постоялец
 
Сообщения: 375
Зарегистрирован: 05.10.2009 10:16:55
Откуда: Астрахань

Re: Сортировка колонки по клику в заголовок DBGrid

Сообщение mrkaban » 02.10.2017 08:03:11

wofs писал(а):
mrkaban писал(а):Я правильно понял, что речь про событие "DBGrid1CellClick" или как?

onTitleClick (Event handler for mouse click on Title).

Действительно! Спасибо большое!
wofs писал(а):
mrkaban писал(а):Не понимаю, как система поймёт по какому столбцу сортировать

А это вы ему сами скажете.
У вышеуказанного события есть Column: TColumn. Доступ к имени поля можно получить через Column.FieldName. А дальше просто добавляете к SQL сортировку.


Спасибо большое! Буду пробовать!
mrkaban
новенький
 
Сообщения: 51
Зарегистрирован: 28.05.2016 09:48:18

Re: Сортировка колонки по клику в заголовок DBGrid

Сообщение alexs » 02.10.2017 10:50:03

возьми RxDBGrid - он умеет это со всеми основными движками запросов к БД
Аватара пользователя
alexs
долгожитель
 
Сообщения: 3675
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Re: Сортировка колонки по клику в заголовок DBGrid

Сообщение wofs » 23.01.2018 18:35:35

alexs писал(а):возьми RxDBGrid - он умеет это со всеми основными движками запросов к БД

А под IBX возможно адаптировать эту функцию? Я не сообразил как...
Аватара пользователя
wofs
постоялец
 
Сообщения: 375
Зарегистрирован: 05.10.2009 10:16:55
Откуда: Астрахань

Re: Сортировка колонки по клику в заголовок DBGrid

Сообщение *Rik* » 23.01.2018 21:57:43

TxDBGrid можно адаптировать (http://visual-t.ru/components.html), могу сказать где пример кода взять для TxDBGrid, будет при щелчке на заголовке сортировать IBX, Zeos, TxDBF
Аватара пользователя
*Rik*
постоялец
 
Сообщения: 373
Зарегистрирован: 19.04.2011 12:18:51
Откуда: Урал

Re: Сортировка колонки по клику в заголовок DBGrid

Сообщение wofs » 23.01.2018 22:22:51

*Rik* писал(а):TxDBGrid можно адаптировать (http://visual-t.ru/components.html)

Ой, спасибо! Уже подсмотрел :)
Аватара пользователя
wofs
постоялец
 
Сообщения: 375
Зарегистрирован: 05.10.2009 10:16:55
Откуда: Астрахань

Re: Сортировка колонки по клику в заголовок DBGrid

Сообщение *Rik* » 23.01.2018 23:24:03

wofs писал(а):
*Rik* писал(а):TxDBGrid можно адаптировать (http://visual-t.ru/components.html)

Ой, спасибо! Уже подсмотрел :)

Там 2 процедуры надо подключить, их можно вытащить из http://visual-t.ru/files/CrossDesigner.7z, проект CrossMachine.
Процедуры: GetDBSortingField и OnAutoSortDataset.
В модуле XDBGrids есть 2 переменные процедурного типа, процедуры надо к ним привязать:
XDBGrids.GetDataSortField := @GetDBSortingField;
XDBGrids.AutoSortDataSet:= @OnAutoSortDataset;
Если не охота процедуры искать, могу их сюда вытащить, но много букв будет..
Аватара пользователя
*Rik*
постоялец
 
Сообщения: 373
Зарегистрирован: 19.04.2011 12:18:51
Откуда: Урал

Re: Сортировка колонки по клику в заголовок DBGrid

Сообщение wofs » 23.01.2018 23:43:30

*Rik* писал(а):Если не охота процедуры искать, могу их сюда вытащить, но много букв будет..

Нет, нет спасибо большое за помощь! Я все нашел.
Аватара пользователя
wofs
постоялец
 
Сообщения: 375
Зарегистрирован: 05.10.2009 10:16:55
Откуда: Астрахань

Re: Сортировка колонки по клику в заголовок DBGrid

Сообщение alexs » 29.01.2018 12:11:21

wofs писал(а):А под IBX возможно адаптировать эту функцию? Я не сообразил как...

А где взять IBX? Я посмотрю что там.
Аватара пользователя
alexs
долгожитель
 
Сообщения: 3675
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Re: Сортировка колонки по клику в заголовок DBGrid

Сообщение *Rik* » 29.01.2018 13:36:48

alexs писал(а):
wofs писал(а):А под IBX возможно адаптировать эту функцию? Я не сообразил как...

А где взять IBX? Я посмотрю что там.

http://visual-t.ru/ibexpress.html
Аватара пользователя
*Rik*
постоялец
 
Сообщения: 373
Зарегистрирован: 19.04.2011 12:18:51
Откуда: Урал

Re: Сортировка колонки по клику в заголовок DBGrid

Сообщение alexs » 29.01.2018 15:44:42

Добавил сортировщик для IBX для RxDBGrid-а
Также пример
Аватара пользователя
alexs
долгожитель
 
Сообщения: 3675
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Re: Сортировка колонки по клику в заголовок DBGrid

Сообщение wofs » 30.01.2018 16:08:53

alexs писал(а):Добавил сортировщик для IBX для RxDBGrid-а

Спасибо! Я правда сделал решение, бодро шагающее на костылях, но когда оно из коробки - это гораздо лучше.
Аватара пользователя
wofs
постоялец
 
Сообщения: 375
Зарегистрирован: 05.10.2009 10:16:55
Откуда: Астрахань


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot] и гости: 11

Рейтинг@Mail.ru