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