![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Работа с компонентом DBCombobox [D7, dBase, FoxPro]
ViKS © (2003-09-23 12:17:00)
Господа! При работе с компонентом DBCombobox не показываются в выпадающем списке все значения. Только если нажать Next в DBNavigator можно посмотреть следующее. Как это изменить, кроме как в программе заполнить его в цикле?
ViKS (2003-09-23 16:05:00) [1]
Тогда подскажите как это же состряпать с помощью Query, но чтоб еще и со списком выбора. А таблицы у меня dbase!
kaif (2003-09-23 16:01:00) [2]
Vlad © (23.09.03 15:55) [20]
А еще лучше TTable выкинуть в помойку и пользоваться TQuery. Тогда проблемы с фильтрацией отпадут сами собой.
Для таблиц FoxPro фильтр может работать намного быстрее, чем TQuery. Особенно, если в таблице сотни тысяч записей. Ты был бы безусловно прав, если бы речь шла о сервере баз данных (IB или MSSQL). А для FoxPro SQL-запрос будет эмулироваться BDE и в конце концов произойдет то же самое (сканирование набора). Хотя если есть индекс по этому полю, то возможно, SQL запрос и не будет тормозить и тогда ты прав.
Vlad (2003-09-23 15:55:00) [3]
А еще лучше TTable выкинуть в помойку и пользоваться TQuery. Тогда проблемы с фильтрацией отпадут сами собой.
kaif (2003-09-23 15:51:00) [4]
В догонку:
В гриде должна отображаться Table1, а вот DBLookupComboBox должен брать ListSource из другогокомпонента (Table2).
kaif (2003-09-23 15:49:00) [5]
Если таблица на FoxPro, то лучше сделать так:
В событие OnChange или CloseUp комбобокса вписать что-то вроде:
begin
Table1.Filtered := False;
Table1.Filtered := True;
end;
или еще лучше
begin
Table1.Refresh;
end;
А в обработчик компонента Table1 OnFilterRecord вписать что-то вроде:
Accept := DataSet.FieldByName("такое-то").AsInteger :=
DBLookupcomboBox1.KeyValue;
ViKS (2003-09-23 15:41:00) [6]
Мне нужно сделать так:
есть один список -например DBLookUpcombo, в нем есть названия городов (из одной таблицы), а еще есть на этой же форме DBGrid, в которой отображаются другие данные. Как мне сделать так, чтобы при выборе значений из списка, фильтровались значения в этом DBgrid?
DenK_vrtz (2003-09-23 15:24:00) [7]
1.если список выпадает, то как могут быть недоступны элементы списка?
2.После выбора элемента списка обновленные данные нужно сохранить
. Типа, сделать post.
3.А как вторая таблица будет реагировать на выбор из списка? Думаешь она сама ффсе знает или догадывается? Обработчик писать надо!
А вообще не очень понятен смысл задачи!
kaif (2003-09-23 15:21:00) [8]
Давайте по порядку.
1. Какой компонент юзается? (я сразу не понял)
DbComboBox или DBLookupComboBox?
2. Что значит "сохраняется только первое значение"?
ViKS (2003-09-23 15:10:00) [9]
Нажимаю на списке, список выпадает, а сохраняется только то первое значение, другие недоступны, только если next в DBNavigator нажму, только тогда что-то меняется, а вторая таблица не реагирует на выбор в списке!!
DenK_vrtz (2003-09-23 15:01:00) [10]
а в чем, собственно, проблема?
ViKS (2003-09-23 14:53:00) [11]
Попробовала опять!! В списке теперь все данные из таблицы города отображаются, а как фильтровать по выбранному из этого списка значению данные из другой таблицы,
DenK_vrtz (2003-09-23 14:48:00) [12]
ViKS, попробуй и получится, а если не получится, попробуешь опять!
mfender (2003-09-23 14:42:00) [13]
> ViKS (23.09.03 14:35) [8]
> С DBLookupComboBox я не понимаю как работать? Что указывать
> в datasource, а что в Listsource?
Ничего в ListSource указывать не надо. Сделай lookup поле и в Field своего DBLookupCombo указывай его.
Mike Kouzmine (2003-09-23 14:38:00) [14]
Дата куда лист откуда
ViKS (2003-09-23 14:35:00) [15]
С DBLookupComboBox я не понимаю как работать? Что указывать в datasource, а что в Listsource?
DenK_vrtz (2003-09-23 13:13:00) [16]
Может разговор надо вести не DBCombobox, а lookup-поля или компонент DBLookupComboBox?
Хде наши телепаты? :-)
mfender (2003-09-23 12:53:00) [17]
> Нет, я заполняю его поле datasource:=datacource1, datasource1
> содержит данные из таблицы.
> А потом все данные, например, название города, не показываются
> все в списке. Я бы хотела видеть их все в выпадающем списке,
> чтобы можно было выбирать и например по выбранному значению
> фильтровать данные из другой таблицы
Так в чем проблема-то?
ViKS (2003-09-23 12:49:00) [18]
Нет, я заполняю его поле datasource:=datacource1, datasource1 содержит данные из таблицы.
А потом все данные, например, название города, не показываются все в списке. Я бы хотела видеть их все в выпадающем списке, чтобы можно было выбирать и например по выбранному значению фильтровать данные из другой таблицы
VAleksey (2003-09-23 12:38:00) [19]
> kaif © (23.09.03 12:33)
Что то я не понял высказывания.
В TDBComboBox, если мне память не изменяет, список сам никогда не заполнялся.
kaif (2003-09-23 12:33:00) [20]
На самом деле это глупая вещь. В прежних версиях Дельфи (D3) список нормально заполнялся. В компонентах TRxDBLookupComboBox тоже нормально заполняется. К сожалению, теперь в Дельфи приходится делать несколько Fetch прежде, чем список заполнится. Хотя может у разработчиков были на то свои причины (без нужды не считывать набор)...