Главная страница
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.028 c
1-36206
Sergy
2002-12-04 12:41
2002.12.12
Как изменить шрифт только у одного узла TTreeView?


1-36130
Ник
2002-12-03 14:35
2002.12.12
Динамические массивы


14-36331
F1
2002-11-20 16:16
2002.12.12
Ну очень сложный вопрос!!!


14-36384
Вероника
2002-11-20 13:34
2002.12.12
электронные учебники по Делфи


3-36056
Григорий Ситнин
2002-11-22 15:18
2002.12.12
Защита файлов базы Interbase