powered by simpleCommunicator - 2.0.41     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Указатель в grid
9 сообщений из 9, страница 1 из 1
Указатель в grid
    #39299735
Lata
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!
На форме grid, в RowSource Remote View, Order By по 4 полям, в том числе по номеру помещения. Запоминаю строку по главному индексу помещения. При редактировании одного из этих полей делается update через sqlexec,затем requery, далее locate, чтобы встать на нужную строку и refresh. Например: помещения под номерами 5,6,7.
Хочу поменять 5 на 8. После requery вижу, что указатель в таблице (brow) стоит на строке с номером помещения 8. При отображении в grid указатель - на строке с помещением №6. Получается, что указатель остался на прежнем месте, то есть сортировка прошла, а указатель остался там же, где был. Помогите, пожалуйста, разобраться.
...
Рейтинг: 0 / 0
Указатель в grid
    #39299758
LataЗапоминаю строку по главному индексу помещения.Что такое "главный индекс помещения"? Каким кодом реализуется сие запоминание? При редактировании одного из этих полей делается update через sqlexec,затем requery, далее locate, чтобы встать на нужную строку и refresh. Например: помещения под номерами 5,6,7.
Хочу поменять 5 на 8. После requery вижу, что указатель в таблице (brow) стоит на строке с номером помещения 8. При отображении в grid указатель - на строке с помещением №6. Получается, что указатель остался на прежнем месте, то есть сортировка прошла, а указатель остался там же, где был. Помогите, пожалуйста, разобраться.Сначала покажите код ваших действий. Ибо пока совершенно непонятно кто на ком стоял, что есть в данных, что запомнилось, что ищется, как ищется, находится ли и т,д.
...
Рейтинг: 0 / 0
Указатель в grid
    #39299779
Lata
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
&&этот код в событии valid thisform.pageframe1.page8.grid1.column3.text1, в котором меняется номер помещения
LOCAL num,recc
SELECT vnupomn

&&уникальный код помещения
recc=vnupomn.sys_pom
IF .NOT. EMPTY(this.value)
LOCAL xvalue
xvalue = ALLTRIM(this.value)
IF ISDIGIT(RIGHT(xvalue, 1))
this.value = PADL(xvalue, ;
4) + ' '
ELSE
this.value = PADL(xvalue, ;
5)
ENDIF
ENDIF

&&обновленный номер помещения
num=thisform.pageframe1.page8.grid1.column3.text1.value
if nconn>0
nsql=sqlexec(nconn,"update vnupomn set npp=?this.value where vnupomn.sys_pom=?vnupomn.sys_pom and vnupomn.sys_ot=?to_otz.sys_ot")
else
messagebox(“Нет соединения!”)
endif

REQUERY("vnupomn") && номер помещения обновился

SELECT vnupomn
LOCATE FOR vnupomn.sys_pom=recc
If found()
BROW && указатель на измененной строке
Else
Messagebox(“Ошибка!”)
endif


THISFORM.PAGEFRAME1.PAGE8.GRID1.REFRESH()
...
Рейтинг: 0 / 0
Указатель в grid
    #39299811
Lata,

запускайте отладчик и ищите место, в котором игнорируются все ваши показанные здесь действия и идет переход по номеру строки. Что-то еще срабатывает ПОСЛЕ все показанного здесь кода.
...
Рейтинг: 0 / 0
Указатель в grid
    #39300137
Lata
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за совет. Уже ходила по шагам: доходит до refresh - нормально. Следующий шаг - кидает на команду do form ... (вызов данной формы), указатель уже съехал на прежнюю позицию. С полями, которые не входят в order by, все в порядке. Посоветуйте, в какую сторону еще посмотреть.
...
Рейтинг: 0 / 0
Указатель в grid
    #39300199
LataСпасибо за совет. Уже ходила по шагам: доходит до refresh - нормально. Следующий шаг - кидает на команду do form ... (вызов данной формы), указатель уже съехал на прежнюю позицию. С полями, которые не входят в order by, все в порядке. Посоветуйте, в какую сторону еще посмотреть.Отлаживать дальше программу и искать в ней место перегона указателя. Для этого в отладчике в окне Watch надо создать строку с recn('vnupomn') и слева от нее дважды кликнуть мышкой для устанвки точки останова с условием и прогнать весь код. Отладчик остановится в момент изменения номера строки. Дальше смотрите код и анализируете.
...
Рейтинг: 0 / 0
Указатель в grid
    #39300404
Lata
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сделала все, как Вы посоветовали. Отладчик сигналил об изменении строки, пока шел по valid, и все было правильно. Следующий шаг после valid - do form - указатель уже не там, где нужно, о чем отладчик уже сигнала не дал.
Выход нашла, но не совсем понятно, почему так: на AfterRowColChange кода нет и вообще, кроме valid, нигде нет кода, но указатель уже съехал. Я его поставила на место, при условии, что были изменения, и все прокатило (пока, может, где-нибудь вылезет).
...
Рейтинг: 0 / 0
Указатель в grid
    #39300562
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я, конечно, извиняюсь, но зачем Вы вообще Requery() делаете? У Вас ведь содержимое таблицы, отображенное в Grid и так соответствует тому, что есть на сервере. Вам надо всего лишь передать это изменение на сервер. Обновлять "картинку" на клиенте после передачи изменений на сервер не надо.

Более того, если Вы используете Remote View, то даже код писать по передаче изменений нет необходимости. Достаточно сделать соответствующие настройки в дизайнере Remote View и в зависимости от режима буферизации изменения будут автоматически передаваться на сервер либо при перемещении на новую запись, либо явно по команде TableUpdate()

Вообще-то, объект Grid - это "вещь в себе". Крайне не любит отдавать управление кому-либо. Поэтому любые изменения в Grid надо делать сначала уведя фокус с этого объекта. Также очень не рекомендуется без крайней необходимости что-либо писать в методах Valid. Если есть возможность, лучше писать код в других методах.
...
Рейтинг: 0 / 0
Указатель в grid
    #39301368
Lata
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем спасибо за советы и участие. Получилось!
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Указатель в grid
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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