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

Можно ли вручную вводить данные в DBLookupComboBox?

16.04.2012, 09:06. Показов 4017. Ответов 24
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем доброго времени суток!
Ситуация следующая: есть ДБгрид1 и ДБгрид2. В одном из полей ДБгрид2 выпадает раскрывающийся список с данными одного из полей ДБгрид1
Вопрос такого плана: можно ли вручную вводить данные, а в Комбобоксе данные фильтровались? О_о (нужно это т.к. БД будет с огроооомным количеством записей и прокручивать, искать нужное будет совсем неудобно)

Добавлено через 23 минуты
Пробовала использовать DBcombobox, но список не раскрывается
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
16.04.2012, 09:06
Ответы с готовыми решениями:

Можно ли "запомнить" пароль доступа к БД из макроса, чтобы не вводить каждый раз вручную
День добрый, господа программеры и сисадмины. Вопрос такой. Есть макрос, созданный для забирания (обновления) данных из БД и уменьшения...

Как можно занести данные вручную в массив типа FeautreId.
Есть несколько вопросов, соответственно название темы и еще почему если не массив создаем, то нужно делать конструкцию ...

Можно ли вводить данные в Textbox как в поле с маской
Доброй ночи! Имеется форма, на ней Textbox. Как сделать, чтобы при вводе данных на самой форме данные отображались в формате...

24
70 / 70 / 13
Регистрация: 21.12.2011
Сообщений: 188
16.04.2012, 09:10
Цитата Сообщение от МАрковка Посмотреть сообщение
Можно ли вручную вводить данные в DBLookupComboBox?
Нет. Он лишь отображает данные.
1
0 / 0 / 0
Регистрация: 06.03.2012
Сообщений: 35
16.04.2012, 09:11  [ТС]
вот код для присвоения списка Комбобоксу...
Что не так? Почему список не раскрывается? Подскажите, пожаааааааалуйста
Delphi
1
2
3
4
5
6
7
8
9
10
procedure TForm1.DBComboBox1DropDown(Sender: TObject);
 var I: integer;
begin
 for I:=0 to Pred(DBGrid1.Columns.Count) do
 if DBGrid1.Columns[I].Field.FieldName = DBCombobox1.DataField then begin
     { Присвоение списка PickList списку строк ComboBox'a }
   DBCombobox1.Items.Assign(DBGrid1.Columns[I].PickList);
   Break;
 end;
end;
0
70 / 70 / 13
Регистрация: 21.12.2011
Сообщений: 188
16.04.2012, 09:35
Наверное что-то с if не так. Проверьте условие сравнения. У меня, например, такой код работает
Delphi
1
dbCb1.Items.Assign(DBGrid1.Columns[0].PickList);
1
0 / 0 / 0
Регистрация: 06.03.2012
Сообщений: 35
16.04.2012, 13:56  [ТС]
просто такой код без Иф
Delphi
1
  DBCombobox1.Items.Assign(DBGrid2.Columns[0].PickList);
я пробовала, но все равно списка нет
вот код полностью
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
procedure TForm1.DBGrid2DrawColumnCell(Sender: TObject; const Rect: TRect;
  DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
  if (gdFocused in State) then
    if (Column.Field.FieldName = dbcombobox1.DataField) then begin
      { Вместо стандартного InplaceEditor'а показываем ComboBox }
     DBCombobox1.Left := Rect.Left + DBGrid2.Left;
     DBCombobox1.Top := Rect.Top + DBGrid2.top;
     DBCombobox1.Width := Rect.Right - Rect.Left + 2;
     DBCombobox1.Visible := True;
   end;
 
end;
 
procedure TForm1.DBGrid2ColExit(Sender: TObject);
begin
 if DBGrid2.SelectedField.FieldName = DBCombobox1.DataField then
    DBCombobox1.Visible := false;
 
end;
 
procedure TForm1.DBGrid2KeyPress(Sender: TObject; var Key: Char);
begin
{ Передаем все нажатия клавиш в InplaceEditor'е созданному ComboBox'у }
  if (Key <> chr(9)) then
    if (DBGrid2.SelectedField.FieldName = DBCombobox1.DataField) then begin
      DBCombobox1.SetFocus;
      SendMessage(DBCombobox1.Handle, WM_CHAR, word(Key), 0);
    end;
 
end;
 
procedure TForm1.DBComboBox1DropDown(Sender: TObject);
// var I: integer;
begin
// for I:=0 to Pred(DBGrid2.Columns.Count) do
// if DBGrid2.Columns[I].Field.FieldName = DBCombobox1.DataField then begin
      { Присвоение списка PickList списку строк ComboBox'a }
   DBCombobox1.Items.Assign(DBGrid2.Columns[0].PickList);
//   Break;
// end;
end;
0
70 / 70 / 13
Регистрация: 21.12.2011
Сообщений: 188
16.04.2012, 14:00
Чтобы там что-то было нужно чтобы это что-то было в picklist. Может я путаю, но я не вижу чтобы он у Вас где-то заполнялся. Его можно заполнить и вручную. Смотря какая у Вас задача.
0
0 / 0 / 0
Регистрация: 06.03.2012
Сообщений: 35
16.04.2012, 14:07  [ТС]
В идеале он должен заполняться данными из поля ДБгрид1 (а отображается в поле ДБгрид2)

Добавлено через 2 минуты
вручную заполнять бесполезно, т.к. ДБгрид1 постоянно обновляется и записей будет оооочень много
0
70 / 70 / 13
Регистрация: 21.12.2011
Сообщений: 188
16.04.2012, 14:27
Данные из 1 столбца DBGrid попадают в в DBComboBox
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
procedure TfrmDicPersonnel.btn1Click(Sender: TObject);
var
  i: integer;
begin
  i := 0;
  while i < DBGrid1.DataSource.DataSet.RecordCount do
  begin
  DBGrid1.Columns[0].PickList.Add(DBGrid1.Fields[0].AsVariant);
  inc(i);
  end;
  DBComboBox1.Items.Assign(DBGrid1.Columns[0].PickList);
end;
1
0 / 0 / 0
Регистрация: 06.03.2012
Сообщений: 35
16.04.2012, 14:51  [ТС]
Цитата Сообщение от pobedinsky Посмотреть сообщение
Данные из 1 столбца DBGrid попадают в в DBComboBox
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
procedure TfrmDicPersonnel.btn1Click(Sender: TObject);
var
  i: integer;
begin
  i := 0;
  while i < DBGrid1.DataSource.DataSet.RecordCount do
  begin
  DBGrid1.Columns[0].PickList.Add(DBGrid1.Fields[0].AsVariant);
  inc(i);
  end;
  DBComboBox1.Items.Assign(DBGrid1.Columns[0].PickList);
end;
а для тех кто совсем "в танке" что это за процедурка? О_о
0
70 / 70 / 13
Регистрация: 21.12.2011
Сообщений: 188
16.04.2012, 14:56
Нажатие на кнопку. Но вешайте ее у куда угодно.
0
0 / 0 / 0
Регистрация: 06.03.2012
Сообщений: 35
17.04.2012, 11:41  [ТС]
Ругается
Undeclared identifier DataSource1
Expected but identifier Dataset found
0
70 / 70 / 13
Регистрация: 21.12.2011
Сообщений: 188
17.04.2012, 11:47
DataSource1 это имя компонента. У Вас видимо по-другому называется.
0
0 / 0 / 0
Регистрация: 06.03.2012
Сообщений: 35
17.04.2012, 12:15  [ТС]
так и называется
0
70 / 70 / 13
Регистрация: 21.12.2011
Сообщений: 188
17.04.2012, 12:19
Там же DataSource идет как свойства DBGtrid. А Вы про DataSource1 пишете.
1
0 / 0 / 0
Регистрация: 06.03.2012
Сообщений: 35
17.04.2012, 12:34  [ТС]
Теперь ошибок нет Но... список выпадает с повторениями в количестве равном записей в БД. И еще он попадает в список только после нажатия БД откуда берутся данные.
0
70 / 70 / 13
Регистрация: 21.12.2011
Сообщений: 188
17.04.2012, 12:41
Скиньте проект, если небольшой. И на какой форме что сделать нужно
0
0 / 0 / 0
Регистрация: 06.03.2012
Сообщений: 35
17.04.2012, 13:16  [ТС]
Для наглядности принтскрины))))
Миниатюры
Можно ли вручную вводить данные в DBLookupComboBox?   Можно ли вручную вводить данные в DBLookupComboBox?  
0
70 / 70 / 13
Регистрация: 21.12.2011
Сообщений: 188
17.04.2012, 13:45
Ну оно берет все записи. Значит Вам нужно sql distinct использовать. Выбрать все уникальные записи и потом на их основании заполнять picklist.
0
0 / 0 / 0
Регистрация: 06.03.2012
Сообщений: 35
17.04.2012, 13:56  [ТС]
Цитата Сообщение от pobedinsky Посмотреть сообщение
Ну оно берет все записи. Значит Вам нужно sql distinct использовать. Выбрать все уникальные записи и потом на их основании заполнять picklist.
а что это? и чем его "едят"?
0
70 / 70 / 13
Регистрация: 21.12.2011
Сообщений: 188
17.04.2012, 14:08
это SQL
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
17.04.2012, 14:08
Помогаю со студенческими работами здесь

Программа, с помощью которой можно вводить данные о жильцах а также реализовывать следующие функции:
Дан массив структурного типа где содержится следующая информация фамилия имя отчество дом улица квартира Написать программу с помощью...

Пирамидальная сортировка. Вводить исходный массив вручную
Всем привет. Есть такая пирамидальная сортировка #include &lt;iostream&gt; #include &lt;conio.h&gt; using namespace std; void iswap(int...

Изменить код таким образом, чтобы данные цифры можно было вводить в процессе запуска программы
Есть программа. Необходимо изменить код таким образом, чтобы данные цифры можно было вводить в процессе запуска программы static void...

Как сделать так, что бы можно было вводить данные в форму и давал вывод в той же форме?
вот сам код! import javax.swing.*; import java.awt.*; import java.util.ArrayList; import java.util.Random; import...

Подсчитать количество гласных латинских букв в строке. Строку вводить вручную
Подсчитать количество гласных латинских букв в строке. Строку вводить вручную.


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru