Гость
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / непонятная ситуация ItemChanged у DW!!! / 10 сообщений из 10, страница 1 из 1
28.01.2004, 16:55
    #32391225
Pasha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
непонятная ситуация ItemChanged у DW!!!
в продолжении предыдщего моего вопроса
исходные данные теже 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
28.01.2004, 17:11
    #32391278
Shtuckenshnuder
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
непонятная ситуация ItemChanged у DW!!!
Насколько я помню, ещё в 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
28.01.2004, 18:57
    #32391483
Филипп
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
непонятная ситуация ItemChanged у DW!!!
авторЧто касается SetItem(...) в этом же событии, то его вообще не рекоментуют выполнять
Это где ж вы такое услыхали?
...
Рейтинг: 0 / 0
28.01.2004, 19:41
    #32391519
Shtuckenshnuder
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
непонятная ситуация ItemChanged у DW!!!
Филипп.

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

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

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


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