Поиск:

Ответ в темуСоздание новой темы Создание опроса
> TDBLookupComboBox, как програмно перемещаться по элементам? 
V
    Опции темы
DEER
Дата 26.4.2006, 13:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 749
Регистрация: 12.4.2005
Где: г. Рязань

Репутация: нет
Всего: 13



Пусть на форме есть компонент TDBLookupComboBox
допустим, использую так:
Код

var
 dsSourse:TOracleDataSet;
 ODS_Set:TDataSource;
 cbList: TDBLookupComboBox; 
begin
 dsSourse.DataSet := ODS_Set;
 cbList.ListSorse := dsSourse;
 cbList.ListField := 'Name';
 cbList.KeyField := 'Id';
........
end;

при запуске формы список заполняется из БД. тут всё хорошо. 

Как можно программно выбрать тот или иной элемент из списка?
пытаюсь 
Код
ODS_Set.Next;

с элементом ничего не происходит...
Положил на форму dbGrid, связал его с тем же ODS_Set. при выполнеии кода
Код
ODS_Set.Next;

происходит сдвиг в dbGrid'е.
если выбрать из моего cbList какой нить элемент, то в dbGrid'е порисходит переход к этому эленту. а почему нет обратного???
 smile 
Если нельзя перемещатся по элементам списка программно, потому что у меня в cbList указан только LIstSourse, то как реализовать выпадающий список из БД, чтоб отбражался нужный мне элемент (Name), а выбиралось другое значение (ID)  ??? 


--------------------
 
PM MAIL WWW ICQ MSN   Вверх
DEER
Дата 27.4.2006, 13:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 749
Регистрация: 12.4.2005
Где: г. Рязань

Репутация: нет
Всего: 13



ни у кого нет соображений?
второй день не могу придумать ничего...  smile  


--------------------
 
PM MAIL WWW ICQ MSN   Вверх
DEER
Дата 27.4.2006, 16:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 749
Регистрация: 12.4.2005
Где: г. Рязань

Репутация: нет
Всего: 13



сделал по чёрному.
поставил обычный комбо бокс, при загрузке страницы он заполняется данными из таблицы, потом ищу нужную мне строку перебором, выставляю список на этот элемент.

при сохранении записи, ищу в таблице, из которой заполнял запись с таким NAME, и беру от туда ID, который и сохраняю в записи...

через одно место, но работает...

Добавлено @ 16:11 
прикольно сам с собой поговорил  smile  


--------------------
 
PM MAIL WWW ICQ MSN   Вверх
Юзверь
Дата 28.4.2006, 00:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 5.2.2006
Где: IF.UA

Репутация: нет
Всего: нет



блин... сидел игрался.. все работает :-/ 
опишу что делал авось поможет..
есть 2 датасета і соответсвенно датасорса.
таблица груп id, name
таблица каких-то таваров id, idGroup
более не надо. Как понял из исходника надо при прокрутке товара в dbLookupcombo... отображалось то имя чье id = idGroup
настройки комбо:
ListSourse = тот датасорс где групы
listField = name
keyfield = id

datasourse = тот где товары
dataField = idGroup (в вашем примере не указан, пропустили или на форуме или в коде)
если в коде: список - пасивный он нужен для того чтоб подставить человеское значение таблици (коректнее датасета) с например наименованиями груп вместо кодов груп из таблици с товарами.
listkey логичести равно dataKey просто из разных таблиц
если в примере: извините за теорию smile

все, положение курсора в датасете груп будет там где listkey равен dataKey тоисть за приоритет берется значение dataKey. пишем датасет(товари).вперед; и комбо меняеться. меняем комбо и поле
указаное в dataKey в текущем месте будет изменена на новое значение из listkey. 
может и не то но у меня работает.
 

Это сообщение отредактировал(а) Юзверь - 28.4.2006, 00:30
PM MAIL ICQ   Вверх
DEER
Дата 28.4.2006, 08:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 749
Регистрация: 12.4.2005
Где: г. Рязань

Репутация: нет
Всего: 13



ну если б так не работало, от я не знаю зачем этот компонент нужен  smile .

прикол был в том, чтобы сделать редактирования определённого элемента. те чтоб у выбранного элемента можно было бы поменять его idGroup (из примера выше).
 


--------------------
 
PM MAIL WWW ICQ MSN   Вверх
Юзверь
Дата 28.4.2006, 23:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 5.2.2006
Где: IF.UA

Репутация: нет
Всего: нет



извините, а комментарий насчет DataField?
его связываем с нужным полем.
при посте мы получим изменение в базе. в примере это описано, парадокс в том что работает... :-/
 
PM MAIL ICQ   Вверх
DEER
Дата 2.5.2006, 08:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 749
Регистрация: 12.4.2005
Где: г. Рязань

Репутация: нет
Всего: 13



если проставить поле DataField, то создается список из таблицы, и этот список спозиционирован на нужносм элементе.
Но вот изменить выбранный элемент списка не получается, не программно, ни просто мышкой.  


--------------------
 
PM MAIL WWW ICQ MSN   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.0486 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.