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

Вниз

DBLookupComboBox   Найти похожие ветки 

 
Silla ©   (2003-07-07 15:09) [0]

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

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

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

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

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

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

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


 
DenK_vrtz ©   (2003-07-07 15:16) [1]

а ListSource и ListField?


 
DenK_vrtz ©   (2003-07-07 15:22) [2]

да и KeyField заодно!


 
Silla ©   (2003-07-07 15:50) [3]

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


 
DenK_vrtz ©   (2003-07-07 15:52) [4]

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

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

и тут же

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

хде логика?



 
Val ©   (2003-07-07 15:57) [5]

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


 
DenK_vrtz ©   (2003-07-07 16:01) [6]

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


 
Silla ©   (2003-07-07 16:19) [7]

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

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


 
DenK_vrtz ©   (2003-07-07 16:33) [8]

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


 
Silla ©   (2003-07-07 17:06) [9]

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

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


 
ЮЮ ©   (2003-07-08 03:30) [10]

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

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

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


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

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

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

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

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




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

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


 
ЮЮ ©   (2003-07-08 09:20) [13]

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

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



 
Silla ©   (2003-07-08 11:21) [14]

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

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


 
DenK_vrtz ©   (2003-07-08 11:30) [15]

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


 
Silla ©   (2003-07-08 15:24) [16]

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


 
DenK_vrtz ©   (2003-07-08 15:27) [17]

А что мешает?


 
Silla ©   (2003-07-08 16:04) [18]

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


 
DenK_vrtz ©   (2003-07-08 16:12) [19]

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


 
Silla ©   (2003-07-08 17:11) [20]

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


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

Поле соответствия имитирует реальное поле, выполняя подстановку значения из другой таблицы, соответствующее имеющемуся ключевому значению. Допустим мы связываем Таблицу 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 указывает поле, из которого будут браться значения для списка...

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



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

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

Наверх




Память: 0.52 MB
Время: 0.018 c
1-100782
Interested
2003-07-16 17:36
2003.07.31
Как загрузить иконку из ресурса exe файла, зная её ID?


14-100951
antonyan
2003-07-15 14:23
2003.07.31
Контрольная сумма файла


3-100628
tamara
2003-07-09 18:02
2003.07.31
Trigger


3-100568
62mkv
2003-07-08 13:12
2003.07.31
BDE 5.2


1-100748
Z_man7777
2003-07-16 09:09
2003.07.31
Помогите с QuickReport-ом