Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 3 392

/ вопрос открыт /

Приветствую, уважаемые эксперты! Сортировка Grid по столбцам. BazaTabl.Sort:='field' Всё работает. А как отсортировать по месяцам дату? По годам сортируется..Спасибо

Lytvynenko Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: Lytvynenko (статус: Посетитель)
Вопрос отправлен: 11 ноября 2009, 22:52
Состояние вопроса: открыт, ответов: 0.


Мини-форум вопроса

Всего сообщений: 7; последнее сообщение — 23 ноября 2009, 21:42; участников в обсуждении: 2.
Lytvynenko

Lytvynenko (статус: Посетитель), 12 ноября 2009, 10:17 [#1]:

Забыл указать : база данных Acces
Мережников Андрей

Мережников Андрей (статус: Абитуриент), 12 ноября 2009, 16:53 [#2]:

еще забыли указать структуру таблицы и какие компоненты используете для доступа к БД
Lytvynenko

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

Lytvynenko (статус: Посетитель), 16 ноября 2009, 00:28 [#5]:

Ваш вариант приемлем, Спасибо. сам про него думаю(добавить лишние поле)
Единственно смущает - что формировать поле получается надо при вводе новой даты. А для старый значений надо будет цикл обработки написать. Если бы всё было под рукой.
Проблема вот в чём - базы данных находятся не у меня.. И формировать тоже придется в самой програмке.
Уже так делал. Вообщем опять Костыли....
А думал что есть более лёгкое решение. Думал что что Grid** есть некий волшебный... Спасибо...
Мережников Андрей

Мережников Андрей (статус: Абитуриент), 16 ноября 2009, 05:53 [#6]:

тем более, есть смысл перейти с ADOTable на ADOQuery. По сути, SQL-запросом Вы сможете сформировать то, что Вам надо для отображения в нужном порядке. Поля, вычисленные в процессе выполнения SQL-запроса не будут считаться вычисляемыми для Grid.
Lytvynenko

Lytvynenko (статус: Посетитель), 23 ноября 2009, 21:42 [#7]:

Не стал долго мучиться а в отчете вывел форму и с помощью SQL отсортировал. В.Хотя на сайтах нашёл некоторые возможности передачи данных в память и в памяти отсортировывать.
Решил отделаться минимальными изменениями в программе.

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:33
Выполнено за 0.03 сек.