Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Базы данных и репортинг > Как упорядочить значения в DBGridEh?


Автор: RGirichev 10.8.2006, 14:19
Добрый день!
Начал осваивать BD вопрос: как упорядочить значения в DBGridEh по двум типам?

т.есть:

у которых активный CheckBox, они между собой сортируются по дате
    
    [ x ] имя          05.01.2003 00:00:00
    [ x ] имя          04.01.2003 00:00:00
    [ x ] имя          03.01.2003 00:00:00
    [ x ] имя          02.01.2003 00:00:00
    [ x ] имя          01.01.2003 00:00:00

в итоге

    [    ] имя          05.01.2003 00:00:00
    [    ] имя          04.01.2003 00:00:00
    [    ] имя          03.01.2003 00:00:00
    [    ] имя          02.01.2003 00:00:00
    [    ] имя          01.01.2003 00:00:00
    [ x ] имя          05.01.2003 00:00:00
    [ x ] имя          04.01.2003 00:00:00
    [ x ] имя          03.01.2003 00:00:00
    [ x ] имя          02.01.2003 00:00:00
    [ x ] имя          01.01.2003 00:00:00



и ещё:
     
    как изменить цвет шрифта строки с активным CheckBox'ом?

Автор: Fedia 11.8.2006, 02:51
Цитата(RGirichev @  10.8.2006,  14:19 Найти цитируемый пост)
как упорядочить значения в DBGridEh по двум типам?

Непосредственно средствами DBGridEh такую сортировку если и можно реализовать, то довольно проблематично. Поэтому сортировку лучше осуществить либо средствами SQL:
Код

select * from table order by bool_field, datetime_field desc.
, где table - имя таблицы, bool_field - логическое поле (то, что с CheckBox-ми), datetime_field - поле даты со временем.
Либо средствами компонента, осуществляющего доступ к данным. Например:
Код

ADOTable1.Sort := 'bool_field, datetime_field DESC';

Автор: Frees 11.8.2006, 09:02
Цитата(Fedia @  11.8.2006,  02:51 Найти цитируемый пост)
Непосредственно средствами DBGridEh такую сортировку если и можно реализовать, то довольно проблематично

насколько я знаю чтоб реализовать сортировку в DBGridEh даже не нужно писать код там все визуально делается 

RGirichev, в описании по EHLib все подробно описано

Автор: Fedia 11.8.2006, 09:09
Цитата(Frees @  11.8.2006,  09:02 Найти цитируемый пост)
насколько я знаю чтоб реализовать сортировку в DBGridEh даже не нужно писать код там все визуально делается 

Да, это так. Просто попробуй DBGridEh сделать например сортировку по умолчанию, так, чтобы она сортировала НД сразу после старта программы. Так с ходу у меня не получилось к сожалению.

Автор: RGirichev 11.8.2006, 15:43
Цитата(Fedia @ 11.8.2006,  08:09)
Да, это так. Просто попробуй DBGridEh сделать например сортировку по умолчанию, так, чтобы она сортировала НД сразу после старта программы. Так с ходу у меня не получилось к сожалению.

но, как сделать сортировку по двум элементам?

 smile 

Автор: Fedia 12.8.2006, 06:03
Цитата(RGirichev @  11.8.2006,  15:43 Найти цитируемый пост)
но, как сделать сортировку по двум элементам?

В каталоге Ehlib посмотри проект DEMO1. На первой закладке главной формы проекта в runtime режиме используй комбинацию Ctrl + Mouse, при кликах на заголовке таблицы. Сортируешь по одному столбцу, затем при помощи Ctrl + Mouse по второму и получишь сортировку по двум полям.

Автор: Ner-zul 13.9.2006, 15:34
Народ, а где скачать это Ehlib c таким замечательным DBGridehom???
Подскажите пожалуйста????
Очень нужно!

Автор: Fedia 14.9.2006, 00:11
Скачать EhLib 3.6 можно http://www.ehlib.com/RUS/ehlibrus.exe.

Пароль: ФЕВРАЛЬФЕВРАЛЬ

Автор: Akella 22.9.2006, 18:11
какая БД?

я использую FireBird
в uses просто добавляю pFIBDataSet или FIBDataSet не помню точно
у EhLib посмотри папку "..\DataService" и "...\DataDrivers\"

Добавлено @ 18:17 
да, и ещё, в свойствах колонки грида ставлю Title->Title Button := true
в свойствах грида AutoSortMarking и MultiSortMarking тоже в True

вот и все

Добавлено @ 18:19 
теже толедвижения нужны и для ADO, например, только замени pFIBDataDriverEh на модуль для ADO

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)