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

Откуда:
Сообщений: 17
Возникла такая проблема. Нужно сделать кнопки "следующее значение" и "предыдущее" из отфильтрованых значений.
Делаю так :
следующее
IF !EOF()
SKIP
endif
thisform.refresh()

предыдущее
IF !BOF()
SKIP-1
endif
thisForm.refresh()

но помимо отфильтрованых значений, появляется 1-е значение таблицы и пустое. Как ограничить перемещение только отфильтроваными значениями ?
20 май 09, 11:55    [7202821]     Ответить | Цитировать Сообщить модератору
 Re: Перемещение по отфильтрованным значениям  [new]
проходящий.
Guest
ORei,
проверку на начало/конец файла надо длеать не только ДО перемещения, но и после. И уходить с этого самого начала/конца файла при попадании на него после перемещения. Обычно в этом случае уже используют Go TOP/BOTTOM.
20 май 09, 12:00    [7202850]     Ответить | Цитировать Сообщить модератору
 Re: Перемещение по отфильтрованным значениям  [new]
ORei
Member

Откуда:
Сообщений: 17
проходящий.,
дописал:
IF !EOF()
SKIP
else
GO bottom
endif

ничего не изменилось. может я не правильно понял
проверку на начало/конец файла надо делать не только ДО перемещения, но и после.

где находится после ?
20 май 09, 12:08    [7202914]     Ответить | Цитировать Сообщить модератору
 Re: Перемещение по отфильтрованным значениям  [new]
проходящий.
Guest
ORei
проходящий.,
дописал:
IF !EOF()
SKIP
else
GO bottom
endif

ничего не изменилось. может я не правильно понял
проверку на начало/конец файла надо делать не только ДО перемещения, но и после.

где находится после ?
Мда... Else уже стало "после"? Я всегда думал, что это "иначе".
IF !EOF()
SKIP
if EOF()
GO bottom
endif
endif
20 май 09, 12:11    [7202925]     Ответить | Цитировать Сообщить модератору
 Re: Перемещение по отфильтрованным значениям  [new]
ORei
Member

Откуда:
Сообщений: 17
проходящий., точно, иначе. запарился просто. Спасибо за помощь, переход работает, но при смене фильтра и переходе по вновь отфильтрованным значения и попытке снова сменить фильтр становится неактивным ComboBox применяемый для фильтра. В чем может быть проблема ?
20 май 09, 12:29    [7203030]     Ответить | Цитировать Сообщить модератору
 Re: Перемещение по отфильтрованным значениям  [new]
проходящий.
Guest
ORei
переход работает, но при смене фильтра и переходе по вновь отфильтрованным значения и попытке снова сменить фильтр становится неактивным ComboBox применяемый для фильтра. В чем может быть проблема ?
Откуда я могу знать? Для ответа на этот вопрос надо как минимум знать условие фильтрации и источник данных комбо. У меня их нет.
20 май 09, 12:40    [7203087]     Ответить | Цитировать Сообщить модератору
 Re: Перемещение по отфильтрованным значениям  [new]
ORei
Member

Откуда:
Сообщений: 17
проходящий.,
событие Combo1.valid
SELECT doljnosti
SET FILTER TO otd_id = otdeli.otd_id 
GO top
thisForm.refresh ()
2 таблицы. Doljnosti и Otdeli. В таблице Otdeli содержится otd_id и nazv_otd. В таблице Doljnosti: Doljn_id, otd_id, nazv_dolj. ControlSource для комбо doljnosti.otd_id, rowsource: otdeli.nazv_otd, rowsourcetype - 6.fields. В DataEnviroment формы эти таблицы связаны.
20 май 09, 12:47    [7203123]     Ответить | Цитировать Сообщить модератору
 Re: Перемещение по отфильтрованным значениям  [new]
Deplake
Member

Откуда: Минск
Сообщений: 68
ORei, Сделай так! Так точно будет работать так как ты хочешь!
Следующая запись
IF RECCOUNT()>RECNO()
SKIP 1
ELSE
GO TOP
ENDIF
Предыдущая запись
IF RECNO()>1
SKIP -1
ELSE
GO BOTTOM
ENDIF
20 май 09, 12:49    [7203130]     Ответить | Цитировать Сообщить модератору
 Re: Перемещение по отфильтрованным значениям  [new]
ORei
Member

Откуда:
Сообщений: 17
Deplake,
IF RECNO()>1 и IF !BOF() по-моему одно и тоже. а с else, я пробовал. вариант предложеный проходящим работает как надо, только вот теперь проблема с фильтрующим Combo.
20 май 09, 13:01    [7203230]     Ответить | Цитировать Сообщить модератору
 Re: Перемещение по отфильтрованным значениям  [new]
new_bie
Member

Откуда:
Сообщений: 18
ORei, убери у СomboBox'a свойтво ControlSource.
20 май 09, 14:22    [7203975]     Ответить | Цитировать Сообщить модератору
 Re: Перемещение по отфильтрованным значениям  [new]
ORei
Member

Откуда:
Сообщений: 17
new_bie, помогло. Спасибо за помощь.
20 май 09, 14:36    [7204105]     Ответить | Цитировать Сообщить модератору
 Re: Перемещение по отфильтрованным значениям  [new]
ORei
Member

Откуда:
Сообщений: 17
new_bie, теперь при загрузке формы ComboBox - пустой. Нужно чтобы там было значение. я так понимаю, что надо в Init формы прописать thisform.combo1.Value = ' ' а вот что в кавычках ? Так же из-за удаления ControlSource перестала работать кнопка добавить. которая раньше брала значение поля otd_id из ComboBox'a
SELECT doljnosti
=CURSORSETPROP("Buffering",3)
GO bottom
APPEND BLANK
 replace otd_id WITH thisform.combo1.Value IN doljnosti 
20 май 09, 14:51    [7204209]     Ответить | Цитировать Сообщить модератору
 Re: Перемещение по отфильтрованным значениям  [new]
new_bie
Member

Откуда:
Сообщений: 18
ORei,
ControlSource определяет источник данных, с которым связан объект
RowSource указывает источник значений для элементов управления

т.е. если в CobmoBox свойстве ControlSource будет указано поле ХХХ таблицы УУУ, то после выбора соотв. значения из списка CobmoBox (которое, кстати, задает свойство RowSource), это значение попадет в поле ХХХ, таблицы УУУ.

В общем, ControlSource, это то место куда попадут данные из RowSource.
А тебе нужно всего лишь фильтр включить, так что зачем тут ControlSource? :)

У тебя же, RowSource = otdeli.nazv_otd. Значит если ты хочешь сделать
replace otd_id WITH thisform.combo1.Value IN doljnosti
нужно заменить на
replace otd_id WITH otdeli.otd_id IN doljnosti
21 май 09, 07:17    [7207033]     Ответить | Цитировать Сообщить модератору
Все форумы / FoxPro, Visual FoxPro Ответить