Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2003.07.31;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.5 MB
Время: 0.009 c
8-100839
[Baradoo]
2003-03-18 22:48
2003.07.31
Растягивание Wave на определенную длину...


3-100559
OlegL
2003-07-07 17:19
2003.07.31
DB file


4-101036
Asteroid
2003-05-29 02:56
2003.07.31
WM_MEASUREITEM глючит?


3-100550
adogg
2003-07-11 12:31
2003.07.31
MS Access с паролем


1-100814
DimaS
2003-07-17 13:49
2003.07.31
Как отследить изменения в каталоге?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский