Вниз
Скачать: CL | DM;

Два DblookupCombobox - последвательно.   Найти похожие ветки 

← →
Николай   (2005-05-23 18:05) [0]

Привет!
Использую Delphi7 + MS Access + AdoTable + DBGridEh (Ehlib)
В Access есть три последовательно связанные между собой таблицы.
Главная – таблица типов оборудования. Два столбца – Код типа и Наименование типа.
Подчиненная – таблица подтипов оборудования. Три столбца Код типа, Код подтипа и Наименование подтипа. Данная таблица связана с предыдущей по столбцу Код типа.
Таблица со списком оборудования – присутствуют столбцы Код типа, Код подтипа, Код оборудования (счетчик) ну и характеристики оборудования. Эта таблица связана с предыдущей по столбцам Код типа и Код подтипа.

Все перечисленные таблицы имеют указанные связи, реализованные как в БД, так и в Mastersource-Masterfields. Окно выглядит так
--------------------
DBLookupCombobox1 (для выбора типа оборудования)
--------------------
DBLookupCombobox2 (для выбора подтипа оборудования)
-------------------
DBGridEh + кнопки управления добавления записей (для описания оборудования).

С первым комбобоксом проблем не возникает.
А вот со вторым наблюдается следующее:
1. При выборе наименования подтипа оборудования в этом комбобоксе (при закрытии комбобокса) курсор в таблице подтипов оказывается совершенно не на той строке, которую выбрал пользователь – комбобокс отображает не тот текст. Естественно, при добавлении записи в таблицу описания оборудования в ключевом поле Подтипа оказывается не тот код. Хотя, если открыть указанный комбобокс второй раз (и выбрать значение), то мы увидим, что в нем курсор стоит на верной записи! А отображение после закрытия комбобокса и добавление кода неверное!
2. Еще смущает то, что иногда все вроде работает как надо (пару раз попадал на такой случай, радовался и думал, что исправил), но потом все снова как описано. Явных ошибок нет, все проверено по три раза, все объекты стерты, заменены и сконфигурированы заново, БД заполнена корректно, никаких событий, которые могли бы “сбрасывать курсор в таблице” не на то место – нет.

Подскажите, пожалуйста возможные причины – я допускаю, что использование такой схемы в Дельфи может глючить (раньше похожие случаи у кого-то были) – хочу узнать Ваше мнение по этому поводу.
Спасибо.


← →
DSKalugin ©   (2005-05-23 20:16) [1]

проверь ключевые поля для подтипов, список должен быть завязан на таблицу со списком оборудования, а не на типы и прочее
Field
 KeyField
 KeyValue
 ListField
 ListFieldIndex
 ListSource


← →
Николай   (2005-05-23 20:33) [2]

немного не понял :-(


← →
Sergey13 ©   (2005-05-24 09:30) [3]

2Николай   (23.05.05 18:05)
Попробуй реализовать мастер-деталь руками. На изменение первого комбобокса - фильтрация второй таблицы с ручной установкой второго комбобокса на первую запись. Так же и со вторым.

>Эта таблица связана с предыдущей по столбцам Код типа и Код подтипа.
Код типа тут в принципе лишний, если Код подтипа - первичный ключ.



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.025 c
1-1119343980
wrmj
2005-06-21 12:53
2005.07.11
Соответствие типов Pascal DOS и Delphi 5


3-1117110259
alex_***
2005-05-26 16:24
2005.07.11
MS SQL - число в hex виде


11-1101489029
Alexandr999
2004-11-26 20:10
2005.07.11
Undeclared identifier: Application


1-1118405219
WondeRu
2005-06-10 16:06
2005.07.11
Как передать динамическую структуру из DLL в программу?


14-1116828273
Priest
2005-05-23 10:04
2005.07.11
Кто-нибудь качал Update 3 для D2005




   Наверх