|
Вопрос # 3 392/ вопрос открыт / |
|
Приветствую, уважаемые эксперты! Сортировка Grid по столбцам. BazaTabl.Sort:='field' Всё работает. А как отсортировать по месяцам дату? По годам сортируется..Спасибо
 |
Вопрос задал: Lytvynenko (статус: Посетитель)
Вопрос отправлен: 11 ноября 2009, 22:52
Состояние вопроса: открыт, ответов: 0.
|
Мини-форум вопроса
Всего сообщений: 7; последнее сообщение — 23 ноября 2009, 21:42; участников в обсуждении: 2.
|
Lytvynenko (статус: Посетитель), 12 ноября 2009, 10:17 [#1]:
Забыл указать : база данных Acces
|
|
Мережников Андрей (статус: Абитуриент), 12 ноября 2009, 16:53 [#2]:
еще забыли указать структуру таблицы и какие компоненты используете для доступа к БД
|
|
Lytvynenko (статус: Посетитель), 13 ноября 2009, 12:04 [#3]:
Компоненты : AdoConnect
AdoTable
DataSource
для отображения данных: GridEh в нём и есть возможность сортировать по столбцам.
Понимаю что через SQL было бы елементарно. Но Многое завязано на Adotable/
Подумал создать вычислительное поле :
procedure TDatM.BazaTablCalcFields(DataSet: TDataSet);
begin
DatM.BazaTablO_DatR_mes.Value:=FormatDateTime('mmdd',DatM.BazaTablO_DatR.Value);
end;
думал проблему решил. НО !!!! Опять промах - сортировка по вычислительным полям не проходит в Gride
Структура таблицы длинная но :
O_Id inc
O_Nom int
O_FIP char(40)
O_DatR data
O_DatK data
O_Adres char()
O_Telef char()
....
Для пущей наглядности _ надо чтобы дни рождения O_DatR могли сортироваться по месяцам.()
|
|
Мережников Андрей (статус: Абитуриент), 13 ноября 2009, 16:40 [#4]:
как вариант - можно завести отдельные поля для хранения дня, месяца и года рождения и сортировать по ним. Хотя, я бы не поленился, и переделал ADOTable на ADOQuery. С GridEh - не работал, поэтому подсказать по этому поводу не могу.
|
|
Lytvynenko (статус: Посетитель), 16 ноября 2009, 00:28 [#5]:
Ваш вариант приемлем, Спасибо. сам про него думаю(добавить лишние поле)
Единственно смущает - что формировать поле получается надо при вводе новой даты. А для старый значений надо будет цикл обработки написать. Если бы всё было под рукой.
Проблема вот в чём - базы данных находятся не у меня.. И формировать тоже придется в самой програмке.
Уже так делал. Вообщем опять Костыли....
А думал что есть более лёгкое решение. Думал что что Grid** есть некий волшебный... Спасибо...
|
|
Мережников Андрей (статус: Абитуриент), 16 ноября 2009, 05:53 [#6]:
тем более, есть смысл перейти с ADOTable на ADOQuery. По сути, SQL-запросом Вы сможете сформировать то, что Вам надо для отображения в нужном порядке. Поля, вычисленные в процессе выполнения SQL-запроса не будут считаться вычисляемыми для Grid.
|
|
Lytvynenko (статус: Посетитель), 23 ноября 2009, 21:42 [#7]:
Не стал долго мучиться а в отчете вывел форму и с помощью SQL отсортировал. В.Хотя на сайтах нашёл некоторые возможности передачи данных в память и в памяти отсортировывать.
Решил отделаться минимальными изменениями в программе.
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|