| 
| 
 | Вопрос # 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  отсортировал. В.Хотя на сайтах нашёл некоторые возможности передачи данных в память и в памяти отсортировывать. Решил отделаться минимальными изменениями в программе.
 |  Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |