Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.10.13;
Скачать: 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 вся ветка

Текущий архив: 2003.10.13;
Скачать: CL | DM;

Наверх




Память: 0.52 MB
Время: 0.016 c
3-40311
Максим
2003-09-22 11:50
2003.10.13
DBLookupComboboxEh


3-40312
Denizzz
2003-09-22 11:17
2003.10.13
Доступ к базе данных на сетевом ресурсе


14-40616
Pindos
2003-09-24 20:59
2003.10.13
(Сотовые телефоны)Набор мелодий в ручную


1-40513
Hatawa
2003-10-02 07:37
2003.10.13
Как распараллелить два процесса?


1-40383
lovres
2003-10-01 10:53
2003.10.13
Подскажите простой бесплатный компонент для экспорта в Excel .