Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Работа с компонентом DBCombobox [D7, dBase, FoxPro]


Страницы:   1 2

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 прежде, чем список заполнится. Хотя может у разработчиков были на то свои причины (без нужды не считывать набор)...


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо