亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

loop循環時須注意效率問題

系統 2487 0

以前寫循環時,都是一條記錄一條記錄的比較,代碼示例如下:

loop at S_VAL_CHAR into VAL_CHAR.
??? if VAL_CHAR-CHARACT eq 'P0008_7'."箱型
??????? IT_ITEM-BOX = VAL_CHAR-VALUE_CHAR.
??? ELSEIF VAL_CHAR-CHARACT eq 'S0012'."客戶編號
??????? IT_ITEM-CLIENT_CODE = VAL_CHAR-VALUE_CHAR.
??? ELSEIF VAL_CHAR-CHARACT eq 'CP_CW'."客戶編號
??????? IT_ITEM-CP_CW = VAL_CHAR-VALUE_CHAR.
??? ENDIF.
ENDLOOP.

這樣的話要循環lines(? S_VAL_CHAR ).

應該改成如下,效率應該會好一點.

loop at S_VAL_CHAR into VAL_CHAR WHERE CHARACT eq 'P0008_7' OR CHARACT eq 'S0012' OR CHARACT eq 'CP_CW'.
??? if VAL_CHAR-CHARACT eq 'P0008_7'."箱型
??????? IT_ITEM-BOX = VAL_CHAR-VALUE_CHAR.
??? ELSEIF VAL_CHAR-CHARACT eq 'S0012'."客戶編號
??????? IT_ITEM-CLIENT_CODE = VAL_CHAR-VALUE_CHAR.
??? ELSEIF VAL_CHAR-CHARACT eq 'CP_CW'."客戶編號
??????? IT_ITEM-CP_CW = VAL_CHAR-VALUE_CHAR.
??? ENDIF.
ENDLOOP.

?若條件很多,條件語句寫起來太長,可用range,代碼如下:

data:lr_character type range of BAPI1003_ALLOC_VALUES_CHAR-CHARACT,
lr_character_line like line of lr_character.
CLEAR: lr_character_line,lr_character[].
lr_character_line = 'IEQ'.
lr_character_line-low = 'P0008_7'.
append lr_character_line to lr_character.

CLEAR: lr_character_line.
lr_character_line = 'IEQ'.
lr_character_line-low = 'S0012'.
append lr_character_line to lr_character.

CLEAR: lr_character_line.
lr_character_line = 'IEQ'.
lr_character_line-low = 'CP_CW'.
append lr_character_line to lr_character.

loop at S_VAL_CHAR into VAL_CHAR WHERE CHARACT in lr_character.
??? if VAL_CHAR-CHARACT eq 'P0008_7'."箱型
??????? IT_ITEM-BOX = VAL_CHAR-VALUE_CHAR.
??? ELSEIF VAL_CHAR-CHARACT eq 'S0012'."客戶編號
??????? IT_ITEM-CLIENT_CODE = VAL_CHAR-VALUE_CHAR.
??? ELSEIF VAL_CHAR-CHARACT eq 'CP_CW'."客戶編號
??????? IT_ITEM-CP_CW = VAL_CHAR-VALUE_CHAR.
??? ENDIF.
ENDLOOP.

?

繼續優化一下,把那些重復的代碼提取出來,最后如下:

data:?? ?lr_character type range of BAPI1003_ALLOC_VALUES_CHAR-CHARACT,
?? ??? ??? ?lr_character_line like line of lr_character.
?? ??? ??? ?
form ADD_CHARACTER_TO_RANGE USING value(s) CHANGING r.
??? clear lr_character_line.
??? lr_character_line = 'IEQ'.
??? lr_character_line-low = s.
??? append lr_character_line to lr_character.
ENDFORM.

CLEAR: lr_character[].
perform ADD_CHARACTER_TO_RANGE using 'P0008_7' changing lr_character.
perform ADD_CHARACTER_TO_RANGE using 'S0012' changing lr_character.
perform ADD_CHARACTER_TO_RANGE using 'CP_CW' changing lr_character.

loop at S_VAL_CHAR into VAL_CHAR WHERE CHARACT in lr_character.
??? if VAL_CHAR-CHARACT eq 'P0008_7'."箱型
??????? IT_ITEM-BOX = VAL_CHAR-VALUE_CHAR.
??? ELSEIF VAL_CHAR-CHARACT eq 'S0012'."客戶編號
??????? IT_ITEM-CLIENT_CODE = VAL_CHAR-VALUE_CHAR.
??? ELSEIF VAL_CHAR-CHARACT eq 'CP_CW'."客戶編號
??????? IT_ITEM-CP_CW = VAL_CHAR-VALUE_CHAR.
??? ENDIF.
ENDLOOP.?

loop循環時須注意效率問題


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 久久福利一区二区三区 | www.久久艹 | 在线观看a视频 | 亚洲综合视频在线观看 | 性欧美一级毛片欧美片 | 国产精品久久久久免费视频 | 911福利视频 | 成人小视频免费 | 亚洲国产精品看片在线观看 | 色爱区综合激情五月综合激情 | 久久黄色录像 | 亚洲精品成人一区 | 国产美女久久久亚洲 | 国产一级成人毛片 | 九九视频高清视频免费观看 | 欧美一级片在线免费观看 | 九九久久久 | 综合网天天操天天射 | 天天综合天天综合色在线 | 国产网友自拍 | 91精品视频免费观看 | 久久青草社区 | 中文日本在线 | 香蕉成人国产精品免费看网站 | 久久天堂一区二区三区 | 成人黄色一级视频 | 中文字幕人成乱码第一页 | 久揄揄鲁一二三四区高清在线 | 99热在| 九九热播| 日本欧美在线视频 | 天天操天天干视频 | 夜色综合| 国产精品久久久久久亚洲伦理 | 偷偷狠狠的日日2020 | 夜夜躁狠狠躁日日躁视频 | 俄欧美做爰xxxⅹ在线视频 | 7777精品伊人久久久大香线蕉 | 精品久久香蕉国产线看观看亚洲 | 久草加勒比 | 九天玄帝诀在线观看 |