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

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

DBLookupComboBox [D5, MS Access]


Страницы:   1 2

Silla ©   (2003-07-07 15:09:00) 

Привет Мастерам!

У меня есть две таблицы
TblMaterialType
TblMaterial

Связаны они один ко многим
TblMaterialType --> TblMaterial

При помощи TDBLookupComboBox (список)
выполняется навигация

При открытии таблиц у DBLookupComboBox"a
ничего не отображается

Ворос: Как сделать так, чтобы он не был пустым?

PS. DataField & DataSource - не заполняю.


Fuelfire   (2003-07-08 17:43:00) [1]

Поле соответствия имитирует реальное поле, выполняя подстановку значения из другой таблицы, соответствующее имеющемуся ключевому значению. Допустим мы связываем Таблицу 1 с Таблицей 2 по ключевому полю.
Создание.
1. Добавь с помощью редактора полей в конец Таблицы 1 новое поле (в конец желательно, чтобы не влиять на порядок полей, доступ к которым осуществляется по индексам)...
2. Введи имя поля, тип и укажи - Lockup...
3. В определении поля соответствия в списке KeyFields укажи поле, связывающее таблицы между собой. В списке DataSet выбери Таблицу 2. В списке Lockup Keys укажи поле ID Таблицы 2, связанное с полем Таблицы 1. В Result Field укажи поле Таблицы 2, подставляемое вместо ида Таблицы 1...

Отображение.
1. Добавляешь TDBLockupListBox
2. DataSource должно указывать на источник исходных данных, то есть на соурс Таблицы 1
3. DataField должно указывать на поле Id, по которому выполняется связь с Таблицей 2.
4. ListSource должно указывать на источник данных, откуда извлекаются значения для заполнения списка..
5. KeyField определяет ключевое поле этого источника, привязываемое к полю, указанному в св-ве DataField
6. ListField указывает поле, из которого будут браться значения для списка...

По-моему, теперь проблем у тебя возникнуть не должно...


Silla   (2003-07-08 17:11:00) [2]

Поначалу вопрос был про люкап
я и хотел услышать про него
а не как строить свою задачу
не могу же я тебе написать все тз
иначе форум превратится в какое-нибудь СП


DenK_vrtz   (2003-07-08 16:12:00) [3]

Начинал с того, что было две таблицы. Теперь их оказывается намного больше.
Я не вижу проблемы! Опиши полностью задачу, а то гадаем на кофейной гуще!!!
А лучше попробуй сам сделать, для самоудовлетворения :-)


Silla   (2003-07-08 16:04:00) [4]

На мой взгляд
выпадающий список не помешал бы
И все на одной форме вмещается


DenK_vrtz   (2003-07-08 15:27:00) [5]

А что мешает?


Silla   (2003-07-08 15:24:00) [6]

Поначалу так и сделал
Есть необходимость
разбить по изготовителям и по группам


DenK_vrtz   (2003-07-08 11:30:00) [7]

Silla © (08.07.03 11:21), если таблицы связаны, то два грида первый - тип, второй - материалы! Идешь по первому гриду, а во втором видишь детализацию!


Silla   (2003-07-08 11:21:00) [8]

>DenK_vrtz
По поводу структуры таблиц - все в порядке
Необходимо как можно больше разгрузить пользователя
Помимо типов существуют свойства, виды и др.
Выбрал тип
Получил список видов,
Выбрал вид
Получил список материалов по свойствам
Выше писал, что
таблица материалов имеет мастерсоурс = таблице типов

>ЮЮ
>только выбор записи в ListSource вовсе не означает, что эта >запись станет текущей в ListSource.DataSet
Проверял - курсор переходит на текущую строку


ЮЮ   (2003-07-08 09:20:00) [9]

>Тогда это не для DBLookupComboBox.
Почитайте об этом компоненте подробней - у него другие задачи.

Если у него не указывать DataSource и DataField, то вполне можно использовать для выбора записи, только выбор записи в ListSource вовсе не означает, что эта запись станет текущей в ListSource.DataSet


интересующийся   (2003-07-08 09:06:00) [10]

>Silla © (07.07.03 16:19)
>Необходимо сделать выпадающий список по которому
>я выбираю тип
>а в гриде отображается материал который относится только
>к этому типу
>Таблица материалов имеет мастерсоурс = таблице типов
Как я понял Вы хотите сделать фильтрацию в гриде
по значению типа материала, выбранного из списка.
Тогда это не для DBLookupComboBox.
Почитайте об этом компоненте подробней - у него другие задачи.


DenK_vrtz   (2003-07-08 08:16:00) [11]

Silla © (07.07.03 17:06), разберись, как мне кажется со структурой или с тем, что хочешь получить.
Вот смотри:
>>я выбираю тип

это обыкновенный lookup поле (делается в дизайнере) к таблице типов, здесь все ОК

>>а в гриде отображается материал который относится только
>>к этому типу

а по какому условию ты будешь отбирать материал, когда таблица материалов не имее ни одной записи? Список материалов изначально будет пустым!
По моему, в твоем случае на материал ни какого списка формировать не надо, а просто необходимо ввести название материала после ввода его типа. Или, как говорил выше, пересматривай структуру.



ЮЮ   (2003-07-08 03:30:00) [12]

>При открытии таблиц у DBLookupComboBox"a ничего не отображается

Отображается тот факт, что DBLookupComboBox.KeyValue = NULL. Установи нужное значение и будет отображаться что нужно, например, значение ключевого поля активной на данный момент (первой, если сразу после открытия) записи из ListSource:

DBLookupComboBox.KeyValue :=
DBLookupComboBox.ListSource.DataSet.FieldByName(DBLookupComboBox.KeyField).Value;


Silla   (2003-07-07 17:06:00) [13]

Таблица типов
Id - Идентификатор
Name - Наименование

Таблица материалов
Id - Идентификатор
IdTypeMaterial - внешний ключ из Таблицы типов
Name - Наименование
IdMaterialUnit - внешний ключ из таблицы Единиц измерений


DenK_vrtz   (2003-07-07 16:33:00) [14]

Может структуру таблиц покажешь?


Silla   (2003-07-07 16:19:00) [15]

Может я неправильно выбрал компонент
Необходимо сделать выпадающий список по которому
я выбираю тип
а в гриде отображается материал который относится только
к этому типу

Таблица материалов имеет мастерсоурс = таблице типов


DenK_vrtz   (2003-07-07 16:01:00) [16]

Val © (07.07.03 15:57), так почему же он DataField & DataSource не заполняет?
Вопрос(Ответ) про look up поля, чуть ниже в форуме!


Val   (2003-07-07 15:57:00) [17]

>DenK_vrtz © (07.07.03 15:52)
автор хочет видеть текущее значение, как я понял, и иметь возможность выбрать другие.


DenK_vrtz   (2003-07-07 15:52:00) [18]

Тогда я не понял!?

>>Ворос: Как сделать так, чтобы он не был пустым?

и тут же

>>Конено заполняю, получается выпадающий список

хде логика?


Silla   (2003-07-07 15:50:00) [19]

Конено заполняю, получается выпадающий список


DenK_vrtz   (2003-07-07 15:22:00) [20]

да и KeyField заодно!


Страницы:   1 2

Наверх

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