Форум: "Базы";
Текущий архив: 2004.07.18;
Скачать: [xml.tar.bz2];
ВнизОдин ListSource на два DBLookupComboBox Найти похожие ветки
← →
Сергей Непочатов (2004-06-18 17:31) [0]На форме есть два компонента DBLookupComboBoxEh, в которых отображаются два поля из одной таблицы.
ListSource, ListField, KeyField у них один.
Надо, чтобы в выпадающем списке были разные наборы данных.
По событию OnDropDown я устанавливаю фильтр в датасете, который ListSource, а по событию OnCloseUp его отменяю. Все хорошо, только после выбора в одном комбобоксе другой пуст. Как это обойти?
← →
Johnmen © (2004-06-18 17:33) [1]Вкл. кеширование лукапного поля.
← →
Сергей Непочатов (2004-06-18 17:41) [2]Это как?
← →
Сергей Непочатов (2004-06-18 17:43) [3]Спасибо, заработало. :-)
← →
Сергей Непочатов (2004-06-21 09:35) [4]А вот и не совсем! :-)
Если запись новая, то при выборе во втором боксе информация в первом не пропадает, а если редактирую существующую - трабл остается. :-(
Может у кого еще идеи есть?
← →
Johnmen © (2004-06-21 09:48) [5]Причем тут идеи ?
Надо использовать вещь по назначению, в соответствии с прилагаемой инструкцией. И не ожидать, что пылесос может постирать носки...:)
Короче. У меня проблем нет. У тебя - есть. Значит у тебя ошибки...
← →
Сергей Непочатов (2004-06-21 10:01) [6]В хелпе написано, что свойство LookupCache - только для Lookup-полей. А у меня поля типа fkData.
← →
Johnmen © (2004-06-21 10:20) [7]>Если запись новая...
Где новая ?
>А у меня поля типа fkData
Я уже перестаю понимать, в чем проблема...:)
← →
Сергей Непочатов (2004-06-21 11:50) [8]Тара и товары лежат в таблице Tara. В форме для формирования накладной есть два DBLookupComboBoxEh, в которых отображаются два поля из накладной, таблица Nakl. А ListSource у них - Tara. По событию OnDropDown я устанавливаю фильтр в Tara, чтобы в выпадающем списке была только тара, а по зарытию списка фильтр отменяю. В другом комбобоксе я делаю то же самое, но фильтр на Tara устанавливаю такой, чтобы в списке были видны только товары.
Но после закрытия списка в одном к-боксе в другом - пусто!
← →
Johnmen © (2004-06-21 12:00) [9]>Но после закрытия списка в одном к-боксе
Что означает "закрытие списка" ?
← →
Сергей Непочатов (2004-06-21 14:08) [10]procedure TFormParty.DBLookupComboBox1DropDown(Sender: TObject);
begin
sdsTara.Filter := "PARENT_IDP = 8000000";
sdsTara.Filtered := True;
end;
procedure TFormParty.DBLookupComboBox1CloseUp(Sender: TObject;
Accept: Boolean);
begin
sdsTara.Filtered := False;
sdsTara.Refresh;
end;
А список звкрывается автоматически после того как юзер выбрал значение из выпадающего списка.
← →
Johnmen © (2004-06-21 14:14) [11]>sdsTara.Refresh;
Это зачем ?
Кеширование включено ?
>Если запись новая...
Где новая ?
← →
Сергей Непочатов (2004-06-21 14:21) [12]Refresh - просто для уверенности, без него работает также.
А кеширование чего надо? Я включал кэширование всех участвующих полей во всех таблицах.
Новая запись в накладных Nakl.
← →
Johnmen © (2004-06-21 14:58) [13]Надо LookupCache=True для лукапных полей Nakl, которые ссылаются на sdsTara.
В DBLookupComboBoxEh прописываются DataFiled, DataSource, ListField, ListSource, KeyField.
Всё должно работать...
← →
Сергей Непочатов (2004-06-21 16:33) [14]Все так, но не работает. :-(
Получается, что фильтр установлен, данные в комбобоксе обновлены (пусто, нет в таблице), фильтр отменен, а данные в комбобоксе не обновляются.
← →
Johnmen © (2004-06-21 16:50) [15]Ставь и убирай фильтр по другим событиям...
...
← →
Сергей Непочатов (2004-06-21 17:33) [16]Да пробовал уже и по OnEnter - OnExit, и по OnEnter - OnChange
← →
Johnmen © (2004-06-21 17:52) [17]Всё должно работать...
if <это не так> then <ошибка в другом месте>;
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2004.07.18;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.054 c