![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Сортировка Column в DBGrid [D6]
aldapooh © (2003-09-11 15:09:00)
Добрый день! пожалуйста помогите...
Нужно колнки в гриде отсортировать по некоторому индексу
однако у меня ничего не получается
посоветуйте как это можно сделать красиво и удобно...
в данный момент у меня так вот НЕ работает как надо
for i:= 0 to Grid.ColCount - 1 do
Grid.Columns[i].Index:= MyIndex
где myindex указывает нужный мне порядок
где я ламерю!?
Спасибо.
Reindeer Moss Eater (2003-09-11 15:57:00) [1]
Нужно иметь список имен полей, отсортированный по индексам полей.
В цикле присваивать экземплярам TField, найденным по имени индексы из списка.
DenK_vrtz (2003-09-11 15:54:00) [2]
aldapooh, тебе Vlad © популярно объяснил, популярнее некуда!
Vlad (2003-09-11 15:53:00) [3]
>aldapooh (11.09.03 15:40) [10]
DBGrid1.Columns[0].Field:=DataSet.FieldByName("NAME1");
DBGrid1.Columns[1].Field:=DataSet.FieldByName("NAME2");
DBGrid1.Columns[2].Field:=DataSet.FieldByName("NAME3");
aldapooh (2003-09-11 15:45:00) [4]
> Mike Kouzmine © (11.09.03 15:44) [12]
что мне почитать? я читать люблю! только не знаю с какой книжки начать ;)
Mike Kouzmine (2003-09-11 15:44:00) [5]
Ты б почитал бы что-нибудь. А то прям неудобно...
aldapooh (2003-09-11 15:43:00) [6]
> stone © (11.09.03 15:40) [9]
да вроде мне кроме как самих колонок и ничего сортировать не надо, мне лишь нужно выводить их в нужном порядке...
stone (2003-09-11 15:40:00) [7]
Вообще-то сортируются не колонки грида, а набор данных. Или я что-то не так понял?
aldapooh (2003-09-11 15:40:00) [8]
>Vlad © (11.09.03 15:35) [7]
>В цикле делать нельзя.
>Как только ты первой колонке изменил индекс, то вторая (i+1) >будет иметь уже совершенно другой индекс. И вся твоя >сортировка пойдет лесом.
>Перечилсяй колонки вручную, попорядку каждой присваивая индекс.
Спасибо - но можно поподробнее... То есть как "перечисляй колонки вручную"???
Vlad (2003-09-11 15:35:00) [9]
В цикле делать нельзя.
Как только ты первой колонке изменил индекс, то вторая (i+1) будет иметь уже совершенно другой индекс. И вся твоя сортировка пойдет лесом.
Перечилсяй колонки вручную, попорядку каждой присваивая индекс.
Mike Kouzmine (2003-09-11 15:35:00) [10]
А MyIndex это кто?
aldapooh (2003-09-11 15:30:00) [11]
for i:= 0 to Grid.ColCount - 1 do
Grid.Columns[i].Index:= MyIndex
это и етсь полный код процедуры SetColumnOrder
а не работает то что колонки отображаются не в том порядке как я указываю с помощью MyIndex
я просто не пойму что происходит когда я присваиваю новое значение ндексу колонки (все други сдвигаются или 2 меняются местами - я уже запарился)
Mike Kouzmine (2003-09-11 15:26:00) [12]
for i:= 0 to Grid.ColCount - 1 do
if Grid.Columns[i].Field.Name = "Vasia" then Grid.Columns[i].Index:= 1
else if Grid.Columns[i].Field.Name = "Vasia1" then Grid.Columns[i].Index:= 2ж
Но так нельзя.
Johnmen (2003-09-11 15:23:00) [13]
Полный код и как не работает ?
aldapooh (2003-09-11 15:20:00) [14]
я использую TTable без persistent полей
ZEE (2003-09-11 15:15:00) [15]
ты явно не туда залез
если для открытия таблицы ты пользуешь что-то типа TQuery/TADOQuery то сортировку делай прям в sql-запросе (ORDER BY), а ежели TTable - то не знаю...
Mike Kouzmine (2003-09-11 15:14:00) [16]
Нужный мировой порядок?