EBS 循环处理块记录的代码

decalre
  i number;
begin
  i := 0;
go_block('asg_employee'); --导航到数据块
first_record;  --焦点放到第一条记录上
loop
  i := i + 1;
  if i <> 1 then  --判断是否第一条记录,不是就处理小一条记录
   next_record;
 end if;

  update eju_assess_ledger_assignments  --更新数据
            set  assign_flag = :asg_employee.select_flag
   where person_id = :asg_employee.person_id
            and hs_name = :eju_assess_ledgers.hs_name;

if sql%rowcount = 0 then --如果不存在,就插入一条记录
    insert into eju_assess_ledger_assignments
   (person_id,hs_name,assign_flag)
   values(:asg_employee.person_id,:eju_assess_ledgers.hs_name,:asg_employee.select_flag);
end if;

  exit when :system.last_record  = 'TRUE'; --最后一条记录就退出

end loop;

do_key('commit_form’); --提交form上的数据
go_block('eju_assess_ledgers');
hide_window('EJU_WINDOW');
end;
请使用浏览器的分享功能分享到微信等