Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.05.02;
Скачать: CL | DM;

Вниз

Как заполнить список ListBox-а значениями двух полей...???   Найти похожие ветки 

 
Бульбаш   (2002-04-05 19:22) [0]

Хочу использовать ListBox для выбора значений поля. Можно ли забить Items значениями двух полей другой базы: ключевого, которое будет вносится в текущую базу при выборе значения из списка, и просмотрового, которое будет отображаться непосредственно при открытии списка. Если возможно то прошу плиз приблизительный набросок кода.
И еще вопрос: хочу попробовать ODAC 3.6. Наш адинистратор предупредил, что некорректно отрабатывает oratable (в эмуляции запроса не проставляется где-то пробел). Если кто столкнулся с этой проблемой, подскажите как решить???


 
Alexander Vasjuk   (2002-04-05 19:36) [1]

Index := Items.Add("Отображаемое значение");
Items.Objects[Index] := Pointer(Key); // Key: Integer
-----------------------------------------------------
Key := Integer(Items.Objects[ListBox.ItemIndex])


 
Бульбаш   (2002-04-08 21:55) [2]

Спасибо, попробовал сделать - вылезла проблема: в listbox все нормально, а в combobox не могу выцепить значение ключевого поля.
код приблизительно такой:
DBKuz.Items.AddObject(DM.KuzovNAIM.asString, pointer(DM.KuzovKOD.AsInteger));
Значение пытюсь получить так:
kz:=integer(Avto.DBKuz.Items.Objects[DBKuz.ItemIndex]);
В итоге значение всегда одно и тоже, а нужно использовать именно combobox. Не подскажете, в чем дело???


 
dymka   (2002-04-08 22:02) [3]

Я долго не думал в подобной ситуации - написал наследника для TComboBox, куда по тупому загонял оба поля, определив внутри еще Keys: TStringList :) Задача была точно такая же... Естественно, у меня ComboBox инициализировался только спец методом и не отображал актуальных данных (мне это было не нужно :).


 
Бульбаш   (2002-04-09 09:06) [4]

Я понимаю, что извернуться можно крупно, но есть ли какой-нибудь простой и действенный способ заставить combobox вернуть нужное мне значение???


 
Johnmen   (2002-04-09 09:25) [5]

Вообще непонятно, зачем так гиморроить, когда есть специальные Data-Aware компоненты, напр. DBComboBox и куча др. !


 
wicked   (2002-04-09 10:22) [6]

2 Бульбаш ©

> Я понимаю, что извернуться можно крупно, но есть ли какой-нибудь
> простой и действенный способ заставить combobox вернуть
> нужное мне значение???

есть... называется TDBLookupComboBox...


 
Бульбаш   (2002-04-09 11:51) [7]

Как раз таки на лукапах у меня сейчас все и построено, но хочу отойти от локальных методов ( из-за блокировок таблиц).Задумка такая: Все данные ввести в edit и combobox, а затем снять значения в качестве параметров запросов insert или update. Сам понимаю, что гиморно, а как можно по другому. Не давать же .Edit или .Insert. Это же все-таки клиент-серверная технология.


 
wicked   (2002-04-09 12:06) [8]

твоё дело... с oracle я не работал...
но вот еще способ - для простого combobox"а завести массив ключей где-нибудь отдельно и при выборе элемента из combobox"а брать соответствующий элемент из массива... например, я использовал в качестве массива TList - он хранит pointer"ы, но нам никто не мешает хранить там integer"ы, главное - не забывать об этом... заполнять их надо вместе при активизации формы - для того случая, если данные справочника поменяются во время выполнения программы... и не вздумай сортировать items"ы combobox"а после заполнения...
надеюсь, детали сам продумаешь...


 
Lusha   (2002-04-09 12:08) [9]

>Бульбаш
Используйте CachedUpdates...


 
Леха   (2002-04-09 12:11) [10]

Странно что у тебя не работает комбобокс я для этих целей пользуюсь такой фунцией попробуй

function GetObj(CB:TComboBox):integer;
begin
Result:=-1000;
if CB.ItemIndex<>-1 then Result:=integer(CB.Items.Objects[CB.ItemIndex]);
end;

wicked в клиент-сервере зачастую действительно выгоднее прочитать данные и пользоваться ими чем использовать Data Aware компоненты и гадать в какой трансакции они будут работать и чего заблокируют


 
ne   (2002-04-10 05:39) [11]

я делал проще
1. обявлял наследника от Tobject
2. прописывал там нужные мне поля
3. перед вставкой инит объекта
4. вставляешь обЪект
5. по итеминдекс возвращаешь обект и читаешь данные


 
Леха   (2002-04-10 15:27) [12]

Есть такой набор компонент Rx, в них RxDBLookupCombo, RxLookupEdit, ... - все реализуется. Если интересно - могу выслать дистрибутивы.



Страницы: 1 вся ветка

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

Наверх




Память: 0.5 MB
Время: 0.015 c
1-2615
Armageddon
2002-04-20 17:24
2002.05.02
Общая


14-2652
Den_
2002-03-26 16:21
2002.05.02
Подскажите, плиз!


3-2480
KoLega
2002-04-10 18:01
2002.05.02
Нехочу использовать доступ к базе через BDE, а хочу через ADO, но


14-2658
Феликс
2002-03-26 19:17
2002.05.02
Teleport Pro умеет вытаскивать файлы с опр. расширением (из сети). Но как?


3-2460
step
2002-04-10 23:35
2002.05.02
Мастера, ПОМОГИТЕ! Как скрыть Scrool в RxDBGrig ?