替代双loop算法
2011-06-25 11:32:46| 分类:
算法
| 标签:
|举报
|字号大中小 订阅
data: l_tabix type sy-tabix.
*---一个交货对应多个开票,替换双loop算法:
* loop 思想: 从内表中找出所有符合where条件的数据(如果有where条件的话),再处理一内表条目
loop at gt_output into gw_output.
clear l_tabix.
do.
if l_tabix = 0."准备读取第一条符合的数据
read table gt_vbrp into gw_vbrp with key vgbel = gw_output-vbeln_vl binary search.
if sy-subrc = 0.
l_tabix = sy-tabix + 1.
gw_output-vbeln_vf = gw_vbrp-vbeln.
gw_output-fkart = gw_vbrp-fkart.
gw_output-erdat = gw_vbrp-erdat.
gw_output-fkdat = gw_vbrp-fkdat.
gw_output-spart = gw_vbrp-spart.
append gw_output to lt_output_temp.
continue.
else."没有读到任何符合的数据
append gw_output to lt_output_temp.
exit."退出do,进入下一个loop
endif.
else."准备读取下一条数据
read table gt_vbrp into gw_vbrp index l_tabix.
if sy-subrc = 0 and gw_vbrp-vgbel = gw_output-vbeln_vl.
l_tabix = sy-tabix + 1.
gw_output-vbeln_vf = gw_vbrp-vbeln.
gw_output-fkart = gw_vbrp-fkart.
gw_output-erdat = gw_vbrp-erdat.
gw_output-fkdat = gw_vbrp-fkdat.
gw_output-spart = gw_vbrp-spart.
append gw_output to lt_output_temp.
continue.
else."读到的下一条数据不符合
exit."退出do,进入下一个loop
endif.
endif.
enddo.
endloop.
gt_output = lt_output_temp. "恢复gt_output
评论这张
转发至微博
转发至微博
评论