powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / SetItem и OldValue
7 сообщений из 7, страница 1 из 1
SetItem и OldValue
    #35486646
Фотография CodeMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте дорогие!
Прости за может быть глупый вопрос но сам разобраться не могу.
вообщем есть такой код
Событие ue_doublecliked

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
case 'data_end_d'
if isNull(GetItemDatetime(row,'data_end_d')) then
ls_data = string(f_b_date()) //Обработка двойного клика по полю дата закрытия договора
else
SetNull(ls_data)
end if
ll = event ue_after_column(row, dwo.name, Old_value, ls_data)
if ll <>  0  then return
ldt = datetime(date(ls_data))
SetItem(row,'data_end_d',ldt)
SetItem(row,'sc_nz_status',ldt)
в поле data_end_d он выставит текущую дату если всё прошло удачно если же на договоре есть какие либо ограничения которые указаны в другом событии то он вставит старое значение Old_value 00.00.0000 так вот а в Drop Down старое значение не вставляет т.е. там было например 5 - Обработка а если ставится дата закрытия договора он считается закрыт и статус меняется на 1- Закрыт но он меняться меняется если поставлю SetItem(row,'data_end_d', 1 ) но обратно не поменяется если не проверка вернет false где вообще мне рыть
Нужно ли определять значение старого модифицируемого поля и записывать в переменную напрмиер ldt или она глобальная
...
Рейтинг: 0 / 0
SetItem и OldValue
    #35486757
Фотография CodeMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
простите за оффтоп
как только отпишусь с просьбой о помощи на форум сразу же практически ниоткуда приходит решение - мистика
Код: plaintext
1.
2.
3.
4.
//Возвращет старое значение в статус если проверка на закрытие не прошла
		if isNull(GetItemDatetime(row,'data_end_d')) then
			SetItem(row,'sc_nz_status',Old_value)
		end if
			
остался один вопрос - правильно ли это? Работает :) Хотя че еще надо
...
Рейтинг: 0 / 0
SetItem и OldValue
    #35487773
Фотография CodeMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есчо у меня появилась проблемка
как вызвать из события ue_after_change событие ue_after_column
я делаю это так не выходит


Код: plaintext
1.
2.
3.
ll = event ue_after_column(row, dwo.name, Old_value, ls_data) 
		if ll <>  0  then return
...
при этом в событии ue_after_change return возвращает long а здесь integer
...
Рейтинг: 0 / 0
SetItem и OldValue
    #35488068
Локшин Марк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CodeMasterЕсчо у меня появилась проблемка
как вызвать из события ue_after_change событие ue_after_column
я делаю это так не выходит


Код: plaintext
1.
2.
3.
ll = event ue_after_column(row, dwo.name, Old_value, ls_data) 
		if ll <>  0  then return
...
при этом в событии ue_after_change return возвращает long а здесь integer
Где здесь? Что здесь? Ваш скрипт вообще ничего не возвращает. Нихрена не понятно (касается и первого поста тоже).
...
Рейтинг: 0 / 0
SetItem и OldValue
    #35490815
Фотография voronk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Help:

DateTime dwcontrol.GetItemDateTime ( long row, string column {, DWBuffer dwbuffer, boolean originalvalue } )

dwcontrol...
row...
column...
dwbuffer (optional) ...
originalvalue (optional) A boolean indicating whether you want the original or current values for row and column: · True — Returns the original values, that is, the values initially retrieved from the database.· False — (Default) Returns the current values.If you specific dwbuffer, you must also specify originalvalue.

ты это имел ввиду?
...
Рейтинг: 0 / 0
SetItem и OldValue
    #35490820
Фотография voronk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CodeMasterЗдравствуйте дорогие!...

Гы ... почему то вспомнилось ...
- Дорогой Леонид Ильич слушает ...
...
Рейтинг: 0 / 0
SetItem и OldValue
    #35492034
Фотография CodeMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не не это хелпы и мануалы я тоже иногда читаю. Тык вот есть событие ue_after_column наследован от u_bd_dw return integer


в нем есть такой код
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
choose case lower(col_name)
		

case 'sc_nz_status'
if Len(ls_data) >  0  then
if ls_data = '1' then

SetItem(row, 'data_end_d',  f_b_datetime())
end if
end if	
//что то там еще ....
end choose
так вот когда выбирается статус с ID 1 то в поле data_end_d ставится текущая дата и договор закрывается



Теперь про data_end_d есть событие doubleclicked наследован от u_bd_dw return long
в нём есть код
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
choose case lower(dwo.Name)
case 'data_end_d'
		if isNull(GetItemDatetime(row,'data_end_d')) then
			ls_data = string(f_b_date())
			ll_status =  1  //ID Close
		else
			SetNull(ls_data)
			SetNull(ll_status) 
		end if	
		ll = event ue_after_column(row,dwo.name, Old_value, ls_data) 
		if ll <>  0  then return 
		ldt = datetime(date(ls_data))
		SetItem(row,'data_end_d',ldt)
		SetItem(row,'sc_nz_status',ll_status)	
//что то там еще ...
end choose
Работает это так при двойном клике вставляется текущая дата при этом
Код: plaintext
ll = event ue_after_column(row,dwo.name, Old_value, ls_data) 
идет вызов первого события (то бишь проверка можно закрыть или нет) и если
Код: plaintext
if ll <>  0  then return 
то записываем значения
Код: plaintext
SetItem(row,'data_end_d',ldt)

так вот мне бы эту проверочку втиснуть в ue_after_column во время выбора из Drop Down статуса 1-Закрыт но он ругается Undefined Variable, return integer это я всё понимаю но как реализовать не могу :(
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / SetItem и OldValue
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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