|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
||||
|
||||
Как заполнить ComboBox данными из TADOTable программно в делфи - Delphi БД/Delphi 6-7
У меня в программе список в таблице может пополняться.
ComboBox я использую для редактирования заказов. И в нем должен быть список вида заказов (который я пополнять буду периодически как мне это сделать? не знаю что лучше взять ComboBox , DBComboBox или DBLookupComboBox . Просто прописать в инспекторе в св-ве Items не могу, т.к. список будет пополняться пробовала так но не работает [DELPHI]form21.suiDBLookupComboBox1.KeyValue := QueryPoliMes.DataSetField.Fields[4].Value;[/DELPHI] вобщем в ComboBox или DBComboBox или DBLookupComboBox у меня должен быть список из таблицы DataModule3.DataSource1 а при редактировании заказа у меня еще и значение должно ему присвоиться такое как в запросе QueryPoliMes соответствующее полю FieldByName('ВидПолиграфии') |
#2
|
||||
|
||||
Надо сделать отдельную таблицу и работать с ней через DBLookupComboBox. Прописываете для DBLookupComboBox параметры: ListSource (это таблица, откуда будут браться справочные данные, т.е. тот самый "резиновый" список), ListField (поле из справочной таблицы, которое должно отображаться в DBLookupComboBox), KeyField (ключевое поле - первичный ключ с автоинкрементом в справочной таблице), DataSource - источник данных для главной таблицы, и DataField (Integer-поле в главной таблице, в которое будет помещаться код ссылочной записи).
А по частностям... Конструкцию вида "Fields[4]" лучше не используйте, т.к. поле можно случайно перетащить, и функционал нарушится. Точнее и нагляднее будет использование "FieldByName", что-то вроде этого: Код:
naimen_OLD := fq.FieldByName('Naimen').AsString; Последний раз редактировалось Guaho, 12.03.2018 в 00:44. |
#3
|
||||
|
||||
Я знаю об этом, так и делала для отображения списка. Но сейчас у меня не в том проблема. мне нужно отредактировать данные. И часть записей должно выводиться из запроса в DbLookupCombobox, DbCombobox либо просто в Combobox. Пока я это сделала через DbCombobox и просто вручную ввела значения в Items. но эти списки у меня могут пополняться в программе на отдельных формах, и при редактировании новых пунктов уже не будет в итемсах(. мне это нужно сделать программно.
И еще пр редактировании мне нужно чтобы была возможность менять значение комбобокса |
#4
|
||||
|
||||
Цитата:
Всегда пишите код так, будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете. |
#5
|
||||
|
||||
Цитата:
Всегда пишите код так, будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете. |
#6
|
||||
|
||||
Цитата:
Всегда пишите код так, будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете. |
#7
|
||||
|
||||
Цитата:
Я, к примеру, делаю так. В главной таблице "Контрагенты" у меня есть поле "Код страны" (Kod_strany). Если мне нужно, например, указать в главной таблице страну, откуда родом контрагент, я должен в главной таблице, в поле "Kod_strany" указать код (уникальное автоинкрементное значение, первичный ключ; обычно во всех таблицах я его обозначаю словом "Kod") из таблицы "Страны". Это делается либо выбором существующей страны из списка DBLookupCombobox, либо вызовом окна "Страны", добавлением туда отсутствующей страны и возвратом в главное окно с запоминанием кода ссылочной записи в поле "Kod_strany". Это самое запоминание должен делать Ваш код. В случае с выбором существующего значения из списка это делается автоматически, а в случае с отдельным окном надо прописывать код. Последний раз редактировалось Guaho, 16.03.2018 в 19:31. |