2

当我使用When-Validate-Item触发器时,它只执行一次,当我想验证时,如果项目不为空。它给我的信息是,现在出了点问题。但现在我可以离开当前的记录了。

有什么方法可以将项目的状态设置为无效,因此触发器会触发不止一次。我正在使用多记录规范。

这是一些说明我在想什么的代码:

if :system.trigger_item = 'BLOCK.ITEM' then
   if :BLOCK.ITEM is null then
      -- set the item invalid again, becuase it won´t validate the item again, when 
      -- there wont appear any change to this item
      null;
   else
      -- the item is valid, do whatever
      null;
   end if;
end if;
4

1 回答 1

3

在您的when-validate-item触发器中,如果您的触发器代码成功执行而没有引发异常,Oracle Forms 会将该项标记为有效并允许用户继续。

要停止这种行为,您的触发器应该引发FORM_TRIGGER_FAILURE异常(例如,在显示错误消息之后)。

于 2013-01-23T08:06:35.563 回答