Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.08.2009, 21:56   #1
Vitek.klaster
 
Аватар для Vitek.klaster
 
Регистрация: 21.03.2009
Сообщений: 8
Вопрос Некоректное отображение пордка строк в дочерней таблице(DBGrid).

Здравствуйте.
Возникла проблема с отображением порядка строк в дочерней таблице. Или проблема в DBGrid? Как с этим бороться? Подскажите плз, если кто знает...

Вот нормальное отображение строк в таблице(Все дочерние строки прикреплённые к строке главной таблицы через поле KeyLink отображаются корректно:

Но постоянно возникает "БАГ" - одна срока в главной таблице имеет некорректное отображение строк в дочерней таблице, причём сколько не удалял, сколько новых не добавлял, всегда она присутствует. То там, то сям.... :.

В результате в таблицах у одного юзера всегда перепутаны числа и дни недели(идут не попорядку), и это плохо , ибо нельзя!

Проект ваяю на Делфи. Всем заранее спасибо...
Торчу на работе... Торчу дома... Торчу у тёщи... Везде торчу!!!

Последний раз редактировалось Vitek.klaster; 25.08.2009 в 22:00.
Vitek.klaster вне форума Ответить с цитированием
Старый 25.08.2009, 22:07   #2
Daramant
Форумчанин
 
Регистрация: 06.01.2009
Сообщений: 340
По умолчанию

Как заполняешь таблицы?
Если пишешь свои sql-запросы, то в запросе отсортируй по дате и все.
Истинный успех – это то, что Вы сделали в сравнении с тем, что могли бы сделать.
Никогда не бойся делать то, что ты не умеешь. Помни, ковчег был построен любителем. Профессионалы построили "Титаник".
Daramant вне форума Ответить с цитированием
Старый 26.08.2009, 00:05   #3
Vitek.klaster
 
Аватар для Vitek.klaster
 
Регистрация: 21.03.2009
Сообщений: 8
Смущение

Цитата:
Сообщение от Daramant Посмотреть сообщение
Как заполняешь таблицы?
Если пишешь свои sql-запросы, то в запросе отсортируй по дате и все.
Пробовал, но дочерняя таблица не может быть отсортирована, т.к. нарушается связь 'LinkKey -> Key' с основной таблицей.
Эта функция не пашет: "TimeTable1.IndexFieldNames:='Дата' ;" при попытке сортировки дочерней таблицы данные в ней перестают отображаться.

Мож по другому можно отсортировать???
Торчу на работе... Торчу дома... Торчу у тёщи... Везде торчу!!!
Vitek.klaster вне форума Ответить с цитированием
Старый 26.08.2009, 00:22   #4
Daramant
Форумчанин
 
Регистрация: 06.01.2009
Сообщений: 340
По умолчанию

Даты и дни недели вносишь сам?
Может ошибка в том, что на приведенном скриншоте суббота и воскресенье с датами 01.08.2009 и 02.08.2009 вставлены не на свое место, сейчас выводит с последовательным увеличением дат, и у понедельника должно быть 01.08.2009, а у него 03.08.2009, т.е. надо убрать суббота и воскресенье и все дни сдвинуть вверх.
Истинный успех – это то, что Вы сделали в сравнении с тем, что могли бы сделать.
Никогда не бойся делать то, что ты не умеешь. Помни, ковчег был построен любителем. Профессионалы построили "Титаник".

Последний раз редактировалось Daramant; 26.08.2009 в 00:38.
Daramant вне форума Ответить с цитированием
Старый 26.08.2009, 08:39   #5
Vitek.klaster
 
Аватар для Vitek.klaster
 
Регистрация: 21.03.2009
Сообщений: 8
По умолчанию

Даты и дни недели вводятся автоматически, вычисляются из периода выбранного в DateTimePicker, когда строки создаются дочерняя таблица с датами, для всех строк главной таблицы отображается корректно. Но после первого закрытия всего приложения и открытия его заново, строки дочерней таблицы для одного из "Юзеров" смещаются, например как на "скриншоте". Короче когда строки создаются - ВСЁ ГУД! Закрыл, открыл приложение - Смещаються строки.
Вот видео записал 2 мб. мож там понятнее будет.
http://video.yandex.ru/users/uncle-vitek/view/1

Причём дата с днём недели совпадает везде, просто строки меняются местами...
Торчу на работе... Торчу дома... Торчу у тёщи... Везде торчу!!!

Последний раз редактировалось Vitek.klaster; 26.08.2009 в 10:07.
Vitek.klaster вне форума Ответить с цитированием
Старый 26.08.2009, 15:23   #6
Daramant
Форумчанин
 
Регистрация: 06.01.2009
Сообщений: 340
По умолчанию

Цитата:
Вот видео записал 2 мб. мож там понятнее будет.
http://video.yandex.ru/users/uncle-vitek/view/1

Причём дата с днём недели совпадает везде, просто строки меняются местами...
Да, я увидел что не так. Действительно странно.
Я обычно все делал через sql-запросы, поэтому мне трудно сказать, почему у тебя возникает такая проблема.
Какие компоненты используешь?
Если ADOTable, то у него есть свойство Sort, попробуй установить его у дочерней таблицы.
Это будет:
Код:
adotable1.Sort := FieldName + ' ASC'; // у тебя: 'Дата ASC' // ASC - сотрировка по возрастанию, DESC - по убыванию
adotable1.Refresh;
Истинный успех – это то, что Вы сделали в сравнении с тем, что могли бы сделать.
Никогда не бойся делать то, что ты не умеешь. Помни, ковчег был построен любителем. Профессионалы построили "Титаник".
Daramant вне форума Ответить с цитированием
Старый 26.08.2009, 16:59   #7
Vitek.klaster
 
Аватар для Vitek.klaster
 
Регистрация: 21.03.2009
Сообщений: 8
По умолчанию

Sort не помог, после его использования связь главной и дочерней таблицы теряется, и данные в дочерней таблице перестают отображаться.

А через sql-запросы? Это как выглядеть будет? Или надо какие-нить другие компоненты использовать?
Торчу на работе... Торчу дома... Торчу у тёщи... Везде торчу!!!
Vitek.klaster вне форума Ответить с цитированием
Старый 26.08.2009, 17:17   #8
Daramant
Форумчанин
 
Регистрация: 06.01.2009
Сообщений: 340
По умолчанию

Цитата:
А через sql-запросы? Это как выглядеть будет?
Используем, например компоненты: TDataSource, TADOQuery, TADOConnection, ну и TDBGrid; цепляем их друг к другу.
Теперь, чтобы вывести данные в DBGrid, пишем:
Код:
  FQuery.Close;
  FQuery.SQL.Text := 'SELECT fieldlist FROM tablename;'; // текст sql-запроса
  // можно установить параметры если требуется:
  // FQuery.Prepared := True;
  // FQuery.Parameters.

  FQuery.Open;
Данные отобразились.

Теперь в главном DBGrid обрабатываем событие клика мыши, определяем на какой строке оно было сделано и в дочернюю DBGrid, тем же способом выводим данные, только нужен другой компонент query.

P.S. просто в твоем случае, это все делалось автоматически и данный вариант может показаться чуть сложнее и требующий написания большего кол-ва кода.
Истинный успех – это то, что Вы сделали в сравнении с тем, что могли бы сделать.
Никогда не бойся делать то, что ты не умеешь. Помни, ковчег был построен любителем. Профессионалы построили "Титаник".
Daramant вне форума Ответить с цитированием
Старый 26.08.2009, 20:45   #9
Vitek.klaster
 
Аватар для Vitek.klaster
 
Регистрация: 21.03.2009
Сообщений: 8
По умолчанию

Угу, спс, попробую... Сегодня уже правда некогда, а завтра я с ентим разберусь..... и отпишусьььь.....
...................
М-м- да-а... Попробовал и понял, что нифига я в TADOQuery и SQL-запросах не понимаю. Пойду читать литературу по SQL, и после переписывать весь проект....
Торчу на работе... Торчу дома... Торчу у тёщи... Везде торчу!!!

Последний раз редактировалось Stilet; 28.08.2009 в 08:18.
Vitek.klaster вне форума Ответить с цитированием
Старый 27.08.2009, 16:54   #10
Daramant
Форумчанин
 
Регистрация: 06.01.2009
Сообщений: 340
По умолчанию

Цитата:
М-м- да-а... Попробовал и понял, что нифига я в TADOQuery и SQL-запросах не понимаю. Пойду читать литературу по SQL, и после переписывать весь проект....
Просто это, более низкий уровень, если можно так сказать, но зато, более гибкий и имеющий больше возможностей.

Просто надо продумать структуру, написать пару своих классов, скрывающих детали, и таким образом работать будет ни чуть не сложнее чем раньше.

Удачи.
Истинный успех – это то, что Вы сделали в сравнении с тем, что могли бы сделать.
Никогда не бойся делать то, что ты не умеешь. Помни, ковчег был построен любителем. Профессионалы построили "Титаник".
Daramant вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Отображение через несколько DBGRID Sparky БД в Delphi 10 26.08.2009 10:13
Отображение связанных полей в dbgrid Deight БД в Delphi 5 19.04.2009 00:42
Отображение в форме и таблице двух столбцов подстановок smoky Microsoft Office Access 5 01.07.2008 09:27
отображение иконок в DBGrid Yoger БД в Delphi 3 04.03.2007 02:33