Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/55: Рейтинг темы: голосов - 55, средняя оценка - 4.71
0 / 0 / 0
Регистрация: 17.01.2010
Сообщений: 5

Получить в ComboBox колонки (Fields) таблицы

17.01.2010, 15:25. Показов 11410. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Чтоб в элементе отображался DisplayLabel колонки, а программа получала с элемента FieldName.
ПС Срочно помощь нужна, пишу курсовую, завтра сдача
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
17.01.2010, 15:25
Ответы с готовыми решениями:

Как можно получить числовое поле из таблицы при выборе значения в combobox
Здравствуйте, помогите новичку. Я сделал combobox и привязал его к таблице-Access. В таблице есть строковое поле (которое и выводится в...

Колонки в ComboBox
Можно ли в VS настроить ComboBox так, чтобы в выпадающем списке информация была представлена в таблице (7 столбцов и сколько надо строк)?...

Значения колонки БД перенести в ComboBox
Здравствуйте, у меня такая проблема ! У меня БД в аксесе сделана и подключена я хотел бы первую строку бд перенести в комбо бокс для выбора...

8
 Аватар для Splitter
203 / 145 / 16
Регистрация: 13.01.2009
Сообщений: 554
17.01.2010, 15:36
тспользуйте DBLookupComboBox с вкладки DataControls
0
1263 / 706 / 62
Регистрация: 21.12.2009
Сообщений: 2,256
17.01.2010, 16:42
Если действительно необходим ComboBox, то можете воспользоваться процедурой.

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
procedure ComboBoxFill(Source: TDataSet; ComboBox: TComboBox; FieldName: string);
var Stat: boolean;
    ID: TID;
begin
  ComboBox.Items.Clear;
  Stat := Source.Active;
  if not Source.Active then Source.Open;
  Source.First;
  while not Source.Eof do begin
    ID := TID.Create;
    ID.ID := Source.FieldByName('ID').AsInteger;
    ComboBox.AddItem(Source.FieldByName(FieldName).DisplayLabel, ID);
    Source.Next;
  end;
  if not Stat then Source.Close;
  ComboBox.ItemIndex := 0;
end;
Здесь Source- Набор данных, который подлежит отображению,
ComboBox - понятно, что; FieldName - поле, которое заносится в ComboBox
Используется также объект TID
Delphi
1
2
3
  type TID = class
    ID: integer;
  end;
В нем хранится первичный ключ, сохраненной в ComboBox записи. По этому ключу при необходимости Вы легко получите значение необходимого Вам поля.
1
0 / 0 / 0
Регистрация: 17.01.2010
Сообщений: 5
17.01.2010, 19:00  [ТС]
Цитата Сообщение от Splitter Посмотреть сообщение
тспользуйте DBLookupComboBox с вкладки DataControls
Можно поподробнее?
Насколько я понял, DBLookupComboBox выдает значения полей из DataSource, а показывает значения из ListSource. Если я правильно понял, то это не совсем то, о чем я спрашивал.

SAMZ
Но ведь эта программа добавляет в ComboBox ЗНАЧЕНИЯ указанного поля (FieldName: string) из таблицы? Мне ведь нужны НАЗВАНИЯ полей в ComboBox. Прочтите внимательнее мой первый пост.
0
1263 / 706 / 62
Регистрация: 21.12.2009
Сообщений: 2,256
18.01.2010, 06:19
Но ведь эта программа добавляет в ComboBox ЗНАЧЕНИЯ указанного поля (FieldName: string) из таблицы? Мне ведь нужны НАЗВАНИЯ полей в ComboBox. Прочтите внимательнее мой первый пост.
Вы не очень внимательны! В тексте кода, который был Вам предложен есть строка
Code
1
ComboBox.AddItem(Source.FieldByName(FieldName).[B]DisplayLabel[/B], ID);
То есть в ComboBox заносится не содержание поля а DisplayLabe, о чем Вы и просили. Кроме того, в ComboBox одновременно заносится и первичный ключ этой записи (TID.ID). Пользователь находится на некоторой строке ComboBox, то вытащить значение ключа можно следующим образом

TID(ComboBox.Items.Objects[fmStart.ComboBox2.ItemIndex]).ID

Зная значение первичного ключа Вы при необходимости легко (позиционированием таблицы или отдельным запрсом) вытащите всю необходимую Вам инфу, включая
ComboBox.AddItem(Source.FieldByName(Fiel dName).AsString
0
0 / 0 / 0
Регистрация: 17.01.2010
Сообщений: 5
18.01.2010, 19:50  [ТС]
SAMZ
А вы не обратили внимание на то, что у вас заносится один и тот же DisplayLabel (отображаемое название колонки)? То есть во всём листе комбобокса будут одинаковые строки.
0
1263 / 706 / 62
Регистрация: 21.12.2009
Сообщений: 2,256
19.01.2010, 06:14
Понял свою ошибку. Сделайте точно такой же цикл по Columns Grid-а. В TID.ID заносите индекс (порядковый номер) колонки, а в строку ComboBox DisplayLabel. При позиционировании в ComboBox Вы по значению TID.ID найдете FieldName
1
2 / 2 / 0
Регистрация: 26.08.2010
Сообщений: 4
27.02.2011, 21:37
SAMZ,
Спасибо, очень полезный пример!
Только один вопрос,
Pascal
1
ComboBox.Items.Clear;
удалит так же все созданные объекты или здесь будет утечка памяти?
0
1263 / 706 / 62
Регистрация: 21.12.2009
Сообщений: 2,256
28.02.2011, 14:02
Цитата Сообщение от MichaelAdm Посмотреть сообщение
удалит так же все созданные объекты или здесь будет утечка памяти?
Объекты удалит, но утечки не будет.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
28.02.2011, 14:02
Помогаю со студенческими работами здесь

Можно ли сделать в ComboBox две колонки?
Можно ли сделать в ComboBox две колонки? Это надо для того, чтобы в поле первой колонки можно было загрузить данные(например id) с внешнего...

Две колонки в ComboBox/DBCombo/DataCombo
По ходу появился еще два вопроса. 1.Как запихнуть в любой из вышеуказанных контролов две или более колонок таблицы (желательно с...

Как сохранить деление на колонки в выбранной строке ComboBox?
Об задачку зубы уже поломал. Как управлять колонками в List - мы уже разобрались. В принципе нужно только дополнять список...

Нужно чтоб в ComboBox от одной таблицы отображались значения из соответствующего поля другой таблицы
Нужно чтоб в combobox от одной таблицы отображались значения из соответствующего поля другой таблицы. Настроил отображения этих значений...

Как выставить автоматическу ширину по самому длянному содержимому combobox колонки DataGridView ?
У грида свойство AutoSizeColumnsMode = AllCells , но для combobox колонок не срабатывает по содержимому ширину не выставляет автоматом, как...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 30.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru