Форум: "Базы";
Текущий архив: 2003.10.13;
Скачать: [xml.tar.bz2];
ВнизРабота с компонентом 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;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.011 c