Текущий архив: 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.5 MB
Время: 0.008 c