Во время работы программы пользователь должен иметь возможность ввести значение любого из двух параметров, при условии, что оба параметра не могут оставаться пустыми.

Существует одна параллельная программа, которая генерирует отчет в приложениях Oracle R12. Есть два параметра параллельной программы, скажем, P1 и P2.

Таким образом, требование таково, что пользователь не может оставить оба параметра пустыми. Пользователь должен ввести значение либо в P1, либо в P2, либо в оба.

Как мы можем этого добиться?


person Nikhil    schedule 09.05.2019    source источник


Ответы (1)


Я не знаю приложений Oracle. Однако посмотрите, поможет ли следующее.

Если вы вызываете процедуру «создать отчет» (или, в формах, это может быть RUN_REPORT или аналогичный вызов встроенной процедуры), делайте это, только если P1 и P2 не пусты. Что-то вроде этого (псевдокод)

if P1 is null and P2 is null then
   null;
else
   call the "create report" procedure
end if;

Или в построителе отчетов (который будет работать) вы можете проверить это в триггере After Parameter Form, например.

begin
  if :p1 is null and :p2 is null then
     raise srw.do_sql_failure;
  end if;
  return true

exception
  when srw.do_sql_failure then
    srw.message(1000, 'Error - both parameters are empty');
    return false;
end;
person Littlefoot    schedule 09.05.2019
comment
@ Littlefoot-Спасибо за ваш вклад, но это отчет XML, а не отчет rdf. Таким образом, нет смысла использовать Report Builder. - person Nikhil; 10.05.2019
comment
Хм... к сожалению, я бы не знал, что делать в таком случае, извините. Я надеюсь, что кто-то еще сможет помочь. - person Littlefoot; 10.05.2019