|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
07.06.2011, 16:42 | #1 |
Регистрация: 25.05.2011
Сообщений: 8
|
Авто сортировка строк по нажатию
Добрый день гуру программисты помогите разобраться в одной проблеме . Я написал некую прогу БД с использованием Client Data Set в ней следующие компоненты:
1. TClientDataSet 2. TDataSource 3. TDBGrid 4. TDBNavigator Так ыот все вроде ок оснавнвя функция работает НО вот есть одна проблема когда загружается база и отображается в BDGrid то она не по алфавиту а в разброс например: ljk;yj ,snm 1/2/3/4 а там 4/1/2/3 и такая жк ситуация с буквами . Так вот вопрос в том как сделать что бы происходила сортировка по убыванию или по возрастанию ? Вот нашел статью http://www.sources.ru/delphi/db/sort...mn_click.shtml так все понятно кроме выделенной строки ниже : Куда эту строку писать ? На форме расположены TQuery, TDatasource и TDbGrid связанные вместе. QuerySQL, это глобальная строка, которая содержит SQL-выражение. begin QuerySQL := 'SELECT * FROM Customer.DB'; Query1.SQL.Add(QuerySQL); Query1.Open; end; В DBGrid в событии OnTitleClick, достаточно добавить ORDER-BY к sql-строке и обновить запрос. procedure TForm1.DBGrid1TitleClick(Column: TColumn); begin with Query1 do begin DisableControls; Close; SQL.Clear; SQL.Add(QuerySQL); SQL.Add('ORDER BY ' + Column.FieldName); Open; // Восстанавливаем настройки заголовка, иначе всё станет синим DBGrid1.Columns.RestoreDefaults; Column.Title.Font.Color := clBlue; EnableControls; end; end; |
07.06.2011, 18:02 | #2 |
Заблокирован
Регистрация: 27.05.2010
Сообщений: 1,099
|
если возвращаемый запросом НД сравнительно небольшой, я бы не стал заморачиваться с сортировкой на стороне сервера.
посуольку используется CDS, достаточно создать индексы (по возр. и по убыв.) по полям, требующим сортировки, и подключать нужные индексы к CDS в обработчике клика колонки |
10.03.2012, 01:45 | #3 |
Новичок
Джуниор
Регистрация: 02.02.2007
Сообщений: 2
|
Использую:
TClientDataset DBGridEh как можно о существовать связь сортировки в 2 колонках по выбору(без Sql)? Последний раз редактировалось Prince_Zmei; 10.03.2012 в 01:49. |
10.03.2012, 14:42 | #4 | |
Участник клуба
Регистрация: 07.07.2007
Сообщений: 1,518
|
Писали же выше
Цитата:
Для пущего эффекта установить в OptionEh свойство AutoSortMarking:= True; И обрабатывать событие либо OnSortMarkingChanged, или OnTitleBtnClick Что-то типа Код:
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Авто нумерация строк в BDGrid | Denis Black | БД в Delphi | 6 | 25.05.2011 18:38 |
Сортировка строк | HixoH | Общие вопросы C/C++ | 0 | 27.04.2010 15:40 |
Сортировка по нажатию кнопки | Nate-p | Microsoft Office Access | 2 | 25.06.2008 08:35 |
Сортировка строк | sheva75 | Microsoft Office Excel | 3 | 06.02.2008 05:00 |