Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.12.12;
Скачать: CL | DM;

Вниз

Использование DBLookUpComboBox   Найти похожие ветки 

 
Юлия   (2002-11-24 16:02) [0]

В раскрывающемся списке находятся не все значения поля, а только то, которое соответствуют значеню поля в дочерне таблице. Почему? Как это исправить?
Установленные значения:
DataSource – родительская таблица
DataField – поле в родительской таблице
ListSource – дочерняя таблица
ListField – поле, значения которого должны отображаться в Combo
KeyField – ключевое поле дочерней таблицы


 
Юлия   (2002-11-24 19:07) [1]

Мастера, помогите пожалуйста! Может, я неправильно понимаю, для чего вообще нужен DBLookupComboBox?


 
mike-d ©   (2002-11-24 20:39) [2]

>Может, я неправильно понимаю, для чего вообще нужен DBLookupComboBox?
Скорее всего так оно и есть
Если ListSource дочерняя таблица, как Вы пишите, то и видеть будете только подчиненные записи определенные ключом в MasterFileds дочерней таблицы.
Стандартное применение Lookup полей заключается в подстановке значений элемента таблицы элементами из справочника. Например:

1-ая таблица (какие-то данные) (Customer)
1. ID клиента
2. Наименование клиента
3. ID банка обслуживающего клиента

2-ая таблица (справочник) (Banks)
1. ID банка
2. Наименование банка
3. И т.д.

Создаем Lookup поле в первой таблице
DataSource - Customer
DataField - Customer.FieldByNum(3)
ListSource - Banks
KeyField - Banks.FieldByNum(1)
ListField - Banks.FieldByNum(2)

Теперь Вы получаете возможность при вводе клиента в DBLookupComboBox выбирать наименования банков, а в Customer будут попадать их ID. Также при изменении наименования или реквизитов банка Вам не нужно заботиться об изменении их в таблице клиентов, все идет автоматом. Правда при изменении ID банка нужно позаботиться об изменении из в Customer, но это уже вопрос ссылочной целостности (Referential Integrity) и его решение зависит от движка БД, которым Вы пользуетесь.

Опишите проблему, почему Вы именно так хотите применить Lookup поле, может быть сумеем помочь...


 
Юлия   (2002-11-25 18:55) [3]

Именно так я и делаю, но в выпадающий список заносится почему-то только одно значение - которое соответствует текущей записи Customer, хотя в Banks несколько записей!!! Причем, при движении по таблице Customer значение в DBLookUpComboBox меняется - отображется правильно, но только одно. :(((



 
mike-d ©   (2002-11-25 20:32) [4]

Проверьте, не привязана ли Ваша Banks к какой нибудь таблице (MasterSource и MasterFields). Если да, то таким образом справочники не используются, т.к. мы не сможем получить всех значений справочника.
Если по логике программы Вам необходимо установить связь master-detail к Banks, тогда используйте в качестве справочник SQL запрос из Banks (SELECT * FROM Banks ORDER BY NameBank), чтобы все значения справочника были доступны. А при изменении Banks переоткрывайте запрос.


 
Юлия   (2002-11-25 20:36) [5]

Ой, спасибо, я поняла. Просто в таблице Banks у меня было установлено значение MasterSourсe. Вот он и фильтровал...



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

Текущий архив: 2002.12.12;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.03 c
14-36386
Дремучий
2002-11-21 15:36
2002.12.12
надо....


3-35975
sndanil
2002-11-22 16:50
2002.12.12
Скорость добавления в InterBase


14-36366
iNew
2002-11-21 06:33
2002.12.12
Говорят, что для обучения программированию лучше подходят


8-36299
wowik
2002-08-25 19:16
2002.12.12
Bass.dll


6-36326
Осирис
2002-10-17 13:47
2002.12.12
Примеры к Indy9