Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Не получается обновить поле ((  [new]
dmitri...
Member

Откуда: СПб
Сообщений: 92
Здравтствуйте.

Есть такая ситуация:
блок данных SPEC построен на таблице.
В таблице 2 столбца
1.status
2.my_check_value

Поле my_check_value типа list. Заполняется при запуске формы по when_new_form_instance, причем с этим вопросов нет - все работает.

Далее хотел реализовать следующую несложную логику:

если поле status ='Y' , то поле my_check_value disabled, если status IS NULL,
то значение поля my_check_value можно выбирать из списка, т.е. изменять.

Попробовал реализовать с помощью when-new-record-instance:
IF :SPEC.status IS NULL THEN         
    SET_ITEM_PROPERTY('SPEC.my_check_value' ,ENABLED,PROPERTY_TRUE);      	
  ELSIF :SPEC.status ='Y'  THEN 
    SET_ITEM_PROPERTY('SPEC.my_check_value',ENABLED,PROPERTY_FALSE);  
END IF;

На вид все нормально, когда status IS NULL, по списку можно кликать и он даже открывается,
когда status = 'Y', то список серый и не раскрывается.

НО, когда раскрываю список при status IS NULL, то он раскрывается, но дальше вылезает сообщение
FRM-40200: поле защищено от записи и новое значение ему не присваивается!

Пробовал
SET_ITEM_PROPERTY('SPEC.my_check_value' ,UPDATE_ALLOWED,PROPERTY_TRUE);
так выдает сообщение при ран тайме, что такого в SET_ITEM_PROPERTY нельзя, хотя в Хелпе, как бы можно..
Проверял себя с помощью
Message(GET_ITEM_PROPERTY('SPEC.my_check_value' ,ENABLED));
, так получал стабильно TRUE. Не понимаю, как при свойтсве ENABLED в TRUE не могу его обновлять?
Чего еще надо? Пока не сообразил..
Если кто в курсе, посоветуйте, плиз на что смотреть.
Заранее большое спасибо.
8 авг 08, 22:40    [6047199]     Ответить | Цитировать Сообщить модератору
 Re: Не получается обновить поле ((  [new]
Полночный
Member

Откуда:
Сообщений: 312
dmitri...

Если кто в курсе, посоветуйте, плиз на что смотреть.
Заранее большое спасибо.

Для начала, на свойство блока Update Allowed.
11 авг 08, 13:03    [6051773]     Ответить | Цитировать Сообщить модератору
 Re: Не получается обновить поле ((  [new]
dmitri...
Member

Откуда: СПб
Сообщений: 92
Странно, при прочих равных условиях
SET_ITEM_PROPERTY('SPEC.my_check_value' ,UPDATE_ALLOWED,PROPERTY_TRUE);
почему-то перестал ругаться при запуске. В пятницу стабильно ругался, что нет такого property, теперь перестал и начал обновлять, как и должен. Ничего не понимаю. Утро вечера мудренее что-ли, не понимаю, по какой причине формс вначале ругается на UPDATE_ALLOWED и не признает, а потом вдруг' нормально с ним работает. Предположений пока нет...
11 авг 08, 14:33    [6052361]     Ответить | Цитировать Сообщить модератору
 Re: Не получается обновить поле ((  [new]
Jannny
Member

Откуда: Спб
Сообщений: 6424
dmitri...
по какой причине формс вначале ругается на UPDATE_ALLOWED и не признает, а потом вдруг' нормально с ним работает. Предположений пока нет...
Писали неправильно. Например, любимая опечатка: UPADTE.. :)
11 авг 08, 14:53    [6052523]     Ответить | Цитировать Сообщить модератору
 Re: Не получается обновить поле ((  [new]
dmitri...
Member

Откуда: СПб
Сообщений: 92
К сожалению, версия опечатки не получается, т.к. при опечатке (нарочно попробовал) выдается ошибка на этапе компиляции и до запуска дело не доходит. Проблема именно в том, что без опечаток.
В общем пока не удается воспроизвести ошибку, а то было бы реально проще...
11 авг 08, 16:25    [6053152]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить