Гость
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Указатель в grid / 9 сообщений из 9, страница 1 из 1
29.08.2016, 16:45
    #39299735
Lata
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Указатель в grid
Добрый день!
На форме grid, в RowSource Remote View, Order By по 4 полям, в том числе по номеру помещения. Запоминаю строку по главному индексу помещения. При редактировании одного из этих полей делается update через sqlexec,затем requery, далее locate, чтобы встать на нужную строку и refresh. Например: помещения под номерами 5,6,7.
Хочу поменять 5 на 8. После requery вижу, что указатель в таблице (brow) стоит на строке с номером помещения 8. При отображении в grid указатель - на строке с помещением №6. Получается, что указатель остался на прежнем месте, то есть сортировка прошла, а указатель остался там же, где был. Помогите, пожалуйста, разобраться.
...
Рейтинг: 0 / 0
29.08.2016, 17:09
    #39299758
Указатель в grid
LataЗапоминаю строку по главному индексу помещения.Что такое "главный индекс помещения"? Каким кодом реализуется сие запоминание? При редактировании одного из этих полей делается update через sqlexec,затем requery, далее locate, чтобы встать на нужную строку и refresh. Например: помещения под номерами 5,6,7.
Хочу поменять 5 на 8. После requery вижу, что указатель в таблице (brow) стоит на строке с номером помещения 8. При отображении в grid указатель - на строке с помещением №6. Получается, что указатель остался на прежнем месте, то есть сортировка прошла, а указатель остался там же, где был. Помогите, пожалуйста, разобраться.Сначала покажите код ваших действий. Ибо пока совершенно непонятно кто на ком стоял, что есть в данных, что запомнилось, что ищется, как ищется, находится ли и т,д.
...
Рейтинг: 0 / 0
29.08.2016, 17:45
    #39299779
Lata
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Указатель в grid
&&этот код в событии 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
29.08.2016, 18:27
    #39299811
Указатель в grid
Lata,

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

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

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


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