Всем привет дорогие друзья. Данная статья будет посвящена сортировке полей в компоненте TDBGidEh в Delphi. Согласитесь, что данный компонент довольно мощный и будет поинтереснее стандартной сетки TDBGrid.
Причем в TDBGRidEh можно делать отличную сортировку по названию столбца, которую Вы можете наблюдать во множестве современных программных продуктах. Сделать такую сортировку очень просто, нам достаточно лишь определится с названием полей, по которым будет производиться сортировка, после чего нажать двойным щелчком по TDBGRidEh и выбрать соответствующий столбец, по которому Вы будете делать сортировку. Далее переходите в его свойства и устанавливаете свойство Title-TitleButton в True. Кроме этого, свойство Title-TitleButton я установил в smDownEh.
Пол дела сделано, теперь нам необходимо выделить компонент TDBGridEh и перейти во вкладку с событие, где в списке найти OnTitleBtnClick, на данное событие нам необходимо будет написать следующий код:
procedure TForm2.DBGridEh1TitleBtnClick(Sender: TObject; ACol: Integer;
Column: TColumnEh);
begin
if Column.Title.Caption='Заголовок столбца' then
begin
if ADOQuery2.Sort='' then
ADOQuery2.Sort:='id ASC';
if ADOQuery2.Sort='id ASC' then
ADOQuery2.Sort:='id DESC'
else
ADOQuery2.Sort:='id ASC';
end;
end;
Если у Вас организована сортировка по нескольким столбцам, то Вам необходимо на данное событие добавить проверку по другим столбцам и указать поле сортировки.
Все делается очень просто, в итоге, как Вы проделаете всю эту операцию, в Вашем проекте должно получиться что-то похожее:
Данные сортируются без проблем в нужном нам порядке. Такую же сортировку по нажатию на заголовок, можно организовать в компоненте TDBGrid, но TDBGridEh мне как-то больше нравится, тем более некоторые его версии распространяются бесплатно.
Теперь Вы знаете, как организовать сортировку по клику на заголовок TDBGridEh.
Также советуем почитать на PressDev.RU
Короткая ссылка: http://pressdev.ru/?p=4758