Использование system.form_status - PullRequest
0 голосов
/ 14 июня 2010

Я пытаюсь использовать состояние system.form_status, но когда я проверяю его после изменения некоторых текстов или элемента списка, в system.form_status нет никаких изменений, я просто получаю сообщение «запрос», но я должен получить «измененный»сообщение.

Так, как я могу решить мою проблему?Есть ли какое-то предварительное условие?

Ответы [ 2 ]

2 голосов
/ 14 июня 2010

статус должен стать ИЗМЕНЕН при изменении элемента базовой таблицы (в блоке базовой таблицы). Если вы изменяете элемент, а статус не меняется, это должен быть элемент управления.

1 голос
/ 15 июня 2010

Если элемент управления изменяется, статус записи, блока и формы останется неизменным.

Одним из способов решения этой проблемы является добавление триггера (WHEN-VALIDATE-ITEM) к элементу для принудительной записистатус для изменения.В триггере установите статус записи на «ИЗМЕНЕНО».Вам также может понадобиться некоторая логика, чтобы позаботиться о новых записях, например:

IF GET_RECORD_PROPERTY(NAME_IN ('SYSTEM.TRIGGER_RECORD'), 
                       NAME_IN ('SYSTEM.TRIGGER_BLOCK'), 
                       STATUS) = 'QUERY' THEN
   Set_Record_Property (NAME_IN ('SYSTEM.TRIGGER_RECORD'), 
                        NAME_IN ('SYSTEM.TRIGGER_BLOCK'), 
                        STATUS, 
                        CHANGED_STATUS);
ELSIF GET_RECORD_PROPERTY(NAME_IN ('SYSTEM.TRIGGER_RECORD'), 
                          NAME_IN ('SYSTEM.TRIGGER_BLOCK'), 
                          STATUS) = 'NEW' THEN
   Set_Record_Property (NAME_IN ('SYSTEM.TRIGGER_RECORD'), 
                        NAME_IN ('SYSTEM.TRIGGER_BLOCK'), 
                        STATUS, 
                        INSERT_STATUS);
END IF;

В качестве альтернативы (и, вероятно, это лучший метод), в вашем триггере WHEN-VALIDATE-ITEM установите значениеэлемент базы данных в той же записи с некоторым значением (согласно другому ответу здесь).Это автоматически установит статус записи правильно.

...