Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Проблема с 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]

?


Наверх

Титульная страница Поиск, карта сайта Написать письмо