Персонализация формы Oracle - PullRequest
       32

Персонализация формы Oracle

0 голосов
/ 04 октября 2019

введите описание изображения здесь

У меня проблема с персонализацией формы, я новичок в Oracle EBS и Forms.i мне нужно выполнить проверку в модуле HR, когдапользователь обращается к форме завершения работы и пытается уволить пользователя. когда конечный пользователь нажимает кнопку TERMINATE, он должен проверить условие, а если условие имеет значение null, то должно появиться сообщение об ошибке.

Я использую это условие

select 'Y'
from dual
where exists (select 'Y'
              from pa_expenditure_items_all paei,
                   pa_expenditures_all pae
              where paei.expenditure_id = pae.expenditure_id and
                    pae.incurred_by_person_id  = : person_id and
                    cost_distributed_flag = 'N'
             )

Ответы [ 2 ]

0 голосов
/ 04 октября 2019

В поле «условия» вы не помещаете целый запрос. Вы просто помещаете логическое выражение (такое, как если бы вы указали в предложении WHERE запроса).

Итак, вместо того, что у вас есть, попробуйте это:

exists (select 'Y'
        from pa_expenditure_items_all paei,
             pa_expenditures_all pae
        where paei.expenditure_id = pae.expenditure_id and
              pae.incurred_by_person_id  = :person_id and
              cost_distributed_flag = 'N'
       )

:person_id предполагает, что PERSON_ID - это поле в блоке, на котором запускается ваш триггер форм. Лучше использовать форму :block.field, чтобы сделать ее немного более явной.

0 голосов
/ 04 октября 2019

Это было бы что-то вроде этого, я полагаю:

declare
   l_yes  varchar2 (1);
begin
   select max ('Y')
     into l_yes
     from dual
    where exists
             (select 'Y'
                from pa_expenditure_items_all paei, pa_expenditures_all pae
               where     paei.expenditure_id = pae.expenditure_id
                     and pae.incurred_by_person_id = :person_id
                     and cost_distributed_flag = 'N');

   if l_yes is null
   then
      message ('Condition is not met');
      raise form_trigger_failure;
   else
      -- Do something; probably terminate that user
      null;
   end if;
end;
...