Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Обновление в Гриде / 5 сообщений из 5, страница 1 из 1
16.08.2004, 10:18
    #32650342
Соня_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обновление в Гриде
Можно ли сделать так,
чтобы в Гриде данные обновлялись с некой периодичностью(1 сек.),
при этом указатель выделенной строки не перемещался каждый раз наверх?

Данные в гриде - из CursorAdapter, соответственно для их обновления нужно перечитывать данные в нем : ca.CursorRefresh, после этого thisform.grid1.Refresh.

При этом данные обновляются конечно как надо, но указатель каждый раз переходит наверх Как этого избежать?
...
Рейтинг: 0 / 0
16.08.2004, 10:35
    #32650381
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обновление в Гриде
Вопрос неоднократно обсуждался.

Общий вывод: оно того не стоит!

Огромное количество усилий при минимальном результате. Если пользователю нужно обновление, пусть использует специальную кнопку "Обновить" или выйдет и снова войдет в форму.

Позиционировать указатель тоже бесперспективно. У Вас есть уверенность, что такая запись не будет удалена другим пользователем? Куда позиционировать?
...
Рейтинг: 0 / 0
16.08.2004, 10:43
    #32650404
Sergey Ch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обновление в Гриде
Ну уж если сильно хочется и аргументы Владимира Вас не убедили, то есть несколько вариантов:
- запоминать идентификатор до обновления и после обновления позиционировать на эту запись
- аналогично можно по номеру записи...

Все эти варианты имеют недостатки, упомянутые Владимиром...

Good luck!
...
Рейтинг: 0 / 0
16.08.2004, 10:49
    #32650420
Соня_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обновление в Гриде
Позиционировать каждый раз на запись конечно не хочется.
Тем более с такой частотой - 1 сек., и если курсор достаточно большой, то это опять будет мелькание.

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

Поэтому я предположила,что подобное можно сделать не только с обычными таблицами, но и с CursorAdapter.

Можно как-то так сделать так, чтобы в отдельной форме он обновлялся, а в отдельной - грид был настроен на этот CursorAdapter и обновлялся только грид? (И у форм были разные датасессии при этом).

Как настроить грид на CursorAdapter, созданный в другой форме, открытый в другой датасессии? Если можно как-то, то может все и получится!!!!
...
Рейтинг: 0 / 0
20.08.2004, 15:59
    #32659447
sar99
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обновление в Гриде
**********************************************
Данные в гриде - из CursorAdapter, соответственно для их обновления нужно перечитывать данные в нем
**********************************************
Как раз для обновления перечитывать данные не надо!!!
после обычного repl в сursor_adapter надо дать команду
vvv=tableupdate()
и в случае vvv=.f.
разобраться (изменена запись кем то еще или вообще удалена )

Вот чтобы разобраться изменена запись или удалена
надо перечитать, но только запись с текущим ID
(но это проще сделать в отдельный RECORDSET и не рушить Ваш GRID)
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Обновление в Гриде / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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