powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Как обновить значение поля в Grid
21 сообщений из 21, страница 1 из 1
Как обновить значение поля в Grid
    #39781811
glamis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть Grid. Определен на курсоре. В последнем столбце CurrentControl=Check. При клике на check (снимаю галочку) из valid вызываю метод и получаю такую картину:
Код: vbnet
1.
STRTOFILE(Thisformset.form1.grid1.column4.ControlSource+cr+_yy+cr+TEXTMERGE("<<&_yy..nado>>;<<&_yy..kod>>"),'gg.txt')


возвращает:
_5FG0OYIVO.nado
_5FG0OYIVO
.F. ;0000563

а
Код: vbnet
1.
SELECT kod,parent, naim, zadol, nado FROM (_yy) INTO TABLE gg ORDER BY parent


в строке с кодом 000563 показывает, что nado=.T.

и соответственно дальнейший расчет select, calc идет исходя из nado= .T.

Данные в курсоре обновляются только после смены строки. (может и столбца - не проверял).

Flush не помогает.
...
Рейтинг: 0 / 0
Как обновить значение поля в Grid
    #39781818
Sergey Sizov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
glamis,
1. Зачем тут макроподстановка?
2. Вы не знаете про This.Value?

Код: sql
1.
STRTOFILE(Thisformset.form1.grid1.column4.ControlSource+cr+_yy+cr+TEXTMERGE("<<this.Value>>;<<kod>>"),'gg.txt')
...
Рейтинг: 0 / 0
Как обновить значение поля в Grid
    #39781819
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Зачем тут макроподстановка?
...
Рейтинг: 0 / 0
Как обновить значение поля в Grid
    #39781821
Sergey Sizov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergey Sizov,
или ещё короче:
Код: sql
1.
STRTOFILE(This.Parent.ControlSource+cr+_yy+cr+TEXTMERGE("<<this.Value>>;<<kod>>"),'gg.txt')
...
Рейтинг: 0 / 0
Как обновить значение поля в Grid
    #39781824
glamis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergey Sizov,

это метод formseta
...
Рейтинг: 0 / 0
Как обновить значение поля в Grid
    #39781826
Sergey Sizov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
glamis,
что ЭТО?
...
Рейтинг: 0 / 0
Как обновить значение поля в Grid
    #39781833
glamis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergey Sizov,
Команды кода - это вырезки из метода Formset. Поэтому This здесь неприменим.
...
Рейтинг: 0 / 0
Как обновить значение поля в Grid
    #39781838
glamis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergey Sizov,
И вообще указанные строки кода - это отладка и она показывает, что разные команды видят разное значение поля.

Вопрос не в том макро здесь или не макро. Вопрос в том - как сделать, чтобы значение поля в курсоре было правильным.
...
Рейтинг: 0 / 0
Как обновить значение поля в Grid
    #39781846
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не использую valid(), но если не путаю, то запись в таблицу(курсор) происходит после того как valid() вернет .T.
...
Рейтинг: 0 / 0
Как обновить значение поля в Grid
    #39781849
glamis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T,
а что после него работает?
...
Рейтинг: 0 / 0
Как обновить значение поля в Grid
    #39781853
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробуй в InteractiveChange()

Не поможет - включи Event Tracking в отладчике и посмотри какие еще методы вызываются.
...
Рейтинг: 0 / 0
Как обновить значение поля в Grid
    #39781855
Sergey Sizov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
glamisDima T,
а что после него работает?LostFocus()
Макро все равно тут совершенно не нужно.
...
Рейтинг: 0 / 0
Как обновить значение поля в Grid
    #39781861
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergey SizovLostFocus()
Он мышем в чекбокс кликает
...
Рейтинг: 0 / 0
Как обновить значение поля в Grid
    #39781863
glamis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T,

Interactive-еще хуже
...
Рейтинг: 0 / 0
Как обновить значение поля в Grid
    #39781874
Sergey Sizov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TSergey SizovLostFocus()
Он мышем в чекбокс кликаетОн вооще непонятно что делает.
При клике на check (снимаю галочку) из valid вызываю метод
но
это метод formseta

Короче, значение из свойства value элемента ввода в поле попадает после потери элементом ввода фокуса.
Приведенный кусок кода, судя по полученным результатам, работает еще ДО потери фокуса, то есть скорее всего таки в valid элемента ввода, а не в формсете. Так что разберитесь таки, для начала, кто на ком у вас там стоит.
...
Рейтинг: 0 / 0
Как обновить значение поля в Grid
    #39781889
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Повторил ситуацию. В valid чекбокса прописал
Код: sql
1.
wait 'valid ' + iif(MyTable.MyField, 'true', 'false') window nowait noclear



По клику на чексбокс без галки выводит "valid true", т.е. внутри valid() в таблице уже запись сделана.
Но при включенной буферизации запись только в буфере и select с этой же таблицы буфер игнорирует, поэтому надо ее принудительно сбросить буфер в таблицу
Код: sql
1.
TableUpdate(1, .T., 'MyTable')
...
Рейтинг: 0 / 0
Как обновить значение поля в Grid
    #39781972
glamis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T,
cursorgetprop("Buffering") возвращает 1 (off)
...
Рейтинг: 0 / 0
Как обновить значение поля в Grid
    #39782031
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
glamisDima T,
cursorgetprop("Buffering") возвращает 1 (off)
Как ни странно, но TableUpdate() все равно помогает.
Тест прилагаю, кликай в чекбокс, вывод в wait ...
Убери TableUpdate() из Check1.Validate() и сравни.
...
Рейтинг: 0 / 0
Как обновить значение поля в Grid
    #39782051
glamis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T,
Добавил TableUpdate - как ни странно, но просит сначала установить буферизацию:)

Дооформил отладку, свел все в одну справку:


Grid.column4.Controlsource=_5FG0X4HC9.nado
Grid.RecordSource=_5FG0X4HC9
nado=.F.; kod=0000563 && прямой доступ к полям
CURSORGETPROP("Buffering")=1
(SELECT nado FROM (_yy) WHERE kod = _s2) = .T.
...
Рейтинг: 0 / 0
Как обновить значение поля в Grid
    #39782054
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Надо простой пример с демонстрацией проблемы. У меня работает 21824504
...
Рейтинг: 0 / 0
Как обновить значение поля в Grid
    #39782075
glamis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T,
простой пример и у меня работает.
Помогло:

s1=&_yy..kod
Loca for kod = s1

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


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