Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / TabOrder и Requery+Refresh / 6 сообщений из 6, страница 1 из 1
27.01.2006, 15:49
    #33507932
men dea
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TabOrder и Requery+Refresh
На форме есть:
1. Grig1, построенный на основе LV1 (родительский файл)
2. Grid2, на основе LV2 (следующий по старшинству), которое питается подсуммами из LV3 (на основе самого дочернего файла БД).
3. textbox nKoefficient, от которого зависит подсумма в LV3. И, соответственно, получаемая из нее колонка в Grid2 (LV2)

При запуске формы колонка посчитана правильно.
Меняем nKoefficient. В Grid2 изменений нет, хотя должны быть:

Код: plaintext
1.
2.
REQUERY(LV3)
REQUERY(LV2)
Thisform.Refresh()

Вторично меняем nKoefficient. Изменения происходят, но с учетом предыдущего значения коэффициента. Т.е. с запаздыванием на один шаг.
Правильно все пересчитать можно, если дважды ввести в nKoefficitnt одно и то же значение. При определенных условиях запаздывание может быть и на 2 шага. Словно переполняется какой-то буфер и в Grid2 "выливаются" правильные значения. Причем замечу, что BROWSE LV3 и LV2 показывает, что там все рассчитано верно.

Но такой ерунды не происходит, если следующим за textbox nKoefficient по TabOrder-у стоит Grid1, хотя LV1 не имеет никакого отношения к изменениям коэффициента.

Вопрос: "Порядок обхода действительно имеет значение или я что-то не учитываю?"

PS Удвоение Refresh и перестановки-удвоение Requery не оказывают никакого влияния на запаздывание. Имеет значение лишь порядок обхода объектов.
...
Рейтинг: 0 / 0
27.01.2006, 15:51
    #33507940
AleksMed
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TabOrder и Requery+Refresh
Грид рефреш
...
Рейтинг: 0 / 0
27.01.2006, 19:13
    #33508462
men dea
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TabOrder и Requery+Refresh
Это я делал. Даже оба Грида РЕФРЕШИЛ. Не помогает ни в каких комбинациях.
Срабатывает только, если шагну в Grid1, а там сделаю AfterRowColChange().
Но если вставлю в VALID textbox-a:
Thisform.Grid1.AfterRowColChange(), то все равно обновляться не хочет хочет.
Разве, если SetFocus на Grid1 перекинуть. Именно на Grid1, а не Grid2.
...
Рейтинг: 0 / 0
27.01.2006, 19:54
    #33508534
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TabOrder и Requery+Refresh
Обновление "картинки" содержимого Grid происходит только после получения им фокуса.

ThisForm.Grid1.SetFocus()
ThisForm.Grid1.Refresh()

ThisForm.Grid2.SetFocus()
ThisForm.Grid2.Refresh()
...
Рейтинг: 0 / 0
28.01.2006, 00:10
    #33508697
men dea
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TabOrder и Requery+Refresh
Спасибо. Не знал.

Но в таком случае, почему:
1. не обновляется Grid2, если я сразу на него фокус перекидываю? Обязательно нужно заглянуть первым делом в Grid1. А в Grid2 даже без этого фокуса обновится?
2. при нелучшем TabOrder-e обновление все-таки происходит 2 темпом, хотя ни Grid1, ни Grid2 не получают фокус вообще? Или при рефреше всей формы, фокус поочередно пробегает по всем объектам, возвращаясь в исходную точку?
...
Рейтинг: 0 / 0
28.01.2006, 22:23
    #33509132
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TabOrder и Requery+Refresh
men deaСпасибо. Не знал.

Но в таком случае, почему:
1. не обновляется Grid2, если я сразу на него фокус перекидываю? Обязательно нужно заглянуть первым делом в Grid1. А в Grid2 даже без этого фокуса обновится?
2. при нелучшем TabOrder-e обновление все-таки происходит 2 темпом, хотя ни Grid1, ни Grid2 не получают фокус вообще? Или при рефреше всей формы, фокус поочередно пробегает по всем объектам, возвращаясь в исходную точку?
На оба вопроса один ответ. Надо смотреть твой код. Что-то у тебя там слишком все закручено.

Судя по всему, у тебя в AfterRowColChange() первого Grid происходит обновление содержимого второго Grid. О чем ты скромно умолчал.

В общем, по такой информации судить трудно. Попробуй сделать тестовый пример. Даже не для того, чтобы сюда выложить, а чтобы понять, в чем именно ты ошибся. Почти наверняка, в тестовом примере у тебя все будет работать "как положено".
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / TabOrder и Requery+Refresh / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]