![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Проблема с LookUp полями [D7, IB6.x]
Andrew_S © (2004-05-27 12:53:00)Добрый день.
Попытаюсь вкратце изложить суть проблемы:
Есть база оборудования на FireBird 1.5.
Каждое оборудование имеет принадлежность подстанции, распредустройству и ячейке. Есть таблицы подстанций, распредустройств и ячеек. Таблица распредустройств связана с т. подстанций, т. ячеек связана с таблицей распредустройств.
Есть также таблица оборудования, где есть поля с кодом подстанции, распредустройства и ячейки. Создал LookUp поля для вытаскивания названий подстанций, распредустройств и ячеек.
Выкинул на форму DBGrid привязанный к таблице оборудования. Так вот какой был замечен глюк - подстанции выбираются без проблем и имя подстанции нормально отображается в Lookup поле, а вот с распредустройствами и ячейками всё не так хорошо, выбор происходит нормально, однако при переходе на другую запись в таблице оборудования, LookUp поля распредустройств и ячеек не всегда отображают имена. Хотя если щёлкнуть на Lookup поле то в выпадающем списке выделено именно то имя которое должно отображатся.
Фух, объяснил как мог :), если не понятно попытаюсь объяснить получше...
Использую FibPlus, хотя с IBExpress тоже самое.
Может кто поможет советом?
Sergey13 (2004-05-28 11:46:00) [1]2Andrew_S (28.05.04 11:26) [15]
>Смотрю на него и думаю всё-таки от лукапов отказаться...
И это правильно. (с) М.С.Горбачев.
Добавлю - во многих (не во всех!!!) случаях.
Andrew_S (2004-05-28 11:26:00) [2]>Sergey13 © (28.05.04 11:19) [14]
Так и сделал :), изврат ещё тот. Смотрю на него и думаю всё-таки от лукапов отказаться...
Sergey13 (2004-05-28 11:19:00) [3]2Andrew_S (28.05.04 11:12) [13]
>Связь датасетов нужна по логике,
Опять же - или отказ от лукапов вообще (рекомендую) или можно извратитьсяоткрыв 2 одинаковых датасета, один для логики (с м-д или фильтрацией), другой только для лукаповбез м-д привязок и фильтрации.
Andrew_S (2004-05-28 11:12:00) [4]Спасибо за ответ.
Связь датасетов нужна по логике, даже если я её делаю ручками (фильтрацией), всё равно лукапкомбобоксы глючат, хотя лукапполя заработали.
Sergey13 (2004-05-28 08:45:00) [5]2Andrew_S (27.05.04 14:43) [11]
Твоя проблема похоже в том, что твои датасеты подстанций, распредустройств и ячеек сделаны сделаны с мастер-детальной связкой. Т.е. в каждый момент времени видны все подстанции, а вот остальное только то, что соответствует текущим условиям, т.е. далеко не все. Естественно лукап-поля оборудования не видят того чего нет в этих датасетах.
Выход - или отказаться от лукапов (я бы так сделал) или снять М-Д с лукапных датасетов.
Andrew_S (2004-05-27 14:43:00) [6]Жаль.
Ручками это я уже сделал. Но хотелось попроще и покрасивей :(
Johnmen (2004-05-27 14:36:00) [7]Тебе нужна фильтрация. И, видимо, связь М-Д придется отключить и реализовать по-своему.
Andrew_S (2004-05-27 14:29:00) [8]>Надо включить кеширование лукапного поля.
Включал, не помогает
Andrew_S (2004-05-27 14:22:00) [9]Давай я ещё разок всё расскажу...
Есть три таблицы:
Подстанции
Распредустройства
Ячейки
Связаны они так Подстанции <- Распредустройства
Распредустройства <- Ячейки
В таблице оборудования есть три поля:
Код подстанции, Код распредустройства, Код ячейки
Ещё для каждого из этих полей создано LoolUp поле.
Так вот LookUp поле подстанций работает нормально, а остальные LookUp-ы глючат. Если убрать связь между таблицами подстанций-распредустройств, распредустройств-ячеек, то все работает. Но мне нужно так что если выбрал подстанцию - в Lookup-е распредустр-в показывались только те , которые принадлежат выбранной подстанции, точно также если я выбрал распредустройство - при выборе ячеек выпадали только те которые ему принадлежат, вот.
Johnmen (2004-05-27 14:14:00) [10]Неоднократно этот вопрос всплывал.
Надо включить кеширование лукапного поля.
Соловьев (2004-05-27 14:07:00) [11]
> вот с распредустройствами и ячейками
а у этого?
Andrew_S (2004-05-27 13:52:00) [12]Тот же результат. Данные в LookUp поле то появляюцца то пропадают. Чаще пропадают :(
Соловьев (2004-05-27 13:47:00) [13]
> dcWaitEndMasterScroll=true
а если false?
Andrew_S (2004-05-27 13:39:00) [14]dcWaitEndMasterScroll=true
>открыт этот датасет?
Конечно открыт
Соловьев (2004-05-27 13:22:00) [15]dcWaitEndMasterScroll - false?
> вот с распредустройствами и ячейками
открыт этот датасет?
Andrew_S (2004-05-27 13:16:00) [16]?