:: Visual Foxpro, Foxpro for DOS
Интересное наблюдение в работе ComboBox
Aries
Автор

Сообщений: 4349
Откуда: Николаев
Дата регистрации: 24.12.2002
Есть табличка, к примеру tVid с такими полями

| iIndex | cName | nPriznak |
__1_____"One"____0
__2_____"To"______0
__3_____"Five"_____1

Так же создается курсор

CREATE CURSOR tCurPriznak (nPriznak N(1), cName C(1))
INSERT INTO tCurPriznak (nPriznak,cName) VALUES (0,"+")
INSERT INTO tCurPriznak (nPriznak,cName) VALUES (1,"-")

Ложу на фрому КомбоБокс. Подключаю его

THIS.oPriznak.RowSourceType=2
THIS.oPriznak.RowSource="tCurPriznak.cName"
THIS.oPriznak.ListIndex=1
******
THIS.oPriznak.ControlSource="tVid.nPriznak"
THIS.oPriznak.Refresh()

Запускаю форму и комбо пустое. Выбираю первое значение. В таблицу tVid попадает значение
равное не 0 а 1. Выбираю второе значение равное в курсоре 1 а в таблицу вид заносится
значение равное 2. Откуда 2-ка?!?!
Крутил и так и эдак, ничего не получалось.
Короче помучавшись денек, (хотелось самому докопаться до причины), нашел причину
нельзя использовать значение равное 0. С нулем не работатет. Поменял значения в курсоре

CREATE CURSOR tCurPriznak (nPriznak N(1), cName C(1))
INSERT INTO tCurPriznak (nPriznak,cName) VALUES (1,"+")
INSERT INTO tCurPriznak (nPriznak,cName) VALUES (2,"-")

Соответственно изменились данные в таблице tVid

| iIndex | cName | nPriznak |
__1_____"One"____1
__2_____"To"______1
__3_____"Five"_____2

И все заработало, но вот не пойму почему все таки ноль не работает связующей?



Отредактировано (18.04.05 23:40)


------------------
Я бы переписал жизнь, но Бог не дает мне исходники (с)
==============================
Злостный линуксоид!
Ratings: 0 negative/0 positive
Re: Интересное наблюдение в работе ComboBox
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Hi Aries!

Интересно, а как ты думаешь фокс догадается, что + это 0 а - это 1, если ты в источнике указал ОДНО поле? Не указал что поля в комбо два, что брать значение нужно из второго поля, что брать нужно САМО значение а не индекс...
Так что он вполне закономерно берёт индекс элемента и его и помещает в ControlSource.




------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: Интересное наблюдение в работе ComboBox
Aries
Автор

Сообщений: 4349
Откуда: Николаев
Дата регистрации: 24.12.2002
Привет Игорь!

Хорошо, но как только поменял значения все заработало, т.е 0 просто не работает.
ведь изменил значения с 0 на 1 и с 1 на 2. И начало работать.
При этом не меняя код.

Что-то я не вьежаю в твой ответ




------------------
Я бы переписал жизнь, но Бог не дает мне исходники (с)
==============================
Злостный линуксоид!
Ratings: 0 negative/0 positive
Re: Интересное наблюдение в работе ComboBox
Mavy

Сообщений: 246
Дата регистрации: 04.08.2004
Aries, у тебя в контродсоурс попадает не 1 и 2 из курсора, а индекс комбо. Чтобы бралось из курсора:
RowSourceType=2 &&Alias
RowSource=[Cur_name]
BoundTo=T
BoundColumn=2
Только поля в курсоре переставь местами (name,code)
Ratings: 0 negative/0 positive
Re: Интересное наблюдение в работе ComboBox
Aries
Автор

Сообщений: 4349
Откуда: Николаев
Дата регистрации: 24.12.2002
Спасибо Игорь и Mavy! Посыпаю голову пеплом! ;)




------------------
Я бы переписал жизнь, но Бог не дает мне исходники (с)
==============================
Злостный линуксоид!
Ratings: 0 negative/0 positive
Re: Интересное наблюдение в работе ComboBox
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Hi Aries!

Если бы ты провёл эксперимент дальше, и поменял в таблице значения на 2 и 3
или скажем 8 и 9 то сразу бы всё понял




------------------
WBR, Igor
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 40 (Гостей: 40)

© 2000-2024 Fox Club 
Яндекс.Метрика