powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Какое событие у dw надо использовать ...
3 сообщений из 3, страница 1 из 1
Какое событие у dw надо использовать ...
    #32800713
DIGITALPRO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Имеется таб. Т1 с полями п1, п2
п2 является FK но при этом может быть Null

В РВ строим dw на базе Т1
на событие itemgenged
Код: plaintext
1.
2.
3.
4.
5.
integer li_null
setnull(li_null)

if dwo.name = 'п1' then
    if isNull(this.object.п1[row]) or trim(this.object.п1[row])='' then this.object.п2[row] = li_null
end if
Но, данное событие не подходит.
Вообщем задача: после изменения значения в поле п1 выпольнить скрипт (см.выше)

Может быть это и не правильный подход, если так то как правильно.

===================
РВ 9.0.1
...
Рейтинг: 0 / 0
Какое событие у dw надо использовать ...
    #32800779
Renesans
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как я понимаю речь идет о событии itemchanged (написано itemgenged), если так, то правильно ее выбрали, только Вам надо анализировать не this.object.п1[row], data. Так как, поле this.object.п1[row] еще не получило данных редактирования, там сидит значение до начала редактирования. А в data как раз то, что надо. (Это сделано для того, чтобы Вы могли своим скриптом проверить введенное значение на допустимость, и если что не так отменить ввод, возвращением то ли -1 то ли еще чего не помню надо смотреть описание.)

Попробуйте Ваш скрипт дополнить мессажебоксами (конечно потом их надо удалить), выведя, то что находится в data и что находится в this.object.п1 и Вам станет все понятно.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
integer li_null
setnull(li_null)

if dwo.name = 'п1' then
    string dd
    dd = this.object.п1[row]
    messagebox("п1",dd)
    messagebox("data",data)
    if isNull(this.object.п1[row]) or trim(this.object.п1[row])='' then this.object.п2[row] = li_null
end if
...
Рейтинг: 0 / 0
Какое событие у dw надо использовать ...
    #32800908
DIGITALPRO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ОК, спасибо, все работает!!!

Код: plaintext
1.
2.
3.
4.
5.
integer li_null
setnull(li_null)

if dwo.name = 'п1' then
    if isNull(data) or trim(data)='' then this.object.п2[row] = li_null
end if
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Какое событие у dw надо использовать ...
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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