Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Проблема с TABLEUPDATE() и буферизацией. / 3 сообщений из 3, страница 1 из 1
28.09.2005, 15:45:50
    #33293636
Val_E
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с TABLEUPDATE() и буферизацией.
Есть форма. На ней Grid
В Load формы стоит

Код: plaintext
1.
2.
SET MULTILOCKS ON
USE ARTICLES
CURSORSETPROP("Buffering", 3 ,"ARTICLES")
В одной колонке у объекта Text в KeyPress такой код

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
LPARAMETERS nKeyCode, nShiftAltCtrl
IF nKeyCode =  13 
	NODEFAULT
	IF this.ReadOnly = .T.
		this.ReadOnly = .F.
		this.SelStart = LEN(ALLTRIM(this.Value))
	ELSE
		IF this.Value # OLDVAL(this.ControlSource, "articles")
If  MESSAGEBOX("Сохранить изменения?", 4 + 32 ,"Сохранение") =  6 
			= TABLEUPDATE(.T.)
		ENDIF
		this.ReadOnly = .T.
	ENDIF
ENDIF
Т.е. при нажатии Enter переходим к редактированию поля, при повторном нажатии Enter
сбрасываем буфер и отключаем редактирование поля.
Так вот, запись в исходной таблице обновляется только после перемещения на другую запись.
Выкрутился я с этого так:
Добавил по строчке перед и после = TABLEUPDATE()
Код: plaintext
1.
2.
3.
4.
…
thisform.Command1.SetFocus
= TABLEUPDATE(.F.,.T.)
this.SetFocus
…
Так все работает, но хочу разобраться почему не работает приведенный выше код.
...
Рейтинг: 0 / 0
29.09.2005, 03:21:38
    #33294607
Igor Korolyov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с TABLEUPDATE() и буферизацией.
Hi Val_E!

Потому что до того как произойдёт выход из текстбокса, реально введённое в него значение НЕ запишется в привязанное поле. MS пытается делать сброс значения через шаманство типа метода DataFlush класса _datasession из _app.vcx Однако это кривое решение, и я считаю что более правильно будет именно уводить фокус с текстбокса -чтобы отработала вся последовательность событий - и Valid и LostFocus...

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
29.09.2005, 10:58:12
    #33295035
Val_E
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с TABLEUPDATE() и буферизацией.
Благодарю!!!
Значит, будем считать, что все нормально и это оптимальное решение.
А то пол дня потерял, разбираясь, что я не так делаю.
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Проблема с TABLEUPDATE() и буферизацией. / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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