Clear_Record可以刪除Block上指定的記錄,但是如果已經是最後一筆資料時,使用Clear_record會出現錯誤的訊息。
以下是以Clear_Block來解決刪除最後一記錄的方法:
go_block('unmatch_lines_v');
first_record;
loop
--因為會清除資料,所以都是以第一筆為判斷條件
first_record;
if :fhpo_headers.invoice_no = :fhpo_unmatch_rpt_lines_v.invoice_num then
--clear_record不能清空最後一筆記錄,所以當遇到最後一筆資料時,以Clear_Block清除整個Block
if (:System.Last_Record='TRUE' AND :System.Cursor_Record = '1') then
go_block('fhpo_unmatch_rpt_lines_v');
Clear_Block;
go_block('fhpo_lines');
Clear_Block;
--設定各Block狀態為false
init_block_property;
fnd_message.debug('請款完成');
RAISE Form_Trigger_Failure;
else
Clear_Record;
end if;
else
exit;
end if;