powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / непонятная ситуация ItemChanged у DW!!!
10 сообщений из 10, страница 1 из 1
непонятная ситуация ItemChanged у DW!!!
    #32391225
Pasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в продолжении предыдщего моего вопроса
исходные данные теже PB 9.0.1 (7066), DB ASA 8.0.2

Есть таблица, в этой таблице присутсвует поле t типа time
создал DW для отображения и редактирования это таблице. На это поле установил EditMask hh:mm

насобытие itemChanged повесил действие
This.AcceptText()
ls_input_time = Mid(data, 4, 2)
If ls_input_time <> '30' and ls_input_time <> '00' Then
<функция обработки времени> This.SetItem(row, dwo.name, ldt_time)
End If

допустим я ввожу 12:12
программа определяет что минуты -12
переводит в 12:00
и устанавливает поле в 12:00

если в этомже событии написать
This.GetItemTime (row, dwo.name)
то выдаст 12:00

Но на экране всеравно отображается 12:12

В чем проблема?
AcceptText() и SetRedraw(True) делал - не помогало
В итоге в конце собития пока что написал Return 2
теперь на экране 12:00, но понимаю что этот return не очень хорошо.
...
Рейтинг: 0 / 0
непонятная ситуация ItemChanged у DW!!!
    #32391278
Shtuckenshnuder
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Насколько я помню, ещё в PB6.0 на событии Itemchanged функции серии GetItem... возвращают значение до изменения. Реальное же хранится в аргументе Data. Что касается SetItem(...) в этом же событии, то его вообще не рекоментуют выполнять.
AcceptText() тоже.

AcceptText in the ItemChanged event. Calling AcceptText in the ItemChanged event has no effect.

Events
AcceptText may trigger an ItemChanged or an ItemError event.
...
Рейтинг: 0 / 0
непонятная ситуация ItemChanged у DW!!!
    #32391483
Фотография Филипп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторЧто касается SetItem(...) в этом же событии, то его вообще не рекоментуют выполнять
Это где ж вы такое услыхали?
...
Рейтинг: 0 / 0
непонятная ситуация ItemChanged у DW!!!
    #32391519
Shtuckenshnuder
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Филипп.

Были случаи вылета приложения при вызове SetItem(row, 'Nm', value) в событии ItemChanged при обработке dwo.name = 'Nm'
...
Рейтинг: 0 / 0
непонятная ситуация ItemChanged у DW!!!
    #32391527
Фотография Филипп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так значит это вы рекомендуете :-)

Могу сказать, что рекомендация ваша в общем случае безосновательна...
...
Рейтинг: 0 / 0
непонятная ситуация ItemChanged у DW!!!
    #32391933
Shtuckenshnuder
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Может и безосновательны. Просто я сталкивался с такими ситуациями и приходилось избегать их.
Филипп, объясните почему это может происходить?
...
Рейтинг: 0 / 0
непонятная ситуация ItemChanged у DW!!!
    #32392480
Механик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
itemChanged cуществует между изменением ячейки и обновлением. В data лежит обновление, в итеме - старое значение. После выполнения всех скриптов data падает в итем (или возвращается предыдущее значение если требуется). Если в событии itemChanged сделать SetItem..., дабы в обработчике видеть уже новое значение через GetItem... не передавая значение. Таким образом значение, установленное с помощью SetItem... будет жить только до окончания скрипта. Если охота реально изменить значение надо воспользоваться POST. Но это всегда черевато...
...
Рейтинг: 0 / 0
непонятная ситуация ItemChanged у DW!!!
    #32392888
Фотография Филипп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторЕсли в событии itemChanged сделать SetItem..., дабы в обработчике видеть уже новое значение через GetItem... не передавая значение. Таким образом значение, установленное с помощью SetItem... будет жить только до окончания скрипта...

Строго говоря, и это некорректно.
Если хошь, чтоб оно там жило, нужно просто 1 вернуть из temChanged, а если хошь, чтоб оно ещё и видно при этом правильно было, нужно ещё и SetText сделать (ну и понятно, что придётся Itemerror подавить)...
...
Рейтинг: 0 / 0
непонятная ситуация ItemChanged у DW!!!
    #32393122
Pasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
спасибо Филипп, разяснил
...
Рейтинг: 0 / 0
непонятная ситуация ItemChanged у DW!!!
    #32394129
Механик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если 1 вернуть, то событие завершится.
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / непонятная ситуация ItemChanged у DW!!!
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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