Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / FoxPro, Visual FoxPro Новый топик    Ответить
 Выбор при 2х одинаковых записях в комбо  [new]
Keeper2009
Member

Откуда:
Сообщений: 34
Доброе время суток.

Есть комбо (mgorod), в него источником (тип - Fields) вываливаются записи из файлика tmpklad.dbf (есть поле Name и CODE)
на событие KeyPress стоит фильтр, дабы при нажатии на кнопочки, выводились похожие записи (вводим МОС и собссна отображаются все записи начинающиеся с этих букв). Имеется проблема такая - допустим в файле формируется список городов и среди них есть две записи с именем МОСКВА, только у первой запси поле CODE имеет значение 100001, а у второй 100000. Так вот, когда набираю МОСКВ и от крываю комбо, то вижу две записи МОСКВА, МЫШКОЙ выбираю запись номер два, но выбирается почему-то только первая запись. То есть значение CODE от первой записи и только, если грохнуть первую, то без проблем выбирается вторая. Подскажите плз, как бороться с этим ? )))
29 мар 11, 06:06    [10436536]     Ответить | Цитировать Сообщить модератору
 Re: Выбор при 2х одинаковых записях в комбо  [new]
ВладимирМ
Member

Откуда: г. Москва
Сообщений: 7864
Установить значение свойства

ComboBox.BoundTo = .T.
29 мар 11, 11:04    [10437427]     Ответить | Цитировать Сообщить модератору
 Re: Выбор при 2х одинаковых записях в комбо  [new]
Keeper2009
Member

Откуда:
Сообщений: 34
Пробовал - не получилось. ControlSource стоит в None, а DisplayValue=mgorod т.е. само же комбо.
30 мар 11, 01:12    [10442911]     Ответить | Цитировать Сообщить модератору
 Re: Выбор при 2х одинаковых записях в комбо  [new]
ВладимирМ
Member

Откуда: г. Москва
Сообщений: 7864
Приведите все сделанные Вами настройки ComboBox.

И еще, если в открывшемся списке отображаются две одинаковые записи "Москва", то как Вы сами-то отличаете какой записи какой код соответствует? Почему считаете, что то, что выбирает ComboBox - не правильно?
30 мар 11, 11:26    [10444044]     Ответить | Цитировать Сообщить модератору
 Re: Выбор при 2х одинаковых записях в комбо  [new]
Keeper2009
Member

Откуда:
Сообщений: 34
ВладимирМ
Приведите все сделанные Вами настройки ComboBox.

Все настройки по умолчанию кроме:
1.RowSourceType: 6- Fields
2.RowSource:TmpKlad.name
3.NumberOfElements:8
4.Style:0-Dropdown Combo


И еще, если в открывшемся списке отображаются две одинаковые записи "Москва", то как Вы сами-то отличаете какой записи какой код соответствует? Почему считаете, что то, что выбирает ComboBox - не правильно?


Ну у первой МОСКВЫ значение поле CODE заканчивается на 051, а у второй на 000, в отладчике (да и по формированию следующей таблицы в программе) видно, что выбор идет всегда по первой записи.
31 мар 11, 02:05    [10449079]     Ответить | Цитировать Сообщить модератору
 Re: Выбор при 2х одинаковых записях в комбо  [new]
Keeper2009
Member

Откуда:
Сообщений: 34
Вот пример, просто сделал пустую форму...эффект тот же. В этом случае два города ИРКУТСК одинаковых, нужен второй, у которого CODE заканчивается на 000.

К сообщению приложен файл (1.rar - 39Kb) cкачать
31 мар 11, 02:09    [10449081]     Ответить | Цитировать Сообщить модератору
 Re: Выбор при 2х одинаковых записях в комбо  [new]
IgorNG
Member

Откуда: Москва
Сообщений: 956
Keeper2009, выводи в комбобокс вместе с названием города его код и выбирайте нужный. Проблема-то в чем?
31 мар 11, 09:42    [10449394]     Ответить | Цитировать Сообщить модератору
 Re: Выбор при 2х одинаковых записях в комбо  [new]
ВладимирМ
Member

Откуда: г. Москва
Сообщений: 7864
Делаешь следующие настройки

mgorod.RowSource: tmpklad2.name,Code   && Обрати внимание, что алиас таблицы только у первого поля!
mgorod.BoundColumn: 2                  && Выбранное значение брать из 2 столбца выпадающего списка

Метод mgorod.LostFocus меняешь следующим образом

Thisform.mGOROD2.Value = Alltrim(tmpklad2.socr)+[. ]+Alltrim(tmpklad2.Name)
Thisform.mklad.Value   = This.Value 

Все. Больше ничего в этом методе писать не надо.

Для понимания, что такое ComboBox почитайте вот это http://forum.foxclub.ru/read.php?29,503780,504381#msg-504381
31 мар 11, 10:51    [10449865]     Ответить | Цитировать Сообщить модератору
 Re: Выбор при 2х одинаковых записях в комбо  [new]
Keeper2009
Member

Откуда:
Сообщений: 34
Спасибо, помогло. То есть получается по имени низя выбирать ибо дубли, а вот CODE разный, следовательно привязка и выбор по нему ? или же получаем не значение, а номер....
31 мар 11, 11:07    [10449970]     Ответить | Цитировать Сообщить модератору
 Re: Выбор при 2х одинаковых записях в комбо  [new]
ВладимирМ
Member

Откуда: г. Москва
Сообщений: 7864
Keeper2009
Спасибо, помогло. То есть получается по имени низя выбирать ибо дубли, а вот CODE разный, следовательно привязка и выбор по нему ? или же получаем не значение, а номер....

Выбирать-то можно. Кстати, присланный Вами код у меня работает без ошибок. Выбирает именно ту запись, которая указана. Ничего не "путает".

Вероятно, у Вас еще есть какие-то "завязки" на позицию курсора в таблице, ведь первой командой после выбора, Вы зачем-то разрываете связь между выбранным значением ComboBox и положением указателя записи в таблице THISFORM.mgorod.RowSource=""), а затем еще вызываете метод обновления "картинки" ComboBox (THISFORM.mgorod.Refresh).

Т.е. ошибка явно "наведенная". Зависит от чего-то, чего Вы в присланном примере не сделали.

Ну, а то, что я сделал, это просто устранение этой самой "не определенности" как по положению указателя записи, так и по выбранному значению.
31 мар 11, 20:39    [10454014]     Ответить | Цитировать Сообщить модератору
 Re: Выбор при 2х одинаковых записях в комбо  [new]
Keeper2009
Member

Откуда:
Сообщений: 34
Хм, специально сделал пустой проект и в него просто воткнул событие, выбора не было нормального... разрыв источника я убрал, просто запамятовал исправить во вложении. Сие есть эксперименты с КЛАДРом =)
31 мар 11, 23:32    [10454491]     Ответить | Цитировать Сообщить модератору
Все форумы / FoxPro, Visual FoxPro Ответить