假设某些条件已满,则不应对整个块进行任何更改。我找到了一种简单的方法:
在blocklevel的'WHEN-VALIDATE-ITEM'触发器中,我写了这样的声明:
begin
if (-- custom statement --
and :system.record_status <> 'QUERY'
and get_item_property(:system.current_item,DATABASE_VALUE) <> name_in(:system.current_item)) then
msgbox('Can''t change');
copy(get_item_property(:system.current_item,DATABASE_VALUE), :system.current_item);
raise form_trigger_failure;
end if;
end;
copy语句将项值设置回数据库值。但问题是,我的表单状态将变为“已更改”,而实际上并没有真正可见的更改,因为该项目已回滚到数据库值。因此,当我尝试退出表单时,系统会询问我是否要保存更改。而且我不希望这种情况发生。我怎么能改变这个?
答案 0 :(得分:0)
为避免向用户询问是否要保存值,您可以执行密钥提交
BEGIN
EXECUTE_TRIGGER('KEY-COMMIT');
standard.commit;
END;