Вниз
Скачать: CL | DM;

Работа с компонентом DBCombobox   Найти похожие ветки 

← →
ViKS   (2003-09-23 12:17) [0]

Господа! При работе с компонентом DBCombobox не показываются в выпадающем списке все значения. Только если нажать Next в DBNavigator можно посмотреть следующее. Как это изменить, кроме как в программе заполнить его в цикле?


← →
DenK_vrtz ©   (2003-09-23 12:23) [1]

Список(Items) можно заполнить заранее (в разработке), что бывает крайне редко
или заполнить во время выполнения программы, на основе каких-либо данных.
Третьего не дано!

Данные из вне в списке появится не могут!


← →
mfender ©   (2003-09-23 12:30) [2]


> Как это изменить, кроме как в программе заполнить его в
> цикле?


Никак. Только в цикле:

Table1.First;
while not Table1.Eof do
begin
ComboBox1.Items.Add(tabOpsNF.AsString);
Table1.Next;
end;


← →
kaif ©   (2003-09-23 12:33) [3]

На самом деле это глупая вещь. В прежних версиях Дельфи (D3) список нормально заполнялся. В компонентах TRxDBLookupComboBox тоже нормально заполняется. К сожалению, теперь в Дельфи приходится делать несколько Fetch прежде, чем список заполнится. Хотя может у разработчиков были на то свои причины (без нужды не считывать набор)...


← →
VAleksey ©   (2003-09-23 12:38) [4]


> kaif © (23.09.03 12:33)

Что то я не понял высказывания.
В TDBComboBox, если мне память не изменяет, список сам никогда не заполнялся.


← →
ViKS   (2003-09-23 12:49) [5]

Нет, я заполняю его поле datasource:=datacource1, datasource1 содержит данные из таблицы.
А потом все данные, например, название города, не показываются все в списке. Я бы хотела видеть их все в выпадающем списке, чтобы можно было выбирать и например по выбранному значению фильтровать данные из другой таблицы


← →
mfender ©   (2003-09-23 12:53) [6]


> Нет, я заполняю его поле datasource:=datacource1, datasource1
> содержит данные из таблицы.
> А потом все данные, например, название города, не показываются
> все в списке. Я бы хотела видеть их все в выпадающем списке,
> чтобы можно было выбирать и например по выбранному значению
> фильтровать данные из другой таблицы


Так в чем проблема-то?


← →
DenK_vrtz ©   (2003-09-23 13:13) [7]

Может разговор надо вести не DBCombobox, а lookup-поля или компонент DBLookupComboBox?

Хде наши телепаты? :-)


← →
ViKS   (2003-09-23 14:35) [8]

С DBLookupComboBox я не понимаю как работать? Что указывать в datasource, а что в Listsource?


← →
Mike Kouzmine ©   (2003-09-23 14:38) [9]

Дата куда лист откуда


← →
mfender ©   (2003-09-23 14:42) [10]


> ViKS (23.09.03 14:35) [8]
> С DBLookupComboBox я не понимаю как работать? Что указывать
> в datasource, а что в Listsource?


Ничего в ListSource указывать не надо. Сделай lookup поле и в Field своего DBLookupCombo указывай его.


← →
DenK_vrtz ©   (2003-09-23 14:48) [11]

ViKS, попробуй и получится, а если не получится, попробуешь опять!


← →
ViKS   (2003-09-23 14:53) [12]

Попробовала опять!! В списке теперь все данные из таблицы города отображаются, а как фильтровать по выбранному из этого списка значению данные из другой таблицы,


← →
DenK_vrtz ©   (2003-09-23 15:01) [13]

а в чем, собственно, проблема?


← →
ViKS   (2003-09-23 15:10) [14]

Нажимаю на списке, список выпадает, а сохраняется только то первое значение, другие недоступны, только если next в DBNavigator нажму, только тогда что-то меняется, а вторая таблица не реагирует на выбор в списке!!


← →
kaif ©   (2003-09-23 15:21) [15]

Давайте по порядку.
1. Какой компонент юзается? (я сразу не понял)
DbComboBox или DBLookupComboBox?
2. Что значит "сохраняется только первое значение"?


← →
DenK_vrtz ©   (2003-09-23 15:24) [16]

1.если список выпадает, то как могут быть недоступны элементы списка?
2.После выбора элемента списка обновленные данные нужно сохранить
. Типа, сделать post.
3.А как вторая таблица будет реагировать на выбор из списка? Думаешь она сама ффсе знает или догадывается? Обработчик писать надо!

А вообще не очень понятен смысл задачи!


← →
ViKS   (2003-09-23 15:41) [17]

Мне нужно сделать так:
есть один список -например DBLookUpcombo, в нем есть названия городов (из одной таблицы), а еще есть на этой же форме DBGrid, в которой отображаются другие данные. Как мне сделать так, чтобы при выборе значений из списка, фильтровались значения в этом DBgrid?


← →
kaif ©   (2003-09-23 15:49) [18]

Если таблица на FoxPro, то лучше сделать так:
В событие OnChange или CloseUp комбобокса вписать что-то вроде:

begin
Table1.Filtered := False;
Table1.Filtered := True;
end;

или еще лучше

begin
Table1.Refresh;
end;

А в обработчик компонента Table1 OnFilterRecord вписать что-то вроде:

Accept := DataSet.FieldByName("такое-то").AsInteger :=
DBLookupcomboBox1.KeyValue;


← →
kaif ©   (2003-09-23 15:51) [19]

В догонку:
В гриде должна отображаться Table1, а вот DBLookupComboBox должен брать ListSource из другого компонента (Table2).


← →
Vlad ©   (2003-09-23 15:55) [20]

А еще лучше TTable выкинуть в помойку и пользоваться TQuery. Тогда проблемы с фильтрацией отпадут сами собой.


← →
kaif ©   (2003-09-23 16:01) [21]

Vlad © (23.09.03 15:55) [20]
А еще лучше TTable выкинуть в помойку и пользоваться TQuery. Тогда проблемы с фильтрацией отпадут сами собой.

Для таблиц FoxPro фильтр может работать намного быстрее, чем TQuery. Особенно, если в таблице сотни тысяч записей. Ты был бы безусловно прав, если бы речь шла о сервере баз данных (IB или MSSQL). А для FoxPro SQL-запрос будет эмулироваться BDE и в конце концов произойдет то же самое (сканирование набора). Хотя если есть индекс по этому полю, то возможно, SQL запрос и не будет тормозить и тогда ты прав.


← →
ViKS   (2003-09-23 16:05) [22]

Тогда подскажите как это же состряпать с помощью Query, но чтоб еще и со списком выбора. А таблицы у меня dbase!



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.5 MB
Время: 0.014 c
6-40536
Logan
2003-08-15 03:24
2003.10.13
Outlook Express


1-40405
SPIRIT
2003-10-01 00:49
2003.10.13
Всей проге делаем визибле=фолс


3-40257
GS
2003-09-23 12:10
2003.10.13
Подскажите, как бороться РАЗРАСТАЕТСЯ база Access2000


14-40617
Дмитрий
2003-09-24 14:35
2003.10.13
Винт-чудесник.


4-40733
likeanangel
2003-08-08 11:54
2003.10.13
Вывод наклонного битмэпа




   Наверх