Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Grid / 6 сообщений из 6, страница 1 из 1
27.11.2003, 18:09
    #32337108
IgorProgrammer
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Grid
Проблема с гридом...

Если я перехожу с поля на другое поле мышью или нажатием ентер-а...
то у меня происходит скачек на последнюю запись...
Если вниз-вверх, то нормально...

На валидате:
If VAL(This.Text) # ThisFormset.Vot
ThisFormset.Form1.Lockscreen = .T.
my_poisk = iif(vse_resursi.samos,vse_resursi.shifr_pole,_CandDi(vse_resursi.shifr_pole,vse_resursi.shifr_pole))
my_vernut = vse_resursi.shifr_pole
If vse_resursi.metka = "50"
newrazrad = VAL(This.Text)
if (thisformset.nparam = 3 and thisformset.iz_smeti) or ;
thisformset.nparam = 1 or thisformset.nparam = 2
IF SEEK(my_poisk,'spistarset','kodcenrazr')
sele tarif
set filter to koef1 = spistarset.setka
IF !SEEK(newrazrad,'tarif','razrad')
repla koln With ThisFormset.Vot, kolf With ThisFormset.Vot in vse_resursi
ELSE
repla koln with This.Value, kolf With This.Value in vse_resursi
ENDIF
ENDIF
ThisFormset.Rasch_vsego
sele vse_resursi
loca for vse_resursi.shifr_pole = _CandDi("2 ","2") or vse_resursi.shifr_pole = "2 "
ThisFormset.FormBuild()
else
repla koln With ThisFormset.Vot, kolf With ThisFormset.Vot in vse_resursi
Endif
else
ThisFormset.Rasch_vsego
ThisFormset.FormBuild()
endif
IF !EMPTY(ALLTRIM(my_vernut))
sele vse_resursi
loca for shifr_pole = my_vernut
if !found()
go top
endif
ENDIF
ThisFormset.Form1.Lockscreen = .F.
ThisFormset.Form1.Refresh
Endif

На ThisFormset.FormBuild переписываю источник грида:

sele * from vse_resursi order by kdgroup,kdpodgr,shifr_pole into cursor vse_resursi_vrem
*sele * from vse_resursi_vrem order by kdgroup,kdpodgr into cursor vse_resursi
my_vernut = vse_resursi.shifr_pole
sele vse_resursi
zap
sele vse_resursi_vrem
scan
scatter memvar
sele vse_resursi
append blank
gather memvar
repla naimr with vse_resursi_vrem.naimr, naimu with vse_resursi_vrem.naimu
endscan
If used('vse_resursi_vrem')
sele vse_resursi_vrem
use
Endif

ThisFormset.Form1.Grid1.RecordSource = 'vse_resursi'

Почему не возвращает на прежнее место???
Хотя в конце валидейта стоит поиск прежнего...
Он его находит... Но потом слет на последнюю запись...
Активейт формы пустой...
И как заставить вернуться???
...
Рейтинг: 0 / 0
28.11.2003, 08:30
    #32337377
Hel!Riser
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Grid
блин читать как-то неудобно %-)б но у тя GO TOP стоит в условии IF !EMPTY(ALLTRIM(my_vernut))
соотв. если эта ботва не выполняеца, то никогда ты не станешь локировать данные, а указатель в EOF мог уйти выше по коду. Вопщем ч:е-та наверная тут копать нужна :)
...
Рейтинг: 0 / 0
28.11.2003, 11:29
    #32337560
IgorProgrammer
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Grid
Hel!Riser:
После поиска больше ни че нет...

Так почему оно вверх не уходит...

И если пошагово бежать, то оно становится на нужное место...
Только отладчик снимаю... Как шишь... Убегает в конец...
...
Рейтинг: 0 / 0
28.11.2003, 12:33
    #32337643
andrew_Pr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Grid
По ходу кода, если
loca for vse_resursi.shifr_pole = _CandDi("2 ","2") or vse_resursi.shifr_pole = "2 "
ничего не найдет, то в итоге мы окажемся на Eof('vse_resursi').
После locate идет ThisFormset.FormBuild() ,
а там сразу my_vernut = vse_resursi.shifr_pole
...
Рейтинг: 0 / 0
28.11.2003, 12:58
    #32337685
Hel!Riser
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Grid
если с отладчиком фс:Е пучком, тада попробуй перед исполнением этого кода снять фокус с грида. Он способен на многое, чтоб ему пусто было :))
...
Рейтинг: 0 / 0
28.11.2003, 14:59
    #32337890
IgorProgrammer
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Grid
Hel!Riser:

если с отладчиком фс:Е пучком, тада попробуй перед исполнением этого кода снять фокус с грида. Он способен на многое, чтоб ему пусто было :))

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


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